1、 目 录 1 课程设计目的和要求2 1.1 课程设计的目的2 1.2 课程设计的要求2 2 课程设计任务和内容 2 3 详细说明.2 3.1 功能模块图3 3.2 数据结构设计3 3.3 功能模块设计.3 4 程序使用说明4 5 程序部分运行图4 6 课程设计心得与体会11 7 任务分配.11 8 参考文献11 9 附录:程序清单11 1 课程设计目的和要求 1.1 课程设计的目的: C语言是一门高级程序设计语言。程序设计的目的是培养学生综合运用高级 程序设计语言按照题目要求分析、设计、编写、调试和测试C程序,以及解决实 际问题的能力。并养成良好的程序设计习惯,以及团队协作能力。 1.2 课程
2、设计的要求: 建立通讯录信息,信息包括姓名、单位、电话。该系统提供添加、删除、查 找、显示、保存至文件以及文件的复制等功能。 由三人一组协作完成,并按时提交实验报告和源程序。 2 课程设计任务内容: 通讯录是一个简单的小型应用程序、 要求设计的通讯录能够完成以下几个功 能: (1)输入记录模块:输入记录模块主要完成将数据存入结构体中的工作。在 此通信管理系统中,记录可以从以文本形式存储的数据文件中读入,也可以从键 盘输入记录。记录由与联系人有关的信息构成。当从文件中读入记录时,它就是 在以记录为单位存储的数据文件中,将记录逐条复制到结构体类型的数组元素 中。 (2) 查询记录模块:查询记录模块
3、主要完成在结构体中查找满足相关条件的 记录。 在此通信管理系统中用户可以按照联系人的姓名在结构体中进行查找, 也 可以按照序号在结构体中进行查找。若找到该记录,则打印出此记录的信息;否 则,将打印出未找到该记录的提示信息。 (3)更新记录模块:更新记录模块主要完成对记录的维护。一般而言,系统 进行了这些操作之后,需要将修改的记录存入源数据文件 (4)输出记录模块:输出记录模块主要完成两个任务:第一,它实现对记录 的存盘操作,即将结构体中各元素中存储的记录信息写入数据文件中;第二,它 实现将结构体中存储的记录信息在屏幕上打印出来。 3 详细设计说明 3.1 功能模块图: 功能模块设计 3.2 数
4、据结构设计: 本程序定义了结构体 ADDRESS,用于存放联系人的基本信息。这里仅有 3 个 于联系人有关的字段: typedef struct char name20; /联系人信息 char units20; /联系人单位 char tele10; /联系人电话号码 ADDRESS; 系统中还定义了宏变量, 用于存放联系人个数, 具体定义如下: #define M 50 3.3 功能模块设计: (1)、main()函数的设计:记录文件中没有任何信息,所以,要求我们先输 入应有的信息,才能进行查询。用 for 循环结构进行提示输入相应的数字,然 后利用 switch 语句选择定义的各种函数应
5、该进行的操作, 为用户提供服务。 (2) 、输入记录模块包括 enter(ADDRESS t)与load(ADDRESS t)两个函 数组成。该模块有main()函数的调用。 enter(ADDRESS t)用于初始从键盘输 入联系人记录、load(ADDRESS t)用于从文件中加载联系人。 (3) 、查询记录模块包括list(ADDRESS t,int n)、qseek(ADDRESS t,int n)、search(ADDRESS t,int n)和display(ADDRESS t)函数组成,该模块有 main()函数调用。list(ADDRESS t,int n)用于一次性显示所有联
6、系人信息, search(ADDRESS t,int n)和qseek(ADDRESS t,int n)都是用于按姓名查找 联系人并输出到屏幕, 、但qseek(ADDRESS t,int n)在查找之前需要调用 sort(ADDRESS t,int n)先排序、实现快速查找的功能,sort(ADDRESS t,int n)用于按序号查找联系人信息并输出到屏幕,都需呀调用find(ADDRESS t,int n,char *s)函数。 (4) 、更新记录模块包括delete(ADDRESS t,int n)和add(ADDRESS t,int n)两个函数组成。该模块有main()函数的调用。delete(ADDRESS t,int n)用 于删除联系人、删除后要调用save(ADDRESS t,int n);保存修改后的记录到文 件中实现持久化,add(ADDRESS t,int n)用于添加联系人、添加后要调用 save(ADDRESS t,int n)保存修改后的记录