《课程设计-通讯录管理系统设计与实现》-公开DOC·毕业论文

上传人:zhuma****mei1 文档编号:134633551 上传时间:2020-06-07 格式:DOC 页数:26 大小:1.07MB
返回 下载 相关 举报
《课程设计-通讯录管理系统设计与实现》-公开DOC·毕业论文_第1页
第1页 / 共26页
《课程设计-通讯录管理系统设计与实现》-公开DOC·毕业论文_第2页
第2页 / 共26页
《课程设计-通讯录管理系统设计与实现》-公开DOC·毕业论文_第3页
第3页 / 共26页
《课程设计-通讯录管理系统设计与实现》-公开DOC·毕业论文_第4页
第4页 / 共26页
《课程设计-通讯录管理系统设计与实现》-公开DOC·毕业论文_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《《课程设计-通讯录管理系统设计与实现》-公开DOC·毕业论文》由会员分享,可在线阅读,更多相关《《课程设计-通讯录管理系统设计与实现》-公开DOC·毕业论文(26页珍藏版)》请在金锄头文库上搜索。

1、 唐 山 学 院 数据结构 课 程 设 计 题 目 通讯录管理系统设计与实现 系 (部) 计算机科学与技术系 班 级 * 姓 名 * 学 号 # 指导教师 # 2013 年 1 月 4 日至 1 月 11 日 共 2 周 2013 年 1 月 11 日 数据结构 课程设计任务书一、设计题目、内容及要求1、设计题目:通讯录管理系统设计与实现。2、设计内容及要求: (1)查询功能:可以通过姓名、电话号码和类别进行查询,显示查询结果。类别可分为三种:(A) 亲属类 (B) 朋友类 (C) 工作类。(2)增加功能:能够录入新数据(包括:姓名、电话号码、类别、电子邮件等信息)例如:张三,13866655

2、55,朋友类,当录入了重复的姓名和电话号码时,则提示数据录入重复并取消录入;当通信录中超过20条信息时,存储空间已满,不能再录入新数据。(3)修改功能:能够对通讯录中的记录进行修改。(4)删除功能:能够对通讯录中的记录进行删除。二、要求的设计成果(课程设计说明书、设计实物、图纸等)1、用C语言进行程序设计,实现系统的功能。注重算法效率,代码要有适当的注释;2、撰写课程设计说明书一份,不少于2000字。课程设计说明书应包括封面、任务书、成绩评定表、正文(设计思路、设计步骤等)、参考文献(资料)、附录(程序代码)等内容。三、进程安排1月4日:进行需求分析,确定系统的主要功能和算法思路;1月5日1月

3、6日:进行详细设计,确定各模块的算法思路;1月7日1月8日:进行编码实现;1月9日1月10日:进行测试调试,完善设计;撰写设计说明书,准备答辩;1月11日:答辩。四、主要参考资料 1.严蔚敏,吴伟民.数据结构.清华大学出版社,2007.2.苏仕华.数据结构课程设计.机械工业出版社,2010.3.滕国文.数据结构课程设计.清华大学出版社,2010.指导教师(签名):教研室主任(签名):课程设计成绩评定表出勤情况出勤天数 缺勤天数成绩评定出勤情况及设计过程表现(20分)课设答辩(20分)设计成果(60分)总成绩(100分)提问(答辩)问题情况综合评定 指导教师签名: 年 月 日唐山学院课程设计1引

4、言通讯录是用来记载、查询联系人通讯信息的工具。电子通讯录已成为手机、电子词典等电子设备中不可缺少的工具软件。通讯录管理系统能有效地管理通讯录相关信息,包括输入、查询、添加、修改、删除等功能,该软件给用户提供了一个简单的人机界面,用户可以根据提示信进行各种操作。本次设计使用的编程语言是C语言。通过设计通讯录管理系统使其具有数据输入、修改、删除、添加、显示和查询等功能。我们可以进一步理解和掌握课堂上所学各种基本抽象数据类型的逻辑结构、存储结构和操作实现算法,以及它们在程序中的使用方法。这个设计可以使我们掌握软件设计的基本内容和设计方法;使我们的软件设计的能力得到规范;使我们掌握使用各种计算机资料和

5、有关参考资料,提高我们进行程序设计的基本能力。2问题分析 本题目主要涉及线性表的基本操作。 通讯录中的记录通常按记载顺序先后有序,因此选用线性表;如果考虑到很少删除联系人,并且新增联系人又添加在表尾,则可采用顺序表;但是如果考虑到在任何位置插入或删除操作,因涉及经常性的插入和删除,则应优先考虑采用链表。通过上述分析,我选择了单链表存储结构,通讯录存储结构如下struct record char name20; char phonenum20; char type20; char email20; student50;struct slnoderecord date;struct slnode

