《数据结构》课程设计报告题目:数据结构试验学生姓名:鲁枝权学院:计算机与信息技术学院班级:十五班学号:**********起止日期:2012/12/1—2013/12/14成绩:通讯录管理系统1任务及需求本设计要求为管理通讯录设计,能够实现对通讯录的日常管理与查询,如:添加、删除、修改、排序、按不同的关键字进行查询、显示、保存等功能。实现程序时要考虑采用合适的数据结构,保证功能较完善。通过对通讯录管理的需求分析,系统应包括以下功能:⑴添加联系人信息⑵编辑修改联系人信息⑶查询联系人信息,能根据姓名、电话号码、群组等进行查询⑷删除联系人信息⑸以某种顺序输出联系人信息⑹文件操作:能将联系人的信息保存到磁盘文件,并且可以从文件中读出所有信息⑺排序:能够对所有联系人按姓名、电话号码等进行排序。2总体设计根据任务及需求分析确定程序的总体设计,采用交互方式进行操作,通过主菜单实现对各功能模块的调用,为了保证长期反复使用通讯录信息,方便实现数据的更新和维护,分别设计保存通讯录、读入通讯录模块。系统功能模块如下:添加联系人删除联系人查询联系人修改联系人显示所有联系人保存通讯录调用通讯录退出系统3详细设计⑴通讯录逻辑结构描述通讯录中的联系人类型相同,依次排列,故为线性结构,可描述如下:通讯录联系人信息表姓名性别电话群组地址电子邮箱张三男**********同学南阳市zhangsan@李四男**********同事北京市lisi@王五女**********亲戚上海市wangwu@………………⑵通讯录数据存储结构描述存储联系人信息的数据类型定义如下:typedefstruct{ charname[10];//姓名 charsex[3];//性别 charphone[12];//电话 chargroup[11];//群组 charaddr[31];//地址 chare_mail[30];//电子邮箱}ElemType;通讯录采用的顺序存储结构如下:typedefstruct{ ElemType*elem;//存储空间基址 intlength;//当前长度 intlistsize;//当前分配的存储容量以一个数据元素存储长度为单位 intincrementsize;//约定的增补空间长度}SqList;⑶主要功能模块设计①添加联系人此模块依次输入每位联系人信息,保存到线性表中。②删除联系人按联系人姓名删除指定的联系人。③查询联系人按姓名或电话号码查询指定的联系人,若存在,显示相关信息,否则显示此人不存在。④修改联系人若指定联系人存在,允许修改联系人的信息。⑤显示所有联系人按一定的格式输出通讯录联系人信息。⑥保存通讯录将保存在线性表的联系人信息存入指定的磁盘文件。⑦调用通讯录将保存在磁盘文件中的通讯录调入内存的线性表中。4测试结果在VC++,屏幕提示新建通讯录,输入文件名及若干联系人后,出现程序主菜单,如下图所示(1)保存与打开通讯录功能测试在上图中,选出5保存通讯后,退出重新运行通讯录,结果如下图,说明存盘的内容已调入内存并显示。(2)添加联系人与输出通讯录功能测试选择菜单中的1,添加一位联系人后,再选择4,结果如下图:(3)删除联系人功能测试选择菜单中的2,删除一位联系人后,再选择4,结果如下图所示:(4)查询通讯录信息测试,选择查询数字3,输入查询信息人的名字,测试结果如图所示:(5)保存功能的测试,一般进行功能测试后都需要这保存功能,上面进行的测试及下面进行的测试反应保存功能测试。(6)修改联系人功能测试,先按数字6,出现确定修改?回答y,输入修改信息,再按数字4,输出修改后的信息。如图下图所示:(7)通讯录排序的功能测试,按姓名字母的方式排序,先选择7,在选择4,如图所示:(8)安全突出功能的测试,选择数字8,出现Pressanykeytocontinue然后按键盘任何键退出。测试如图所示:5收获与体会通过半年的数据结构学习,又通过老师的指导完成这个实验,感觉自己掌握了很多有用的知识,知道如何运用数组,如何运用排序思想,更加知道如何在框架程序中添加数据元素,通过这次试验才发现一直用的手机通讯录自己也可以通过代码展现出来。我感觉到数据结构在生活中的运用,这也表明本专业在就业方面的前景,我会更加努力学习数据结构知识,以增加我的专业能力。6附:完整程序清单头文件:#include<iostream>#include<iomanip>#include<fstream>#include<>#include<>usingnamespacestd;constintLIST_INIT_SIZE=10;constintLISTINCREMENT=5;//联系人数据结构定义typedefs
通讯录管理程序设计报告 来自淘豆网m.daumloan.com转载请标明出处.