通讯录管理系统_数据结构课程设计

通讯录管理系统_数据结构课程设计

ID:9334732

大小:311.00 KB

页数:29页

时间:2018-04-28

通讯录管理系统_数据结构课程设计_第1页
通讯录管理系统_数据结构课程设计_第2页
通讯录管理系统_数据结构课程设计_第3页
通讯录管理系统_数据结构课程设计_第4页
通讯录管理系统_数据结构课程设计_第5页
资源描述:

《通讯录管理系统_数据结构课程设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、数据结构课程设计论文题目:1.通讯录管理系统**7.建立二叉树,层序、先序遍历14.拓扑排序姓名:李东东学号:2班级:11计科(2)班指导教师:李娟徐星2013年6月24日11.通讯录管理系统开发目的数据结构旨在使读者学会分析研究数据对象的特性,学会数据的组织方法,以便选择合适的数据逻辑结构和存储结构,以及相应的运算,把现实世界中的问题转化为计算机内部的表示和处理。设计目的进一步理解和掌握课堂上所学各种基本抽象数据类型的逻辑结构、存储结构和操作实现算法,以及它们在程序中的使用方法;掌握软件设计的基本内容和设计方法,并培养规范化软件设计的能力;将理论知识和实际结合起来,锻炼分析解决实际

2、问题的能力。设计要求实现通讯录的建立和输出、通讯者的插入、删除和查询等几种操作功能。用单链表作存储结构;用菜单作为应用程序的主要界面,主界面的主控菜单如下:通讯录链表************************************1.通讯录链表的建立2.通讯录结点的插入3.通讯录结点的查询4.通讯录结点的删除5.通讯录链表的输出0.退出通讯录管理系统************************************请选择菜单号<0~5>:*:使用数字0~5来选择菜单项,其他输入无效,并给出错误提示。设计功能程序运行后的功能有:(1)菜单选择界面(2)建立通讯录记录(3)

3、插入联系人记录(4)查找联系人记录(名称和编号查询)(6)删除联系人记录(7)输出所有联系人记录(8)退出程序算法设计系统流程图如图所示:3主函数设计由于主函数设计的是菜单选择项,所以在程序未退出的的情况下要实现循环运行,并且要考虑到未建立通讯录链表的情况下其他功能无法实现的情况。故在实现循环运行的功能时定义一个变量j=1,在选择退出后再将j赋值为0,要考虑判定是否建表的情况定义了一个全局变量flag1=0,建链表后flag1赋值为1。为了达到选择各功能,采用switch判定选择项并跳转入相应功能函数。判定是否建表语句:if(flag1!=1){printf("请先建立表!");ge

4、tchar();system("cls");}316功能程序设计为了达到程序各项功能的实现,以及满足菜单选择项的功能,对每个功能的实现分别用了不同函数,并且有用到函数的嵌套以减少代码的重复。建立通讯链表设计要建立链表,首先要生成结点,因此,尾插法建立链表算法描述如下:(1)使链表的头尾指针head、rear指向新生成的头结点(也就是尾结点);(2)置结束标志为0(假);(3)while(结束标志不为真){P指向新生成的结点;读入一个通讯者数据至新结点的数据域;将新结点链到尾结点之后;主函数设计主函数设计主函数设计4实现循环运行的功能时定义一个变量j=1,在选择退出后再将j赋值为0,要

5、考虑判定是否建表的情况定义了一个全局变量flag1=0,建链表后flag1赋值为1。为了达到选择各功能,采用switch判定选择项并跳转入相应功能函数。判定是否建表语句:if(flag1!=1){printf("请先建立表!");getchar();system("cls");}4建立通讯链表设计要建立链表,首先要生成结点,因此,尾插法建立链表算法描述如下:(1)使链表的头尾指针head、rear指向新生成的头结点(也就是尾结点);(2)置结束标志为0(假);(3)while(结束标志不为真){P指向新生成的结点;读入一个通讯者数据至新结点的数据域;将新结点链到尾结点之后;使尾指针指

6、向新结点;提示是否继续建表,读入一个结束的标志;}(4)尾结点的指针域置空置NULL。具体算法实现如下:/*******尾插法建立带头结点的通讯录链表算法*******/LinkListCreateList(void){LinkListhead=(ListNode*)malloc(sizeof(ListNode));/*申请头结点*/ListNode*p,*rear;charflag='y';//intflag=0;/*结束标志置0*/rear=head;/*尾指针初始指向头结点*/while(flag=='y'){16p=(ListNode*)malloc(sizeof(ListN

7、ode));/*申新结点*/printf("编号(4)姓名(8)性别电话(11)地址(31)");printf("-----------------------------------------------");printf("添加的编号:");scanf("%s",p->data.num);printf("添加的姓名:");scanf("%s",p->data.name);printf("性别:");scanf("%s"

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。