《数据结构》课程设计- 基于C ++ 的通讯录管理设计.doc

上传人:哈尼dd 文档编号:5017232 上传时间:2020-01-28 格式:DOC 页数:24 大小:1.81MB
返回 下载 相关 举报
《数据结构》课程设计- 基于C ++ 的通讯录管理设计.doc_第1页
第1页 / 共24页
《数据结构》课程设计- 基于C ++ 的通讯录管理设计.doc_第2页
第2页 / 共24页
《数据结构》课程设计- 基于C ++ 的通讯录管理设计.doc_第3页
第3页 / 共24页
《数据结构》课程设计- 基于C ++ 的通讯录管理设计.doc_第4页
第4页 / 共24页
《数据结构》课程设计- 基于C ++ 的通讯录管理设计.doc_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《《数据结构》课程设计- 基于C ++ 的通讯录管理设计.doc》由会员分享,可在线阅读,更多相关《《数据结构》课程设计- 基于C ++ 的通讯录管理设计.doc(24页珍藏版)》请在三一文库上搜索。

1、课程设计说明书题目: 通讯录管理 院 系: 计算机科学与工程学院专业班级: 计07-3 学 号: 学生姓名: 指导教师: 2009年 07月 03日 安徽理工大学课程设计(论文)任务书(第二组)学 号学生姓名专业(班级)计07-3设计题目通讯录管理设计技术参数(1)用C+或C语言实现设计任务;(2)所设计的程序可读性好,执行效率高;(3)有良好的操作界面;(4)设计说明书能很好地反映设计内容设计要求利用单链表实现通讯录的建立、通讯者的插入、通讯者的删除、通讯者的查询以及通讯录的输出。工作量 要求设计说明书的字数在3000字以上。工作计划6月29号 根据课程设计大纲的要求,查找相关资料,完成需求

2、分析;6月30号 进行系统的概要设计;7月01号-7月2号 进行系统的详细设计和源代码的书写;7月3号对系统进行调试分析,写出课程设计报告。参考资料1龚沛曾等编.C/C+程序设计教程.北京:高等教育出版社,2004.2谭浩强编著.C程序设计(第二版).北京:清华大学出版社,1999.3秦峰编.数据结构(C语言版).合肥:中国科大出版社,2008.4秦峰等编.数据结构(C语言版)例题详解与课程设计指导.合肥:中国科大出版社,2009.5严蔚敏,吴伟民编著.数据结构(C语言版)北京:清华大学出版社,2002.指导教师签字教研室主任签字2009年6月26日安徽理工大学课程设计(论文)成绩评定表指导教

3、师评语:成绩: 指导教师: 年 月 日摘要日益繁多的人际交往使得我们很难搞清楚与每个学生之间的联系方式,特别是对于不经常上课的人来说更是难,所以通讯录能够便捷的给我们带来所需要的相关信息。而随着计算机的普及,人们的生活摆脱了传统式的记事本、电话簿,越来越多的靠计算机来帮助人们记住这些事情,极其简便。这就需要有一个使用的通讯录管理系统,教师可以方便的通过自己电脑的通讯录管理系统,来随时查阅自己所需要的信息,而不必再大费周折去翻开那繁琐的记事本。班级通讯录管理系统是一个专门针对储存学生联系方式以及一些简单个人信息的实用管理系统,它方便了教师对众多学生信息的储存和快速查阅的功能,大大减少了查找过程的

4、时间。目录摘要41 问题描述62 需求分析63 总体设计63.1 算法的定义63.2 系统流程图73.3 详细程序设计73.4 测试144 总结175 源程序(附)176 参考文献231 问题描述(1)题目内容:通讯录管理。(2)基本要求:利用单链表实现通讯录的建立、通讯者的插入、通讯者的删除、通讯者的查询以及通讯录的输出。(3)设计目的:通过本次课程设计,了解通讯录的一些基本功能。掌握利用单链表进行插入,查找,用关键字建立单链表。2 需求分析 经过本次的课程设计,我认为通讯录主要实现的功能如下:(1)添加信息:一个通讯录应该有其基本的添加功能。在程序设计时,我通过一个具有添加功能的函数,实现

