ImageVerifierCode 换一换
格式:DOCX , 页数:25 ,大小:328.49KB ,
资源ID:4142344      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4142344.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(电话簿管理系统课程设计.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

电话簿管理系统课程设计.docx

1、电话簿管理系统课程设计目 录摘要 2一、课程设计目的 3二、课程设计内容 3三、总体设计 3四、详细设计 5(1)数据结构设计 5(2)模块接口设计 5(3)部分函数细节 6五、调试与测试 9(1) 调试过程中的主要问题 9(2) 测试结果的分析与讨论 9 12六实习总结 14参 考 文 献 15致谢辞 16附录:源程序代码 17 摘要日益繁多的人际交往使得我们很难搞清楚与每个人之间的联系方式,特别是对于做经常出差的人来说更是难,所以电话簿能够便捷的给我们带来所需要的相关信息。而随着计算机的普及,人们的生活摆脱了传统式的电话簿,越来越多的靠计算机来帮助人们记住这些事情,极其简便。这就需要有一个

2、使用的电话簿管理系统,用户可以方便的通过自己电脑的电话簿管理系统,来随时查阅自己所需要的信息,而不必再大费周折去翻开那繁琐的记事本。电话簿管理系统是一个专门针对储存用户联系方式以及一些简单个人信息的实用管理系统,它方便了用户对众多客户、朋友、同事等个人信息的储存和快速查阅的功能,大大减少了查找过程的时间。关键字:信息(Information)电话簿管理系统(The Management of Telephone Book) 一、课程设计目的通过课程设计,加深对结构化设计思想的理解,能对系统功能进行分析,并设计合理的模块化结构。通过课程设计,学会设计数据结构。其中包括对结构数组、链表和数据结构等

3、知识的运用。通过课程设计,提高程序开发功能,能运用合理的控制流程编写清晰高效的程序。通话课程设计,培养分析问题、解决实际问题的能力。二、课程设计内容设计一个实用的电话簿管理系统,能以简便高效的方式对电话簿进行管理,具体要示:电话簿信息包括:姓名,电话。(1)更新:能插入、删除电话簿信息。.(2)浏览:能够查看所有的电话簿信息。 (3)查询:能实现指定姓名信息查询。(4)修改:能修改指定的电话簿信息。(5)添加:可以添加想要的信息。(6)保存和打印:能保存和打印电话簿信息。(7)退出:可以随意退出程序。三、总体设计1、模块化设计为实现系统功能,本程序主要分为九个模块。它们分别为:输入一个信息、删

4、除一个信息、查询一个信息、读取查找插入一个信息、查找、添加,修改一个信息,列出所有的信息、退出该程序。这五个函数再通过主函数调用分别得以实现。主函数,首先提供了程序运行时的友好界面,列出了清单,提供用户做出选择,以便决定使用电话簿的哪种功能。然后,通过执行多分支选择语句switch语句,分别实现其它各个函数的调用功能。其它各个函数的功能分别如下:(1)create 建立电话簿(2)delete删除电话号码 (3)print 打印电话簿 (4) save 保存电话簿 (5)load 读取电话簿文件 (6)search 查找电话号码 (7)append 添加新的电话号码 (8)modify 修改电

5、话号码 (9)exit 退出电话号码簿2、模块调用图四、详细设计(1)数据结构设计本程序中,运用了多种数据结构。首先对于通讯录中各项详细信息的记录用了结构数组的形式,然后又运用链表动态地分配内存单元,通过指针的后移,把多个数据连成一个链,形成一个链表。对于主要数据结构的举例如下:结构数组:strut tel char name10; char tel 11; char s11;;链表:ID * next;ID *creat() ID *head,*p1,*p2; void save(ID * head);ID*temp;ID*deleter(ID*head);ID *append(ID *he

6、ad);ID *modify(ID *head);(2)模块接口设计 由于本程序中大部分运用了链表这一数据结构,函数中存在很多指针,所以这个程序中被调用的函数都是空类型的,但这并没有影响最终结果的输出,反而使得函数调用的过程更加简便。 本程序执行的入口是main函数,然后在main函数中首先调用了creat函数,这就实现了对通讯录中的数据进行录入。接下来用switch语句实现对各个函数的调用。通过对链表的使用,可以使得每一次的函数调用都能得到返回值。最后,再从main函数中结束整个程序的运行。(3)部分函数细节print函数,功能:打印用户已经输入过的电话信息,系统若无法读取原信息,则给用户相

7、关提示:“当前链表为空,请先创建新的链表或者加载文件”。 void print(ID*head) ID*temp; temp=head; system(cls); printf(姓名:t电话号码:n); if(head=NULL) printf(当前链表为空,请先创建新的链表或者加载文件n); else while(temp!=NULL) printf(%st%sn,temp-name,temp-tel); temp=temp-next; search 函数,用户通过提示输入待查姓名的首字母,系统会根据用户输入内容做判断,并给出相应的提示:对不起,未能找到符合条件的记录”,或查找完毕,是否重新

8、查询?void search(ID *head) printf(欢迎使用查找功能,只需要输入待查姓名的首字母:n); ID* p; int flag,searchflag=1; char c,choice; while(searchflag) flag=0; printf(请输入需要查找姓名的首字母:n); scanf(%c,&c); getchar(); p=head; while(p!=NULL) if(p-name0=c) printf(姓名:%st电话号码:%sn,p-name,p-tel); flag=1; p=p-next; if(flag=0) printf(对不起,未能找到符合

9、条件的记录n); printf(查找完毕,是否重新查询?Y/N?); scanf(%s,&choice); getchar(); if(choice=Y|choice=y) searchflag=1; else searchflag=0; system(cls); 五、调试与测试(1) 调试过程中的主要问题由于本程序是分模块设计的,所以运行时选择完任务并且执行完任务后,又会继续回到用户选择界面,供用户继续选择任务并执行任务。对于本程序的调试运行,总体上情况良好。但是,其中也出现了一些小问题。我发现的主要问题有:对于本程序来说不能实现保存,程序在下一次运行的时候便要从新输入。(2) 测试结果的分

10、析与讨论用户界面:共九个函数,用户根据数字提示进行操作。图5-1 创建电话簿 图5-2打印电话簿 图5-3保存电话簿 图5-4读取电话簿 图5-5删除电话号码图5-6插入新号码图5-7查找电话号码图5-8修改电话号码图5-9六实习总结课程设计是培养学生综合运用所学知识 ,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对我们的实际工作能力的具体训练和考察过程.随着科学技术发展的日新月异,当今计算机应用在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握程序开发技术是十分重要的,而C语言又是最常见,功能最强大的一种高级语言,因此做好C语言课程设计是十分必要的。 通过三周的课程设

11、计使我们懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次真真的做程序设计,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对一些前面学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体,指针,链表通过这次课程设计之后,我们把前面所学过的知识又重新温故了一遍。 我做的是通讯录管理系统的课程设计,虽然是很简单的一个小的程序,但对我来说却是一个很大的困难。更加是第一次做课程设计,所以第一天下午

12、在机房做了一个下午却丝毫没有进展,最主要是不知从何开始,这个时候才知道上课老师们不厌其烦的教导是多么的宝贵,这个时候才后悔上课的时候没有认真的听讲。可是现在一切都晚了,还好时间还算是充裕,只好拿出书本重新复习一下。 开始的时候真的感觉编程是一件很无聊的事情,不过当一个程序运行成功的时候那种喜悦是无法言语的,那种成就感是无法比拟的。又经过几天的努力,终于把程序完成了,尽管程序还是有很多功能上的欠缺和漏洞,可我还是很高兴的。无论如何是自己的劳动成果,是自己经过努力得到的成绩,同时也是学习C语言的一次实践作业,自己进步的证明。在课程设计过程中,收获知识,提高能力的同时,我也学到了很多人生的哲理,懂得

13、怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上的不良情绪。因此在以后的生活和学习的过程中,我一定会把课程设计的精神带到生活中,不畏艰难,勇往直前!参 考 文 献1郭有强,C语言程序设计,清华大学出版社。2谭浩强,C程序设计,清华大学出版社。3刘振安,孙忱,刘燕君,C程序设计课程设计,机械工业出版社。4汪诗林,数据结构算法与应用,机械工业出版社。致谢辞在这次课程设计的撰写过程中,我得到了很多人的帮助。首先我要感谢我的老师在课程设计上给予我的指导、提供给我的支持和帮助,这是我能顺利完成这次课程设计的主要原因,更重要的是老师帮我解决了许多技术上的难题,让我能把系统做得

14、更加完善。在此期间,我不仅学到了许多新的知识,而且也开阔了视野,提高了自己的设计能力。其次,我要感谢帮助过我的同学,他们也为我解决了不少我不太明白的设计商的难题。同时也感谢学院为我提供良好的做毕业设计的环境。最后再一次感谢所有在设计中曾经帮助过我的良师益友和同学!附录:源程序代码#include#include#include#include#include#include#define ID struct telstruct tel char name10; char tel 11; ID * next;int total=0;ID *creat() ID *head,*p1,*p2; vo

15、id save(ID * head); char saveflag; head=p1=p2=NULL; printf(欢迎使用n); while(1) p1=(ID*)malloc(sizeof(ID); printf(请输入姓名,以#作为结束标志n); scanf(%s,p1-name); if(strcmp(p1-name,#)=0) if(total=0) printf(您输入了0条记录,单链表没有创建n); free(p1); return(head); else break; printf(请输入电话号码:n); scanf(%s,p1-tel); if(head=NULL) hea

16、d=p1; p2=p1; else p2-next=p1; p2=p1; total+; p2-next=NULL; free(p1); printf(新建电话簿成功,共有%d个联系人,是否存盘?Y/N,total); getchar(); scanf(%c,&saveflag); if(saveflag=y|saveflag=Y) save(head); else printf(请在推出程序之前,保存当前的工作!n); return head;void print(ID*head) ID*temp; temp=head; system(cls); printf(姓名:t电话号码:n); if

17、(head=NULL) printf(当前链表为空,请先创建新的链表或者加载文件n); else while(temp!=NULL) printf(%st%sn,temp-name,temp-tel); temp=temp-next; void save(ID*head) FILE *fp; ID*t; if(fp=fopen(tel.txt,w)=NULL) printf(文件打开失败!n); getch(); exit(1); printf(正在保存文件,请稍后.n); t=head; while(t!=NULL) fwrite(t,sizeof(ID),1,fp); t=t-next;

18、fclose(fp); printf(文件保存成功!n);ID * load() FILE *fp; ID *t1,*t2,*head=NULL; char ch; if(fp=fopen(tel.txt,r)=NULL) printf(文件打开失败!没有该文件n); getch(); /exit(1); return(head); ch=fgetc(fp); if(ch=EOF) printf(文件为空,请重新建立一个电话簿n); return (head); else printf(文件正在读取中.n);rewind(fp); t1=(ID *) malloc(sizeof(ID); he

19、ad=t1; while(!feof(fp) if(fread(t1,sizeof(ID),1,fp)!=1) break; t1-next=(ID *)malloc(sizeof(ID); t2=t1; t1=t1-next; t2-next=NULL; fclose(fp); printf(文件读取完毕n); return head;void search(ID *head) printf(欢迎使用查找功能,只需要输入待查姓名的首字母:n); ID* p; int flag,searchflag=1; char c,choice; while(searchflag) flag=0; pri

20、ntf(请输入需要查找姓名的首字母:n); scanf(%c,&c); getchar(); p=head; while(p!=NULL) if(p-name0=c) printf(姓名:%st电话号码:%sn,p-name,p-tel); flag=1; p=p-next; if(flag=0) printf(对不起,未能找到符合条件的记录n); printf(查找完毕,是否重新查询?Y/N?); scanf(%s,&choice); getchar(); if(choice=Y|choice=y) searchflag=1; else searchflag=0; system(cls);

21、ID*deleter(ID*head) ID*p,*q; char s11,choice; system(cls); printf(请输入要删除的电话号码:n); scanf(%s,s); q=p=head; while(strcmp(p-tel,s)&p!=NULL) q=p; p=p-next; if(p=NULL) printf(n对不起,记录中没有电话号码:%sn,s); else printf(姓名:%st 电话号码:%sn,p-name,p-tel); printf(是否删除?Y/N); scanf(%s,&choice); getchar(); if(choice=Y|choic

22、e=y) printf(按任意键删除.n); getch(); if(p=head) head=p-next; else q-next=p-next; free(p); printf(n 已经删除了电话号码:%sn,s); printf(请保存文件!(按4保存文件)n); else system(cls); return(head);ID *append(ID *head) ID *temp,*p1,*p2; printf(插入操作开始!n); temp=(ID *)malloc(sizeof(ID); printf(请输入姓名:n); scanf(%s,temp-name); getchar

23、(); printf(请输入电话号码:n); scanf(%s,temp-tel); getchar(); if (head=NULL) head=temp; temp-next=NULL; else p1=head; while(p1!=NULL) p2=p1; p1=p1-next; p2-next=temp; temp-next=p1; printf(插入成功); total+; return (head); ID *modify(ID *head) ID *p1,*p2; int mode; char str10; printf(请输入要修改记录的姓名:); scanf(%s,str)

24、; getchar(); p1=head; while( p1!=NULL) if(strcmp(p1-name,str)=0) printf(1.姓名:%st2.电话号码:%sn,p1-name,p1-tel); printf(请选择要修改选项:n); scanf(%d,&mode); getchar(); if(mode=1) printf(请输入修改后的姓名n); scanf(%s,p1-name); getchar(); else if(mode=2) printf(请输入修改后的电话号码n); scanf(%s,p1-tel); getchar(); else printf(输入有误

25、!n); break; p2=p1; p1=p1-next; if(p1=NULL) printf(未找到符合要求的记录!n); return head;int main() ID *head=NULL; int choice; while(1) printf(t*电话簿管理系统*n); printf(t*t1 create 建立新的电话簿 * n); printf(t*t2 deleter 删除电话号码 * n); printf(t*t3 print 打印电话簿 * n); printf(t*t4 save 保存电话簿 * n); printf(t*t5 load 读取电话簿文件 * n);

26、 printf(t*t6 search 查找电话号码 * n); printf(t*t7 append 添加新的电话号码 * n); printf(t*t8 modify 修改电话号码 * n); printf(t*t9 exit 退出电话号码簿 * n); printf(t*电话簿管理系统*n); printf(tt请选择1-9之间的操作:n); scanf(%d,&choice); getchar(); switch(choice) case 1: head=creat();break; case 2: head=deleter(head);break; case 3: print(hea

27、d);break; case 4: save(head);break; case 5: head=load();break; case 6: search(head);break; case 7: head=append(head);break; case 8: head=modify(head);break; case 9: exit(0);break; default:printf(选择错误,请输入1-9之间的数字进行选择n); return 0;蚌埠学院本科学生课程设计任务书题目电话簿管理1、课程设计的目的利用单链表实现电话簿管理,掌握C语言中的结构体、链表,指针、函数(系统函数,自定义函数)等C语言知识。2、课程设计的内容和要求(包括原始数据、技术要求、工作要求等)一、用C实现一个电话簿管理小程序。具有加入、删除、显示

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1