收藏 分销(赏)

C语言通讯录管理系统程序设计.docx

上传人:人****来 文档编号:3635819 上传时间:2024-07-11 格式:DOCX 页数:32 大小:197.75KB
下载 相关 举报
C语言通讯录管理系统程序设计.docx_第1页
第1页 / 共32页
C语言通讯录管理系统程序设计.docx_第2页
第2页 / 共32页
C语言通讯录管理系统程序设计.docx_第3页
第3页 / 共32页
C语言通讯录管理系统程序设计.docx_第4页
第4页 / 共32页
C语言通讯录管理系统程序设计.docx_第5页
第5页 / 共32页
点击查看更多>>
资源描述

1、C语言通讯录管理系统程序设计322020年4月19日文档仅供参考广西科技大学鹿山学院课程设计报告课程名称: c语言程序设计 课题名称: 通讯录管理系统设计 指导教师: 倪志平 班 级: 物联网152 姓 名: 吴肖军 学 号: 3076 成绩评定: 指导教师签字: 二一六 年 七 月 六 日目录1 需求分析32 总体分析与设计32.1 总体设计方案32.2 功能描述42.2.1 新增联系人模块42.2.2 保存联系人模块42.2.3 查询联系人模块42.2.4 显示联系人模块42.2.5 修改联系人模块42.2.6 删除联系人模块42.2.7 读取联系人模块52.2.8 退出系统模块5 2.3

2、 系统流程图53 系统实现 64 功能测试114.1.1 新增联系人114.1.2 查询联系人134.1.3 显示联系人144.1.4 修改联系人154.1.5 删除联系人164.1.6 退出系统17总 结18参考文献18课程设计目的1 需求分析通讯录档案信息采用文件存储,因而要提供文件的输入输出操作;根据联系人信息的变动情况,添加删除记录,因而要提供文件的添加删除操作;根据编号进项查询,因此要提供文件的查找操作;高级编辑功能,就是提供文件的修改操作;显示功能就是显示出通讯录中所有联系人的功能;另外还要提供键盘式选择菜单以实现功能选择。2 总体分析与设计1. 总体设计总体设计目标:使用者能够利

3、用本系统对通讯录的各项管理进行操作,根据用户要求自动进行新增联系人,保存联系人,删除联系人,查找所要的联系人,修改所要的联系人,最后将她们清楚地显示在屏幕中。结合上述分析,该系统应包括一下模块:新增联系人,保存联系人,查询联系人,修改联系人,显示联系人,删除联系人,退出系统。结构图如下。2.1 总体设计方案通讯录管理系统图2-1 系统功能模块图退出系统修改联系人显示联系人查询联系人删除联系人新增联系人保存联系人2.2 功能描述根据以上需求分析,通讯录管理系统划分为七个功能模块,分别是新增联系人模块,保存联系人模块,查找联系人模块,修改联系人模块,显示联系人模块,删除联系人模块,读取联系人模块。

4、其中各功能模块的具体说明如下。2.2.1 新增联系人模块增加联系人模块:该模块的功能是增加新的联系人信息。信息包括联系人姓名,联系人所在单位,联系人电话号码等。然后从键盘输入并逐条写入到的文件中。增加成功后提示增加联系人信息成功!2.2.2 保存联系人模块 保存联系人模块:该模块会保存所新增联系人,修改联系人等信息到指定文件夹中。2.2.3 查找联系人模块查找人事信息模块:该模块的功能是,查找文件中的联系人信息记录,从键盘输入联系人编号,输入时会判断该联系人编号是否存在,若不存在,则重新输入。若存在,则将该人事信息输出到窗口。2.2.4 修改联系人模块修改人事信息模块:该模块的功能是由用户输入