5、了个人信息的添加,如:姓名,性别,电话号码,QQ号码,地址。(2)删除信息:当你不需要某个联系人的信息时,可以直接将该人的信息删除。(3)查找:一个通讯录应该具有令一基本功能就是查找,本设计时可以按联系人为关键字查找的,只要你输入要查找人的姓名或手机号码或QQ号码就可出来相应的个人信息。(4)输出:一个通讯录应该具有输出所有联系人的功能,本设计按照次序可以从头到尾把通讯录中的所有联系人都输出,供自己查看。(5)退出:当你做完你要做的事情之后,就可以退出该程序。3 总体设计3.1 算法的定义LinkList Creat_LinkList()创建空单链表void Insert_LinkList(L

6、inkList H)建立通讯录,录入联系人的信息,可以把联系人的姓名,性别,手机号,QQ号,地址录入系统。void Locate_LinkList(LinkList H)按照联系人的姓名,手机号码,QQ号码查找通讯录中联系人的信息。void Delete_LinkList(LinkList H)按照联系人的姓名,手机号码,QQ号码删除联系人的所有信息。void print_LinkList(LinkList H)输出通讯录中的所有联系人的信息供使用者查看。3.2 系统流程图 通讯录管理删除联系人添加联系人输出所有联系人退出该系统查找联系人 图3-1通讯录管理功能图3.3 详细程序设计1)定义数

7、据结构typedef struct Node /定义 数据结构 char name20;/姓名 char sex4; /性别char tel11;/电话号码char qq13; /qq号码char ad100;/地址 Node *next;/存放后继元素的地址LNode,*LinkList;2)创建一个空的单链表LinkList Creat_LinkList()/创建空单链表,入口参数无LinkList H;H=new LNode;if(H)/确认创建头结点创建是否成功,若成功,修改单链表头结点的指针域为0表空表H-next=NULL;return H;3)向通讯录中插入联系人void Ins

8、ert_LinkList(LinkList H)LinkList p;p=new LNode;if(!p)cout不能插入!endl;cout请输入你要插入的联系人信息:endl;cout姓名:p-name;cout性别:p-sex;cout手机号码:p-tel;coutQQ号码:p-qq;cout地址:p-ad;p-next=H-next;H-next=p;cout插入成功next;cout你要通过哪种方式查询?endl;cout1.通过联系人姓名查询endl;cout2.通过联系人手机号码查询endl;cout3.通过联系人QQ号码查询x;char str30;if(x=1)coutstr

9、;while(p & strcmp(p-name,str)!=0)p=p-next;if(x=2)coutstr;while(p&strcmp(p-tel,str)!=0)p=p-next;if(x=3)coutstr;while(p&strcmp(p-qq,str)!=0)p=p-next;if(p=NULL)cout没有找到你要查找的联系人的信息!endl;elsecout你要找的联系人的信息为:endl;cout姓名:nameendl;cout性别:sexendl;cout手机号:telendl;coutQQ号码qqendl;cout地址adnext=NULL)cout通讯录为空,不能删

10、除next;cout请输入你要删除的方式:endl;cout1.按照联系人的姓名删除endl;cout2.按照联系人的手机号码删除endl;cout3.按照联系人的QQ号码删除x;q=H;if(x=1)cout请输入你要删除的联系人的姓名:str;while(strcmp(p-name,str)!=0)q=p;p=p-next;if(x=2)cout请输入你要删除的联系人的手机号码:str;while(strcmp(p-tel,str)!=0)q=p;p=p-next;if(x=3)cout请输入你要删除的联系人的QQ号码:str;while(strcmp(p-qq,str)!=0)q=p;p

