欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOC文档下载  

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

    • 资源ID:5017232       资源大小:1.81MB        全文页数:24页
    • 资源格式: DOC        下载积分:6
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要6
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

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

    课程设计说明书题目: 通讯录管理 院 系: 计算机科学与工程学院专业班级: 计07-3 学 号: 学生姓名: 指导教师: 2009年 07月 03日 安徽理工大学课程设计(论文)任务书(第二组)学 号学生姓名专业(班级)计07-3设计题目通讯录管理设计技术参数(1)用C+或C语言实现设计任务;(2)所设计的程序可读性好,执行效率高;(3)有良好的操作界面;(4)设计说明书能很好地反映设计内容设计要求利用单链表实现通讯录的建立、通讯者的插入、通讯者的删除、通讯者的查询以及通讯录的输出。工作量 要求设计说明书的字数在3000字以上。工作计划6月29号 根据课程设计大纲的要求,查找相关资料,完成需求分析;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日安徽理工大学课程设计(论文)成绩评定表指导教师评语:成绩: 指导教师: 年 月 日摘要日益繁多的人际交往使得我们很难搞清楚与每个学生之间的联系方式,特别是对于不经常上课的人来说更是难,所以通讯录能够便捷的给我们带来所需要的相关信息。而随着计算机的普及,人们的生活摆脱了传统式的记事本、电话簿,越来越多的靠计算机来帮助人们记住这些事情,极其简便。这就需要有一个使用的通讯录管理系统,教师可以方便的通过自己电脑的通讯录管理系统,来随时查阅自己所需要的信息,而不必再大费周折去翻开那繁琐的记事本。班级通讯录管理系统是一个专门针对储存学生联系方式以及一些简单个人信息的实用管理系统,它方便了教师对众多学生信息的储存和快速查阅的功能,大大减少了查找过程的时间。目录摘要41 问题描述62 需求分析63 总体设计63.1 算法的定义63.2 系统流程图73.3 详细程序设计73.4 测试144 总结175 源程序(附)176 参考文献231 问题描述(1)题目内容:通讯录管理。(2)基本要求:利用单链表实现通讯录的建立、通讯者的插入、通讯者的删除、通讯者的查询以及通讯录的输出。(3)设计目的:通过本次课程设计,了解通讯录的一些基本功能。掌握利用单链表进行插入,查找,用关键字建立单链表。2 需求分析 经过本次的课程设计,我认为通讯录主要实现的功能如下:(1)添加信息:一个通讯录应该有其基本的添加功能。在程序设计时,我通过一个具有添加功能的函数,实现了个人信息的添加,如:姓名,性别,电话号码,QQ号码,地址。(2)删除信息:当你不需要某个联系人的信息时,可以直接将该人的信息删除。(3)查找:一个通讯录应该具有令一基本功能就是查找,本设计时可以按联系人为关键字查找的,只要你输入要查找人的姓名或手机号码或QQ号码就可出来相应的个人信息。(4)输出:一个通讯录应该具有输出所有联系人的功能,本设计按照次序可以从头到尾把通讯录中的所有联系人都输出,供自己查看。(5)退出:当你做完你要做的事情之后,就可以退出该程序。3 总体设计3.1 算法的定义LinkList Creat_LinkList()创建空单链表void Insert_LinkList(LinkList 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)定义数据结构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 Insert_LinkList(LinkList H)LinkList p;p=new LNode;if(!p)cout<<"不能插入!"<<endl;cout<<"请输入你要插入的联系人信息:"<<endl;cout<<"姓名:"<<endl;cin>>p->name;cout<<"性别:"<<endl;cin>>p->sex;cout<<"手机号码:"<<endl;cin>>p->tel;cout<<"QQ号码:"<<endl;cin>>p->qq;cout<<"地址:"<<endl;cin>>p->ad;p->next=H->next;H->next=p;cout<<"插入成功"<<endl;4)查询通讯录中某个联系人的信息void Locate_LinkList(LinkList H)int x;LinkList p=H->next;cout<<"你要通过哪种方式查询?"<<endl;cout<<"1.通过联系人姓名查询"<<endl;cout<<"2.通过联系人手机号码查询"<<endl;cout<<"3.通过联系人QQ号码查询"<<endl;cin>>x;char str30;if(x=1)cout<<"请输入你要查询的联系人的姓名:"cin>>str;while(p && strcmp(p->name,str)!=0)p=p->next;if(x=2)cout<<"请输入你要查询的联系人的手机号码:"cin>>str;while(p&&strcmp(p->tel,str)!=0)p=p->next;if(x=3)cout<<"请输入你要查询的联系人的QQ号码:"cin>>str;while(p&&strcmp(p->qq,str)!=0)p=p->next;if(p=NULL)cout<<"没有找到你要查找的联系人的信息!"<<endl;elsecout<<"你要找的联系人的信息为:"<<endl;cout<<"姓名:"<<p->name<<endl;cout<<"性别:"<<p->sex<<endl;cout<<"手机号:"<<p->tel<<endl;cout<<"QQ号码"<<p->qq<<endl;cout<<"地址"<<p->ad<<endl;5)删除通讯录中某个联系人的信息void Delete_LinkList(LinkList H)if(H->next=NULL)cout<<"通讯录为空,不能删除"<<endl;elseint x;char str30;LinkList p,q;p=H->next;cout<<"请输入你要删除的方式:"<<endl;cout<<"1.按照联系人的姓名删除"<<endl;cout<<"2.按照联系人的手机号码删除"<<endl;cout<<"3.按照联系人的QQ号码删除"<<endl;cin>>x;q=H;if(x=1)cout<<"请输入你要删除的联系人的姓名:"<<endl;cin>>str;while(strcmp(p->name,str)!=0)q=p;p=p->next;if(x=2)cout<<"请输入你要删除的联系人的手机号码:"<<endl;cin>>str;while(strcmp(p->tel,str)!=0)q=p;p=p->next;if(x=3)cout<<"请输入你要删除的联系人的QQ号码:"<<endl;cin>>str;while(strcmp(p->qq,str)!=0)q=p;p=p->next;if(p=NULL)cout<<"没有你要删除的联系人的记录"<<endl;elseq->next=p->next;p->next=NULL;free(p);cout<<"该联系人已删除"<<endl;6)输出所有联系人void print_LinkList(LinkList H)if(H->next=NULL)cout<<"通讯录为空"<<endl;elseLinkList p;p=H->next;while(p!=NULL)cout<<"性别:"<<p->sex<<endl;cout<<"手机号:"<<p->tel<<endl;cout<<"QQ号码:"<<p->qq<<endl;cout<<"地址:"<<p->ad<<endl;p=p->next;7)主函数void main()int a;LinkList List;List=Creat_LinkList();docout<<"*欢迎进入通讯录管理*"<<endl;cout<<"*添加联系人请按1*"<<endl;cout<<"*查找联系人请按2*"<<endl;cout<<"*删除联系人请按3*"<<endl;cout<<"*输出所有联系人请按4*"<<endl;cout<<"*退出请按0*"<<endl;cout<<"请输入你的选择:"<<endl;cin>>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按姓名删除联系人。3输出所有联系人。4按姓名查找联系人.5退出该程序。图3.4-1 通讯录主界面按1进入建立联系人;接着提示,输入联系人的姓名,性别,手机号,QQ号,地址。输入之后自动显示下一个联系人的输入,如果不想继续添加联系人则可以按回车键返回主界面。图3.4-2 向通讯录中插入联系人按2为查找联系人,系统默认的有三个选项,可以选择通过联系人的姓名查找,通过联系人的手机号码查找和通过联系人的QQ号码查找。查找成功后直接输出联系人的信息,然后返回主界面。图3.4-3 用联系人姓名从通讯录中查找联系人信息按3为删除联系人信息,和查找相似删除联系人也有三种删除方式:按照联系人的姓名删除,按照联系人的手机号码删除和按照联系人的QQ号码删除。删除成功后会提示删除成功并且自动返回主界面。图3.4-4 用联系人姓名从通讯录中删除联系人信息按4为输出所有联系人信息,可以将通讯录中的所有联系人的信息都输出来,成功之后直接输出所有联系人信息,并且自动返回主界面。图3.4-5 输出通讯录中所有联系人的信息按0为退出该程序。选择之后会出现Press any key to continue,然后按任意键就可以直接退出该程序。程序中加入一些提示增加程序的健壮性,如插入,删除联系人会有成功提示,每次操作也都有提示,操作错误也会有提示等。 4 总结通过对数据结构这门课的学习,我了解到:“数据结构”在计算机科学中是一门综合性的专业基础课。数据结构的研究不仅涉及到计算机硬件(特别是编码理论、存储装置和存取方法等)的研究,而且和计算机软件的研究有着更密切的关系,无论是编译程序还是操作系统,都涉及到数据元素在存储器中的分配问题。在研究信息检索时也必须考虑如何组织数据,以便使查找和存取数据元素更为方便。可以认为数据结构是介于数学、计算机硬件和计算机软件三者之间的一个核心内容,是从事计算机科学研究及其应用的科技工作者必须掌握的重要内容。经过这次课程设计,我体会到自己所学的东西太少了,很多都不知道。做这课程设计让我认识到仅仅看书是不够的,要经常动手写程序,上机调试是最重要的。在课程设计中我更体会到:一个好的程序应该是一个所占空间小、运行时间短、其他性能也好的算法。然而,实际上很难做到十全十美,原因是上述要求有时相互抵触。要节约算法的执行时间往往要以牺牲更多的存储空间为代价;而为了节省存储空间又可能要以更多的时间作为代价。因此,只能根据具体情况有所侧重:如果程序的使用次数较少,则应该力求算法简明易懂,而易于转换为上机程序;如果程序反复多次使用,则应该尽可能选用快速的算法;如果待解决的问题数据量极大,机器的存储空间较小,则在编写算法时应该考虑如何节省空间。以后在编写程序时就应该注意到所编写程序的时间复杂度,以及是否运用了良好的算法,而不能只是象以前编写程序时单纯使用C+的知识,要充分考虑程序的性能,争取编写出更优良的程序来。5 源程序(附)#include<iostream.h>#include<string.h>#include<stdlib.h>#include<windows.h>typedef 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=NULL;return H;/插入通讯录void Insert_LinkList(LinkList H)LinkList p;p=new LNode;if(!p)cout<<"不能插入!"<<endl;cout<<"请输入你要插入的联系人信息:"<<endl;cout<<"姓名:"<<endl;cin>>p->name;cout<<"性别:"<<endl;cin>>p->sex;cout<<"手机号码:"<<endl;cin>>p->tel;cout<<"QQ号码:"<<endl;cin>>p->qq;cout<<"地址:"<<endl;cin>>p->ad;p->next=H->next;H->next=p;cout<<"插入成功"<<endl;/查询通讯录void Locate_LinkList(LinkList H)int x;LinkList p=H->next;cout<<"你要通过哪种方式查询?"<<endl;cout<<"1.通过联系人姓名查询"<<endl;cout<<"2.通过联系人手机号码查询"<<endl;cout<<"3.通过联系人QQ号码查询"<<endl;cin>>x;char str30;if(x=1)cout<<"请输入你要查询的联系人的姓名:"cin>>str;while(p && strcmp(p->name,str)!=0)p=p->next;if(x=2)cout<<"请输入你要查询的联系人的手机号码:"cin>>str;while(p&&strcmp(p->tel,str)!=0)p=p->next;if(x=3)cout<<"请输入你要查询的联系人的QQ号码:"cin>>str;while(p&&strcmp(p->qq,str)!=0)p=p->next;if(p=NULL)cout<<"没有找到你要查找的联系人的信息!"<<endl;elsecout<<"你要找的联系人的信息为:"<<endl;cout<<"姓名:"<<p->name<<endl;cout<<"性别:"<<p->sex<<endl;cout<<"手机号:"<<p->tel<<endl;cout<<"QQ号码:"<<p->qq<<endl;cout<<"地址:"<<p->ad<<endl;/删除联系人void Delete_LinkList(LinkList H)if(H->next=NULL)cout<<"通讯录为空,不能删除"<<endl;elseint x;char str30;LinkList p,q;p=H->next;cout<<"请输入你要删除的方式:"<<endl;cout<<"1.按照联系人的姓名删除"<<endl;cout<<"2.按照联系人的手机号码删除"<<endl;cout<<"3.按照联系人的QQ号码删除"<<endl;cin>>x;q=H;if(x=1)cout<<"请输入你要删除的联系人的姓名:"<<endl;cin>>str;while(strcmp(p->name,str)!=0)q=p;p=p->next;if(x=2)cout<<"请输入你要删除的联系人的手机号码:"<<endl;cin>>str;while(strcmp(p->tel,str)!=0)q=p;p=p->next;if(x=3)cout<<"请输入你要删除的联系人的QQ号码:"<<endl;cin>>str;while(strcmp(p->qq,str)!=0)q=p;p=p->next;if(p=NULL)cout<<"没有你要删除的联系人的记录"<<endl;elseq->next=p->next;p->next=NULL;free(p);cout<<"该联系人已删除"<<endl;/输出所有联系人void print_LinkList(LinkList H)if(H->next=NULL)cout<<"通讯录为空"<<endl;elseLinkList p;p=H->next;while(p!=NULL)cout<<"性别:"<<p->sex<<endl;cout<<"手机号:"<<p->tel<<endl;cout<<"QQ号码:"<<p->qq<<endl;cout<<"地址:"<<p->ad<<endl;p=p->next;/主函数void main()int a;LinkList List;List=Creat_LinkList();docout<<"*欢迎进入通讯录管理*"<<endl;cout<<"*添加联系人请按1*"<<endl;cout<<"*查找联系人请按2*"<<endl;cout<<"*删除联系人请按3*"<<endl;cout<<"*输出所有联系人请按4*"<<endl;cout<<"*退出请按0*"<<endl;cout<<"请输入你的选择:"<<endl;cin>>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

    注意事项

    本文(《数据结构》课程设计- 基于C ++ 的通讯录管理设计.doc)为本站会员(哈尼dd)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




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

    三一文库
    收起
    展开