通讯录管理系统的设计与实现.doc
《通讯录管理系统的设计与实现.doc》由会员分享,可在线阅读,更多相关《通讯录管理系统的设计与实现.doc(23页珍藏版)》请在三一办公上搜索。
1、湖南工业大学数据结构课程设计报告题 目 通讯录管理系统的设计与实现姓 名:学 号: 专 业: 班 级: 指导教师: 职 称: 理学院2011年6月目 录1 系统简介11.1 设计目的与要求11.1.1 设计目的11.1.2 设计要求12 总体设计12.1 系统功能概要12.2 数据结构及原理23 详细设计33.1 各模块调用关系33.2 插入信息43.3 显示信息43.4 查询信息43.5 其他功能54 系统测试65 总结11附录11课程设计作品验收表题目 参与人员姓 名 班 级 学 号 设计任务与要求: 建立通讯录信息,信息包括姓名、街道、城市、邮编、电话、国家等内容; 能够输出通讯录信息。
2、 能够提供添加、删除和查询通讯录信息等功能; 提供至少两种查询通讯录信息的方法; 能将通讯录保存在文件中。作品完成情况: 成功建立包括姓名、街道、城市、邮编、电话、国家等内容的通讯录系统; 提供了输出通讯录信息的方法; 提供了添加、删除和查询通讯录信息等功能; 提供了按姓名查找和按城市查找通讯信息的功能; 完成了将通讯录保存在文件中的功能。验收情况: 验收教师签名:_ 年 月 日注:1. 除“验收情况”栏外,其余各栏均由学生在作品验收前填写。2. “验收情况”栏由验收小组按实际验收的情况如实填写。通讯录管理系统的设计与实现1 系统简介1.1 设计目的与要求1.1.1 设计目的 随着信息社会的高
3、速发展,人与人之间的联系越来越频繁,通讯方式越来越多样化,如何保证与朋友、同学、同事、领导、亲戚等之间的联系,并能方便快捷的查找、记录、修改其相关通讯信息。仅靠以前单独的手工记录已远远不能满足当前的需要。开发一个通讯录管理系统,借助计算机可以方便、快捷、灵活的管理个人的朋友及相关人员的通讯信息,了解友人相关信息,帮助与友人保持联络。所以设计一个通讯录管理系统管理各人的通讯信息是是非必要的。1.1.2 设计要求建立通讯录信息,实现基础数据信息的录入,信息包括姓名、街道、城市、邮编、电话、国家等内容。实现查看信息的功能,能够输出全部的通讯录信息。实现通讯录管理系统的维护,能够提供包括添加通讯信息、
4、删除通讯信息和查询通讯录信息等功能。提供至少两种查询通讯录信息的方法,便于用户查找通讯信息。能将通讯录保存在文件中。2 总体设计2.1 系统功能概要通讯录管理系统是基于双向循环链表设计而成的信息管理系统。该系统通过对程序进行模块化,建立添加、显示、查找和删除功能的函数,各函数中运用双向循环链表存储数据。从主函数开始执行,调用各函数,并运用文件相关知识将信息存入磁盘中。系统功能模块图如图1:创建通讯录通讯录管理通讯录查询添加信息删除记录显示记录将信息存入文件按姓名查询图1 系统功能模块图2.2 数据结构及原理(1)为存储通讯录信息,需定义一个结构体类型,成员包括姓名、街道、城市、邮编、电话、国家
5、等,并建立双向循环链表,定义该结构体类型的指针,用于指向各结点。结构体定义如下:typedef struct message char name15;char street30;char city20;char eip20;char state20;char telephone20;dmessage;/*建立通讯录信息结构体;*/typedef struct dlnodedmessage data;struct dlnode *prior;/定义结点的前驱指针struct dlnode *next;/定义结点的后继指针dnode; /*建立双向链表结构体;*/ (2)以列表的形式输出文件。(3
6、)分别建立具有添加、删除、修改、查询等功能的子函数,完成相应功能,对程序实现模块化。这其中要用到对链表的删除、插入等知识。删除时用一结构体指针指向链表的第一个结点,检查该节点的值是否等于输入的要删除的信息,若相等就删除,不相等则后移指针,直至表尾。插入时也要先找到相应结点,再添加。查询功能要设置姓名、城市等多种方式。(4)为实现存储功能,需用到文件的相关函数,打开文件,将添加、修改或删除的信息存入磁盘中。3 详细设计3.1 各模块调用关系各模块调用关系图如图 2:插入信息删除信息显示信息按姓名查询存盘查询信息退出系统图2 各模块调用关系图3.2 插入信息插入信息功能(void enter(vo
7、id))是将各联系人的姓名、街道、城市、邮编、电话、国家等信息插入双向循环链表中。流程图如图3:定义指针,为指针分配存储空间输入数据将节点p插入链表,将指针rear移至结点p判断是否继续插入信息是 否返回第一步返回主菜单图3 插入信息3.3 显示信息显示信息(void printall(dnode *head))功能是将各人的姓名、街道、城市、邮编、电话、国家等信息全部以列表形式显示出来。流程图如图4: 定义一个节点p,指向第一个元素节点 P指向的不是尾结点真假输出p所指向的结点的信息P指向下一个结点返回主菜单图4 显示信息3.4 查询信息该系统提供了两种查询方式:第一种是按姓名查找;第二种是
8、按城市查找。(1)按姓名查找(dnode *namesearch(dnode *head))按姓名查找通讯信息的功能,是按照用户输入的姓名进行通讯信息的查找,将第一个与用户输入的姓名匹配的那条信息输出。流程图如图5:定义结点p,查找姓名信息与输入姓名一致的结点 找到匹配的结点p 否 是 输出“对不起,没有此数据相关的记录!”输出结点信息 继续查询 是 否返回第一步返回主菜单图5 按姓名查找(2)按城市查找(void citysearch(dnode *head) )按城市查找通讯信息的功能,是按照用户输入的城市进行通讯信息的查找,系统将所有城市信息与用户输入的信息匹配的通讯信息全部输出。流程图
9、如图 6:定义结点p,计数器n,查找城市信息与输入城市一致的结点找到匹配的结点p否 是p指向p的下一个结点n自增,p指向p的下一个结点n等于0是 否输出“没有相关数据!”输出匹配的所有数据返回主菜单图6 按城市查找3.5 其他功能该系统还有删除信息、将信息存盘以及退出系统等功能。(1) 删除信息删除信息(void delete(dnode *head))的功能是按照用户输入的姓名首先进行按姓名查询功能,查找成功,则执行删除信息的功能,查询不成功,则提示错误信息。流程图如图 7:定义结点p,输入要删除的信息的姓名,按姓名查找结点找到匹配的结点p否 是返回 确定删除是 否 删除结点返回返回主菜单图
10、7 删除信息(2) 存盘存盘功能(void save(dnode *head))是将用户建立的通讯录信息系统以文件的形式存入磁盘,需要用到文件的相关知识。流程图如图 8:定义结点p打开只写文件file.txt成功否 是退出p指向第一个元素结点p等于head否 是写入通讯信息提示错误保存并关闭文档图8 存盘(3) 退出系统退出功能(void quit(void)),使用完毕后,可退出该系统。4 系统测试(1)启动程序图9 启动程序(2)选择0,建立通讯录:图10 建立通讯录(4) 选择1,显示通讯信息:图11 显示通讯信息(5) 选择2,按姓名查询:图12 按姓名查询图13 按姓名查询失败(6)
11、 选择3,按城市查询:图14 按城市查询图15 按城市查询失败(7) 选择4,删除记录:图16 删除记录(8) 选择5,存盘:图17 存盘(9) 选择6,退出系统:图18 退出系统5 总结通过这次课程设计,我对C语言以及数据结构有了更深刻的了解,增强了程序的编写能力,巩固了专业知识,对程序的模块化观念也又模糊逐渐变的清晰了。在程序的运行与调试过程中出现了很多错误,通过反复地复习课本上的相关知识,不停地修改与调试,我终于完成了这段程序。在调试过程中,我认识到了数据结构的灵活性与严谨性,同一个功能可以由不同的语句来实现,但编写程序时要特别注意细节方面的问题,因为一个小小的疏忽就能导致整个程序不能运
12、行。我也认识到了自己的薄弱之处,如对链表相关知识的欠缺,文件运用的不熟练,在以后的学习中我要集中精力、端正态度,争取把知识学得更扎实、更全面。附录#include #include #include #includetypedef struct message char name15;char street30;char city20;char eip20;char state20;char telephone20;dmessage;/*建立通讯录信息结构体;*/typedef struct dlnodedmessage data;struct dlnode *prior;/定义结点的前驱指针
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 通讯录 管理 系统 设计 实现
链接地址:https://www.31ppt.com/p-2386234.html