6、*next;struct slnode *prior;typedef slnode * linklist;linklist l;通讯录中需要有查询功能、增加功能、删除功能和修改功能,所以要建立具有这些功能的子函数,对程序实现模块化。这其中要用到对链表的删除、插入等知识。删除时用一结构体指针指向链表的第一个结点,检查该节点的值是否等于输入的要删除的,若相等就删除,不相等则后移指针,直至表尾。插入时也要先找到相应结点,再添加;查询功能需要可以用姓名、电话号码、类别等多种方式进行查询;为实现存储功能,需用到文件的相关函数,打开文件,将添加、修改或删除的信息存入磁盘中。3总体设计通讯录管理系统信息的查

7、询保存退出 信息的显示 信息的修改 信息的删除记录的添加图1 系统模块结构图添加:系统提示用户添加新人员信息,输入到文件中,人员的信息包含姓名(name)、电话号码(phonenum)、类型(type)、电子邮件(email)。显示:该功能显示所有以保存的人员的姓名、电话号码、类型和电子邮件。查询:由用户输入要查找的人员姓名、电话号码或者类型,系统将调用查找函数,使用相关文件命令输出所查找人员的相关信息。删除:由用户输入需要删除人员的姓名,系统调用删除函数将此人所有相关信息删除。修改:由用户输入需要修改的人员的姓名,系统调用修改函数,用户修改需修改的信息。保存退出:完成任务,退出系统。4详细设

8、计4.1 录入模块该模块主要实现的功能是从键盘录入人员的信息,人员的信息包含姓名(name)、电话号码(phonenum)、类型(type)、电子邮件(email)。4.1.1设计思路 这个模块通过函数void enter()完成,由于每个人员的信息包含多项,所以需要用一个结构体来存储,我定义了一个数组结构体studentnum,来存放所有人员的信息。即student1,表示第一个人员。用student1.name表示第一个人员的姓名student1.phonenum,student1.type,student1.email分别表示第一个人员的电话号码、类型和电子邮件。用for循环实现了多个人

9、员的录入,并且在其中运用strcmp比较字符串,当录入重复是将提示,从而避免了录入重复的情况。4.1.2流程图 开始 录入人员信息判断是否继续 (Y/N)NNY判断是否重复 (Y/N) ()(Y/N) (Y/N)Y结束 图2 录入模块程序流程图4.2 显示模块 该模块主要实现的功能是显示所有以保存人员的信息。4.2.1设计思路 这个模块通过函数void display()实现,该函数首先对系统进行了清屏,然后当num!=0时输出所有以保存人员的相关信息。否则打印该通讯录中无任何记录,并返回主菜单。4.2.2流程图 开始 清屏并判断num是否为0 (Y/N) YN通讯录中无任何记录 显示所有以保

10、存人员信息 结束 图3 显示模块程序流程图4.3 查询模块该模块主要实现的功能是对人员的查询,当从键盘上输入某人员的姓名、电话号码或者类型时,与已保存的人员信息进行比较,如相同则输出该人全部信息,否则打印该通讯录无此人。4.3.1设计思路这个模块是在函数void search()中完成的,因为题目中要求无论是通过姓名还是电话号码,或者是类型都可以查询,所以我写了void search1(),void search2(),void search3()三个函数来实现。其中void search1()是通过姓名来查找的,当输入要查找人员的姓名时,与已保存的人员信息进行比较,如相同则输出该人全部信息,

11、否则打印该通讯录无此人;void search2()是通过电话号码来查找的,当输入要查找人员的电话号码时,与已保存的人员信息进行比较,如相同则输出该人全部信息,否则打印该通讯录无此人;void search3()是通过类型来查找的,当输入要查找人员的型时,与已保存的人员信息进行比较,如相同则输出该人全部信息,否则打印该通讯录无此人。最后在void search()中选择用何种方法查找,从而找到需要查找的人员。4.3.2流程图开始1- 按姓名查询2- 按电话号码查询3- 按类型查询123判断是否有该类型(Y/N)判断是否有该电话号码(Y/N)判断是否有该姓名(Y/N)YYNYN输出与该类型相配的

12、所有信息N输出与该姓名相配的所有信息输出与该电话号码相配的所有信息退出 图4 查询模块程序流程图4.4 删除模块 该模块主要实现的功能是删除用户需要删除的人员信息,当用户输入了要删除的人员姓名时,系统会输出这个人员的所有相关信息,由用户确认是否删除,若选择Y,则删除所需要删除的人员的信息并打印删除成功,否则返回主菜单。4.4.1设计思路该功能是通过void delete()来实现的,首先由用户输入要删除的人员姓名,然后进行字符串比较,若有此人则输出他的所有相关信息,系统将提示用户是否确认删除,若选择删除,则链表长度减一并打印删除成功。当此人不是最后一个时,系统将打印是否继续删除相同人员信息,若选择是则继续运行删除函数,否则打印不存在相同姓名人员,并返回主菜单。4.4.2流程图 开始 输入要修改人员的姓名判断是否有该人 (Y/N)YY输出该人信息是否删除(Y/N)NNY删除成功Ni+1num?(Y/N) Y判断是否继续删除相同姓名的人员 (Y/N)N 结束 图5 删除模块程序流程图4.5 修改模块该模块主要实现的功能是对用户所需修改的人员信息进行修改,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 毕业论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号