5、所需修改的联系人信息编号。然后对联系人信息(姓名和电话号码等)进行修改,最后保存修改后的结果。2.2.5 显示联系人模块该模块将文件里的内容输出到电脑屏幕。用户能够经过该功能看到文件当中的所有联系人的信息。2.2.6 删除联系人模块 删除人事信息模块:该模块首先由用户输入要删除的联系人的编号,根据编号删除所需的联系人信息,删除后提示联系人删除成功。删除的方法是将文件中的数据读入内存,赋给相应的结构体,并将结构体数组中将删除的后面的数据赋给前一个结构体,然后将相应数据写入文件并保存。2.2.7 读取联系人模块 该模块将保存到文件中的联系人读取到内存中以供程序操作。2.2.8 退出系统模块 若在系

6、统最初运行时,选择退出系统,则系统退出运行。开始2.3 系统流程图显示主菜单选择6删除联系人7退出系统1新增联系人3查询联系人2保存联系人4修改联系人5显示联系人退出系统结束 显示操作结果 3 系统实现程序源码#include #include #include #includestruct BOOKS int id;char tell12,phone12,name31,add20,email30,qq20;books100,*p;void page_title(char *menu_item) printf(tt*n,menu_item);printf(tt* 欢迎使用通讯录管理系统 *n,

7、menu_item); printf(tt* *n,menu_item);printf(tt* 系统设计人:吴肖军 *n,menu_item);printf(tt* *n,menu_item); printf(tt*nn- %s -nn,menu_item);void return_confirm(void) printf(n按任意键返回n);getchar(); void books_add(void) /输入模块 int n; system(cls);/清屏page_title(新增联系人); for(n=0;n100;n+) if(booksn.id=0) break; printf(序

8、号:); scanf(%d,&booksn.id); printf(姓名:); scanf(%s,&booksn.name); printf(单位:); scanf(%s,&booksn.add); printf(固定电话:); scanf(%s,&booksn.tell); printf(移动电话:); scanf(%s,&booksn.phone); printf(邮件:); scanf(%s,&booksn.email); printf(QQ:); scanf(%s,&booksn.qq); return_confirm(); int books_search(void)/查找模块 in

9、t n,i=-1; char nam30; system(cls); printf(请输入联系人:); scanf(%s,&nam); for(n=0;n100;n+) if(strcmp(booksn.name,nam)=0) printf(序号:%dt,booksn.id); printf(联系人:%st,booksn.name); printf(单位:%st,booksn.add); printf(固定电话:%st,booksn.tell); printf(移动电话:%st,booksn.phone); printf(邮件:%st,booksn.email); printf(QQ:%sn

10、,booksn.qq);i=n; if(i=-1) printf(n没有找到相关记录.n); getchar(); return i; int books_change(void)/修改模块 int n,i; system(cls); page_title(修改联系人信息); printf(请输入要修改的联系人编号:); scanf(%d,&i); for(n=0;n100;n+) if(booksn.id=i) printf(修改联系人:); scanf(%s,booksn.name); printf(修改单位:); scanf(%s,booksn.add); printf(修改固定电话:)

11、; scanf(%s,booksn.tell); printf(修改移动电话:); scanf(%s,booksn.phone); printf(修改邮件:); scanf(%s,booksn.email); printf(修改QQ:); scanf(%s,booksn.qq); printf(修改联系人信息成功.n); return n; printf(n没有找到相关记录.n); getchar(); return -1; int books_show(void)/显示模块int n,i=1;system(cls); for(n=0;n100;n+) if(strlen(booksn.nam

12、e)!=0) printf(序号:%dt,booksn.id); printf(联系人:%st,booksn.name); printf(单位:%st,booksn.add); printf(固定电话:%st,booksn.tell); printf(移动电话:%st,booksn.phone); printf(邮件:%st,booksn.email); printf(QQ:%sn,booksn.qq); i=0; if(i=1) printf(n没有找到相关记录.n);getchar(); return -1;int books_del(void)/删除模块 int n,num,i; sys

13、tem(cls); page_title(删除联系人); printf(请输入所要删除的联系人的编号:n); scanf(%d,&num); for(n=0;n100;n+) if(booksn.id=num) for(i=n;i100;i+) booksi.id=booksi+1.id; strcpy(booksi.name,booksi+1.name); strcpy(booksi.email,booksi+1.email); printf(该联系人已删除.n); return n; printf(没有找到相关记录n); getchar(); return -1; void books_s

