数据结构课程设计——通讯录.doc
《数据结构课程设计——通讯录.doc》由会员分享,可在线阅读,更多相关《数据结构课程设计——通讯录.doc(20页珍藏版)》请在沃文网上搜索。
1、淮阴工学院数据结构课程设计报告选题名称: 通讯录 系(院): 计算机工程学院 专 业: 计算机科学与技术 班 级: 计算机1091 姓 名: 宋可 学 号: 1091301117 指导教师: 张亚红 周海岩 学年学期: 2010 2011 学年 第 1 学期2010年 12 月 30 日设计任务书课题名称通讯录设计目的利用链表以及其他数据结构存储、编辑、删除、添加、显示联系人等等操,从而实现通讯录功能的模拟!主要可以加深对数据结构尤其是链表,数组结构的认识!实验环境Windows2000以上操作系统Visual C+6.0以上编译环境任务要求1 查阅资料,完成通讯录数据结构的设计!2 撰写PP
2、T文件与课程设计报告;3 参加答辩。工作进度计划序号起止日期工 作 内 容12010.12.27理论辅导,搜集资料22010.12.282010.12.29编写代码,上机调试32010.12.30撰写课程设计报告及ppt42010.12.31答辩指导教师:张亚红 周海岩 2010 年 01月 3 日 目录1 需求分析31.1 课题要求及思想31.2 运行环境及开发工具32 概要设计32.1 功能结构32.2 数据结构的设计42.3 设计的原理53 详细设计和实现53.1 总体框架53.2 各个模块及功能53.3 算法实现及流程图64 调试与操作说明15总 结17致 谢18参 考 文 献191
3、需求分析1.1 课题要求及思想 本次课题是建通讯录,它主要包含九个模块,希望建立一个主函数main(), 利用它来调用各个函数,比如创建一个通讯录,删除一个人的信息,添加一个人的信息。1.2 运行环境及开发工具 这次课程设计的运行环境为Windows2000以上操作系统和开发Microsoft Visual C+ 6.0,下面主要介绍一下Microsoft Visual C+ 6.0。 Visual C+(简称VC)是Microsoft公司推出的目前使用极为广泛的Windows平台的C+可视化开发环境。Visual C+ 6.0提供的控制台应用程序对学习和掌握标准C+内容非常有利。“可视”的资
4、源编辑器与MFC类以及应用程序向导,为快速高效地开发出功能强大的Windows应用程序提供了极大的方便。利用Visual C+ 6.0进行Internet和数据库及多媒体等多方面的程序开发也很容易。 本课程设计采用了C+。C+语言是在C语言的基础上发展起来的,不仅继承了C语言的所有特点,而且引入了面向对象的程序设计方法 ,改进了程序涉及思路,将编程方式进化到面向对象进行程序设计这一新的思维过程。 C+语言代表着对以往语言之精华的发展和提炼,并能很好的与C语言兼容既支持面向对象的程序设计,也支持结构化的程序设计。它修补了C语言中的一些漏洞,提供更好的类型检查和编译时的分析,提供了异常处理机制,简
5、化了程序的出错处理,利用throw、try和catch关键字,出错处理程序不必与正常的代码紧密结合,提高了程序的可靠性和可读性。 函数重载允许相同的函数名具有不同参数表,系统根据参数的个数和类型匹配相应的函数。提供了模板机制。摸板包括类摸板和函数模板两种,它们将数据类型作为参数。对于具体数据类型,编译器自动生成模板类或模板函数,它提供了源代码复用的一种手段。2 概要设计2.1 功能结构本次课题是建通讯录,它主要包含九个模块如下:第一个模块主函数main()的功能是:根据选单的选项调用各函数,并完成相应的功能。 第二个模块Menu()的功能是:显示英文提示选单。 第三个模块Quit()的功能是:
6、退出选单。 第四个模块Create()的功能是:创建新的通讯录。 第五个模块Add()的功能是:在通讯录的末尾,写入新的信息,并返回选单。 第六个模块Find()的功能是:查询某人的信息,如果找到了,则显示该人的信息,如果未找到,则提示通讯录中没有此人的信息,并返回选单。 第七个模块Alter()的功能是:修改某人的信息,如果未找到要修改的人,则提示通讯录中没有此人的信息,并返回选单。 第八个模块Delete()的功能是:删除某人的信息,如果未找到要删除的人,则提示通讯录中没有此人的信息,并返回选单。 第九个模块List()的功能是:显示通讯录中的所有记录。2.2 数据结构的设计 1、数组存储
7、姓名的首字母和联系人链表的头指针!数组结点:struct addlist_arrynodchar letter;MyContactsNode*head;2、 联系人链表结点:struct MyContactsNodechar*name;enum sexM,W personsex;char*phonenum_m;char*phonenum_gd;char*address;2.3 设计的原理 这次课程设计运用了单链表和顺序数组以及它的操作,如单链表的删除,插入,搜索,修改等等,因此设计了一个AddList_arry数组类,自定义了数组结点addlist_arrynod结构,包括两个数据域:一个用来
8、存储姓名的首字母,另一个用来存储联系人单链表的头指针!自定义联系人链表的结点MyContactsNode结构!3 详细设计和实现3.1 总体框架 显示英文选单 查询某人信息创建通讯录添加新的信息修改某人信息删除某人信息显示所有信息退出选单 图3.1 总体框架3.2 各个模块及功能3.21 主要模块(1)主函数main()的功能是:根据选单的选项调用各函数,并完成相应的功能。(2)Menu()的功能是:显示英文提示选单。 (3)Quit()的功能是:退出选单。(4)Create()的功能是:创建新的通讯录。(5)Add()的功能是:在通讯录的末尾,写入新的信息,并返回选单。 (6)SearchA
9、ndList的功能是:查询某人的信息,如果找到了,则显示该人的信息,如果未找到,则提示通讯录中没有此人的信息,并返回选单。(7)AlterByName()的功能是:根据用户输入的姓名修改该人的信息,如果未找到要修改的人,则提示通讯录中没有此人的信息,并返回选单。否则显示输入新的联系人信息!(8)DeleteByName ()的功能是:根据用户输入的姓名,删除该人的信息,如果未找到要删除的人,则提示通讯录中没有此人的信息,并返回选单。(9)ListAll()的功能是:显示通讯录中的所有记录。 其中(2)Menu(),(3)Quit(),(4)Create(),(5)Add()(6)Find()(
10、7)Alter(),(8)Delete(),(9)List()(1)main()3.22 辅助模块(1)bool Examine_name(char*name_in);/检测输入的姓名是否正确!(2)bool Examine_sex(int sexnum);/检测输入的性别是否正确!(3)bool Examine_phm(char*phm);/检测输入的移动电话号码是否正确!(4)bool Examine_phgd(char*phgd);/检测输入的固定的电话号码是否正确!(5)bool Examine_add(char*add);/检测输入的地址是否正确!3.3 算法实现及流程图 (1)Ex
11、amine_name ()函数bool AddList_arry:Examine_name(char*name_in)char temp=*name_in;int count=0;while(temp!=0)count+;name_in+;temp=*name_in;if(count10)return false;elsereturn true;(2) Examine_phgd ()函数bool AddList_arry:Examine_phgd(char*phgd)char temp_phgd=*phgd;int count=0;while(temp_phgd!=0)count+;if(te
12、mp_phgd9)return false;phgd+;temp_phgd=*phgd;if(count12)return false;elsereturn true;(3) Search ()函数算法实现:MyContactsNode* AddList_arry:Search(char*nm_q)MyContactsNode*resultnod_search=FindByName(nm_q)-next;while(resultnod_search!=NULL)/if(strcmp(resultnod_search-name,nm_q)=0)return resultnod_search;re
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
10 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 课程设计 通讯录