11、=p-next;if(p=NULL)cout没有你要删除的联系人的记录next=p-next;p-next=NULL;free(p);cout该联系人已删除next=NULL)cout通讯录为空next;while(p!=NULL)cout性别:sexendl;cout手机号:telendl;coutQQ号码:qqendl;cout地址:adnext;7)主函数void main()int a;LinkList List;List=Creat_LinkList();docout*欢迎进入通讯录管理*endl;cout*添加联系人请按1*endl;cout*查找联系人请按2*endl;cout*

12、删除联系人请按3*endl;cout*输出所有联系人请按4*endl;cout*退出请按0*endl;cout请输入你的选择:a;switch(a) case 0:break; case 1:Insert_LinkList(List);break; case 2:Locate_LinkList(List);break; case 3:Delete_LinkList(List);break; case 4:print_LinkList(List);break; cout操作完毕,请再次选择!endl; while(a!=0);3.4 测试运行程序,看到主界面。有六个选项:1添加联系人。2按姓名删

13、除联系人。3输出所有联系人。4按姓名查找联系人.5退出该程序。图3.4-1 通讯录主界面按1进入建立联系人;接着提示,输入联系人的姓名,性别,手机号,QQ号,地址。输入之后自动显示下一个联系人的输入,如果不想继续添加联系人则可以按回车键返回主界面。图3.4-2 向通讯录中插入联系人按2为查找联系人,系统默认的有三个选项,可以选择通过联系人的姓名查找,通过联系人的手机号码查找和通过联系人的QQ号码查找。查找成功后直接输出联系人的信息,然后返回主界面。图3.4-3 用联系人姓名从通讯录中查找联系人信息按3为删除联系人信息,和查找相似删除联系人也有三种删除方式:按照联系人的姓名删除,按照联系人的手机

14、号码删除和按照联系人的QQ号码删除。删除成功后会提示删除成功并且自动返回主界面。图3.4-4 用联系人姓名从通讯录中删除联系人信息按4为输出所有联系人信息,可以将通讯录中的所有联系人的信息都输出来,成功之后直接输出所有联系人信息,并且自动返回主界面。图3.4-5 输出通讯录中所有联系人的信息按0为退出该程序。选择之后会出现Press any key to continue,然后按任意键就可以直接退出该程序。程序中加入一些提示增加程序的健壮性,如插入,删除联系人会有成功提示,每次操作也都有提示,操作错误也会有提示等。4 总结通过对数据结构这门课的学习,我了解到:“数据结构”在计算机科学中是一门综

15、合性的专业基础课。数据结构的研究不仅涉及到计算机硬件(特别是编码理论、存储装置和存取方法等)的研究,而且和计算机软件的研究有着更密切的关系,无论是编译程序还是操作系统,都涉及到数据元素在存储器中的分配问题。在研究信息检索时也必须考虑如何组织数据,以便使查找和存取数据元素更为方便。可以认为数据结构是介于数学、计算机硬件和计算机软件三者之间的一个核心内容,是从事计算机科学研究及其应用的科技工作者必须掌握的重要内容。经过这次课程设计,我体会到自己所学的东西太少了,很多都不知道。做这课程设计让我认识到仅仅看书是不够的,要经常动手写程序,上机调试是最重要的。在课程设计中我更体会到:一个好的程序应该是一个

16、所占空间小、运行时间短、其他性能也好的算法。然而,实际上很难做到十全十美,原因是上述要求有时相互抵触。要节约算法的执行时间往往要以牺牲更多的存储空间为代价;而为了节省存储空间又可能要以更多的时间作为代价。因此,只能根据具体情况有所侧重:如果程序的使用次数较少,则应该力求算法简明易懂,而易于转换为上机程序;如果程序反复多次使用,则应该尽可能选用快速的算法;如果待解决的问题数据量极大,机器的存储空间较小,则在编写算法时应该考虑如何节省空间。以后在编写程序时就应该注意到所编写程序的时间复杂度,以及是否运用了良好的算法,而不能只是象以前编写程序时单纯使用C+的知识,要充分考虑程序的性能,争取编写出更优

