logo资料库

C语言课程设计-电话簿管理系统.docx

第1页 / 共18页
第2页 / 共18页
第3页 / 共18页
第4页 / 共18页
第5页 / 共18页
第6页 / 共18页
第7页 / 共18页
第8页 / 共18页
资料共18页,剩余部分请下载后查看
XI`AN TECHNOLOGICAL UNIVERSITY 课程设计报告 课程名称 专 班 姓 学 业: 级: 名: 号: 指导教师: 成 绩: 年 月 日
一、题目:电话簿管理系统 此电话簿管理系统主要利用单链表或者结构数组实现(最好用单链表 实现),具有如下的四大功能模块。 1. 输入记录模块 从键盘逐个输入每个人的电话信息记录。 2. 查询记录模块 按照姓名查询或者按照电话进行查询,把满足条件的相关人信息显示 出来。(1)按照姓名查询;(2)按照电话查询;(3)按照姓名和电话 同时查询。 3. 更新记录模块 修改某一个人的电话信息;按照记录序号对电话簿排序(升序和降 序)。统计电话簿的信息的个数。插入一个电话记录;删除一个电话 记录。 4. 输出记录模块 显示所有电话簿的信息。 二、分析过程、思路 该系统的主要功能是对联系人进行管理,主要包括有输入模块、 输出模块、查询模块、修改模块、插入模块,因此该系统应该采用模 块化程序设计,先用 switch(多分支选择结构)来让用户选择要进 行的功能,然后再针对某一个功能来设计相应的程序。如图(1)。 图(1) 1
三、算法 以修改模块为例 四、函数模块介绍 1、输入模块 该模块主要功能为对用户所数据存入电脑中,方便读取。 2
首先建立一个包含姓名(name)、电话()、地址()的结构体。 然后使用自己定义的函数 create()在内存中创建联系人数据。 用户可以通过键盘选择 1,然后进入输入联系人的界面,按照提示用 键盘输入姓名、电话号码、地址。并且这里面还存在一个判断的过程, 如果用户输入“#”,直接从输入模块中退出,并且按 1 进行清屏。 如果用户没有输入“#”,则程序会自动在内存中开辟一个长度为 ID 的内存来存放信息。 2、输出模块 该模块主要功能是对用户所输入的信息进行输出,定义一个指针 变量*p,让 p=head,然后通过 printf 函数对全部的联系人信息进行 输出。 3、查询模块 该模块主要的功能是能让用户方便的对联系人进行查找,本程序 有两种查找方法,一是按姓名查找,二是按电话号码查找。其主要是 通过字符串比较函数 strcmp 把用户所输入的信息与之前输入的进行 逐个对比,如果 strcmp(p1->name(如果是按电话号码查找则为 tele),c==0,则说明用户之前所输入的信息中有,然后对其进行输 出。如果逐个对比后没有用户所输入的数据,则会提示用户“未找到 符合记录!”。 4、修改模块 修改有三种模式可以选择,一是修改联系人姓名,二是修改联系 人电话号码,三是修改联系人地址。该功能能够让用户自由的对联系 人信息进行更改,方便使用。 3
5、插入模块、删除模块 该模块可以让用户根据自己的需求随心所欲的添加/删除联系 人,对联系人进行实时的更新,方便用户使用。 五、源程序 #include #include #include #include #define ID struct id struct id { char name[20]; char tele[20]; char addr[20]; ID *next; }; ID *creat() //添加数据模块 { ID *p1,*p2,*head; char str[20]; p1=p2=head=NULL; 4
printf("\t\t\t 开始输入记录(姓名 # 结束)!\n"); while(1) { printf("请输入姓名:\n"); scanf("%s",str); //输入字符 if(strcmp(str,"#")==0) break; p1=(ID*)malloc(sizeof(ID)); strcpy(p1->name,str); printf("请输入电话号码:\n"); scanf("%s",p1->tele); printf("请输入地址:\n"); scanf("%s",p1->addr); if(head==NULL) { head=p1; p2=p1; } else { p2->next=p1; p2=p1; } 5
} p2->next=NULL; return(head); } /*输入/添加记录*/ ID *insert(ID *head) { ID *temp,*p1,*p2; printf("插入操作开始!!!\n"); temp=(ID *)malloc(sizeof(ID)); printf("请输入姓名:\n"); scanf("%s",temp->name); printf("请输入电话号码:\n"); scanf("%s",temp->tele); printf("请输入地址:\n"); scanf("%s",temp->addr); if (head==NULL) { head=temp; temp->next=NULL; } 6
else { p1=head; while(p1!=NULL) { p2=p1; p1=p1->next; } p2->next=temp; temp->next=NULL; } printf("插入成功"); return (head); } /*删除记录*/ ID *delet(ID *head) { ID *p1,*p2; char str[20]; printf("请输入要删除的姓名:");scanf("%s",str); p1=head; if (head==NULL) 7
分享到:
收藏