C 语言课程设计.通讯录管理系统
目 录
(一) 设计目的…………………………………2
(二) 设计内容…………………………………2
(三) 概要设计…………………………………2-3
(四) 详细设计…………………………………3-8
(五) 调试与测试………………………………8-10
第 1 页 共 11 页
C 语言课程设计.通讯录管理系统
《C 语言课程设计》
通讯录管理系统
一、课程设计目的
1、 通过课程设计,加深对结构化设计思想的理解,能对系统功能进行分析,并设计
合理的模块化结构。
2、 通过课程设计,学会设计数据结构。其中包括对结构数组、链表和数据文件等知
识的运用。
3、 通过课程设计,提高程序开发功能,能运用合理的控制流程编写清晰高效的程序。
4、 通过课程设计,训练 C 程序调试能力,能将一个中小型各级组织系统联调通过。
5、 通过课程设计,开发一个中小型系统,掌握系统研发全过程。
6、 通话课程设计,培养分析问题、解决实际问题的能力。
二、课程设计内容
设计一个实用的学生通讯录管理系统,能以简便高效的方式对通讯录进行管理和检索 ,
具体要示:
(1) 录入:学生通讯录信息包括:学号,姓名,性别,出生年月,地址,电话,
课题小组,E—mail 等。以结构数组或数据文件的形式存放通讯录信息。
(2) 更新:能插入、删除通讯录信息。
(3) 浏览:按学号为序或姓名为序进行通讯录信息浏览。
(4) 查询:能实现指定联系人信息查询或指定课题组人员查询功能。
(5) 系统以菜单方式工作,要求界面友好,易于操作。
三、总体设计
1、模块化设计
为实现系统功能,本程序主要分为六个模块。它们分别为:输入一个学生信息、删除
一个学生信息、查询一个学生信息、插入一个学生信息、列出所有的学生信息、保存并且
退出该程序。这六个函数再通过主函数调用分别得以实现。
主函数,首先提供了程序运行时的友好界面,列出了清单,提供用户做出选择,以便
决定使用通讯录的哪种功能。然后,通过执行多分支选择语句——switch 语句,分别实现
其它各个函数的调用功能。
其它各个函数的功能分别如下:
第 2 页 共 11 页
C 语言课程设计.通讯录管理系统
creat 函数用于对通讯录中的数据以文件的方式进行读入;
Input 函数用于录入通讯录中学生的信息;
Delete 函数用于对通讯录中指定信息的删除;
Search 函数用于对通讯录中指定信息的查询;
Insert 函数用于在通讯录中插入信息;
List 函数用于对通讯录中所有信息进行浏览;
Save 函数用于保存通讯录信息并且退出。
2、模块调用图
四、详细设计
(1)数据结构设计
本程序中,运用了多种数据结构。首先对于学生通讯录中各项详细信息的记录用了结
构数组的形式,然后又运用链表动态地分配内存单元,在 creat 函数中,把保存在数组中的
值再赋值给其中的一个结点,通过指针的后移,把多个数据连成一个链,形成一个链表。
在这过程当中,还运用了数据文件的方式,每一次从终端输入的数据都以数据文件的形式
保存到了磁盘。
对于主要数据结构的举例如下:
结构数组:
第 3 页 共 11 页
C 语言课程设计.通讯录管理系统
① struct student
{ int number;
char name[10];
char sex[6];
struct date birthday;
char addr[30];
char tel[15];
char email[30];
int group;
}student[max];
链表:
① typedef struct lnode
{ int number;
char name[10];
char sex[6];
struct date birthday;
char addr[30];
char tel[15];
char email[30];
int group;
struct lnode *next;
}listnode,*linklist;
② while(strcmp(p4->next->name,name1)!=0)
p4=p4->next;
p5=p4->next;
p4->next=p5->next;
数据文件:
① FILE *fp;
fp=fopen("Contacts.c","r+");
if(fp!=NULL)
{for(i=1;i<max;i++)
{ j=fgetc(fp);
第 4 页 共 11 页