17、良的程序来。5 源程序(附)#include#include#include#includetypedef struct Node /定义 数据结构 char name20;/姓名 char sex4; /性别char tel20;/电话号码char qq13; /qq号码char ad100;/地址 Node *next;/存放后继元素的地址LNode,*LinkList;LinkList Creat_LinkList()/创建空单链表,入口参数无LinkList H;H=new LNode;if(H)/确认创建头结点创建是否成功,若成功,修改单链表头结点的指针域为0表空表H-next=NU

18、LL;return H;/插入通讯录void Insert_LinkList(LinkList H)LinkList p;p=new LNode;if(!p)cout不能插入!endl;cout请输入你要插入的联系人信息:endl;cout姓名:p-name;cout性别:p-sex;cout手机号码:p-tel;coutQQ号码:p-qq;cout地址:p-ad;p-next=H-next;H-next=p;cout插入成功next;cout你要通过哪种方式查询?endl;cout1.通过联系人姓名查询endl;cout2.通过联系人手机号码查询endl;cout3.通过联系人QQ号码查询x

19、;char str30;if(x=1)coutstr;while(p & strcmp(p-name,str)!=0)p=p-next;if(x=2)coutstr;while(p&strcmp(p-tel,str)!=0)p=p-next;if(x=3)coutstr;while(p&strcmp(p-qq,str)!=0)p=p-next;if(p=NULL)cout没有找到你要查找的联系人的信息!endl;elsecout你要找的联系人的信息为:endl;cout姓名:nameendl;cout性别:sexendl;cout手机号:telendl;coutQQ号码:qqendl;cout

20、地址:adnext=NULL)cout通讯录为空,不能删除next;cout请输入你要删除的方式:endl;cout1.按照联系人的姓名删除endl;cout2.按照联系人的手机号码删除endl;cout3.按照联系人的QQ号码删除x;q=H;if(x=1)cout请输入你要删除的联系人的姓名:str;while(strcmp(p-name,str)!=0)q=p;p=p-next;if(x=2)cout请输入你要删除的联系人的手机号码:str;while(strcmp(p-tel,str)!=0)q=p;p=p-next;if(x=3)cout请输入你要删除的联系人的QQ号码:str;whi

21、le(strcmp(p-qq,str)!=0)q=p;p=p-next;if(p=NULL)cout没有你要删除的联系人的记录next=p-next;p-next=NULL;free(p);cout该联系人已删除next=NULL)cout通讯录为空next;while(p!=NULL)cout性别:sexendl;cout手机号:telendl;coutQQ号码:qqendl;cout地址:adnext;/主函数void main()int a;LinkList List;List=Creat_LinkList();docout*欢迎进入通讯录管理*endl;cout*添加联系人请按1*en

22、dl;cout*查找联系人请按2*endl;cout*删除联系人请按3*endl;cout*输出所有联系人请按4*endl;cout*退出请按0*endl;cout请输入你的选择:a;switch(a) case 0:break; case 1:Insert_LinkList(List);break; case 2:Locate_LinkList(List);break; case 3:Delete_LinkList(List);break; case 4:print_LinkList(List);break; cout操作完毕,请再次选择!endl; while(a!=0);6 参考文献1龚沛曾等编.C/C+程序设计教程.北京:高等教育出版社,2004.2谭浩强编著.C程序设计(第二版).北京:清华大学出版社,1999.3秦峰编.数据结构(C语言版).合肥:中国科大出版社,2008.4秦峰等编.数据结构(C语言版)例题详解与课程设计指导.合肥:中国科大出版社,2009.5严蔚敏,吴伟民编著.数据结构(C语言版)北京:清华大学出版社,2002.24

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 研究报告 > 商业贸易


经营许可证编号:宁ICP备18001539号-1