14、ave()/保存模块system(cls); FILE *fp; int i; p=books;if(fp=fopen(d:tt.txt,wb+)=NULL) printf(Cannot open file,strike any key exit!); getchar();exit(1);fwrite(p,sizeof(struct BOOKS),2,fp);p=books; for(i=0;iid,p-name,p-add,p-tell,p-phone,p-email,p-qq);fclose(fp);getchar();void books_read()system(cls); FILE

15、*fp; int i; p=books;if(fp=fopen(d:tt.txt,rb+)=NULL) printf(Cannot open file,strike any key exit!); getchar();exit(1);fread(p,sizeof(struct BOOKS),2,fp); p=books;for(i=0;iid,p-name,p-add,p-tell,p-phone,p-email,p-qq);fclose(fp);getchar(); void main(void)menu:page_title(操作选单); printf(请用数字键选择操作nn); prin

16、tf(ttt1 新增联系人ttt2 保存联系人n); printf(ttt3 查询联系人ttt4 修改联系人n); printf(ttt5 显示联系人ttt6 删除联系人n); printf(ttt7 输出数据 ttt8 退出系统 n); printf(请按数字键:n); switch(getchar() case 1 : books_add(); break; case 2 : books_save(); break; case 3 : books_search(); break; case 4 : books_change(); break; case 5 : books_show();

17、break; case 6 : books_del(); break; case 7 : books_read(); break; case 8 :/*退出系统*/ system(cls); printf(n); printf(t*=*n); printf(t* *n); printf(t* 谢 谢 使 用 *n); printf(t* *n); printf(t* *n); printf(t* 如有疑问,请联系管理员 *n); printf(t*=*n); printf(t* *n); printf(t* 广 西 科 技 大 学 鹿 山 学 院 *n); printf(t* 物联网 1 5

18、2 吴肖军 *n); printf(t*=*n); printf(n);exit(0); break; goto menu; 4 功能测试4.1 选择新增联系人,查找联系人,显示联系人,修改联系人,删除联系人,五个功能进行测试。输出测试数据,查看文件记录检测操作结果是否符合预期设计。4.1.1 新增联系人1 输入联系人信息4.1.2 查询联系人在选择界面输入3 回车输入要查询的联系人姓名 回车4.1.3 显示联系人在显示界面输入数字5 回车。出现全部联系人信息。4.1.4 修改联系人在显示界面输入数字4 回车。输入要修改联系人编号后修改信息。回车输入5 显示修改后全部联系人。4.1.5 删除联

19、系人在显示界面输入数字6回车。输入要删除联系人编号 回车。4.1.6 退出系统在显示界面输入数字8回车。总 结这次设计是一个漫长而又艰苦的过程,也可说是有苦有乐!经过设计让我学到不少:理论是要与实际相结合,只有能够将一条条的理论化为自己所能拥有的经验才是有用的!同时这次设计也让我改变了我以前的一些错误观点:以前我认为一个系统设计中最重要的是程序编码,因为只有程序编码才能实现程序的功能,其它的并不重要。可是经过这次设计,让我知道每一步都是很重要的。首先得想这个设计做出是否有这个必要,是否可行!再有如果需求分析写得条理清晰,那么能够为设计节约时间!编码实现之后,测试与维护在整个系统设计中占最大比例!以前总是简单的用数据库建表,存储一些数据而已。但这次经过对数据库的更深入的学习了解,数据库的功能远远不只这些,在我的数据库里面就采用了数据库的存储过程,然后在前台直接调用存储过程,不但使用方便,安全性也更高。因为时间关系,该系统制作比较匆忙,因此有些功能还不够完善,还有很多地方考虑不周,在以后的日子里,我会一边学习,一边再思考,争取把设计的系统做到更加完善。 参考文献1 倪志平 著. C程序设计 . 现代教育出版社 . 2 谭浩强 著. C程序设计(第四版)学习辅导 . 清华大学出版社 .3 王卓等 著. C语言工程实训教程 . 人民邮电出版社 .

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服