- 1、本文档共31页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
通訊录管理系统数据结构课程设计稿
数据结构课程设计论文
题目: 1.通讯录管理系统**
7 .建立二叉树,层序、先序遍历
14. 拓扑排序
姓名: 李东东
学号: 201110510212
班级: 11 计科(2)班
指导教师: 李娟 徐星
2013年 6 月 24日
通讯录管理系统
开发目的
数据结构旨在使读者学会分析研究数据对象的特性,学会数据的组织方法,以便选择合适的数据逻辑结构和存储结构,以及相应的运算,把现实世界中的问题转化为计算机内部的表示和处理。
设计目的
进一步理解和掌握课堂上所学各种基本抽象数据类型的逻辑结构、存储结构和操作实现算法,以及它们在程序中的使用方法;掌握软件设计的基本内容和设计方法,并培养规范化软件设计的能力;将理论知识和实际结合起来,锻炼分析解决实际问题的能力。
设计要求
实现通讯录的建立和输出、通讯者的插入、删除和查询等几种操作功能。
用单链表作存储结构;用菜单作为应用程序的主要界面,主界面的主控菜单如下:
通讯录链表
************************************
通讯录链表的建立
通讯录结点的插入
通讯录结点的查询
通讯录结点的删除
通讯录链表的输出
退出通讯录管理系统
************************************
请选择菜单号0~5:
*:使用数字0~5来选择菜单项,其他输入无效,并给出错误提示。
设计功能
程序运行后的功能有:
(1)菜单选择界面
(2)建立通讯录记录
(3)插入联系人记录
(4)查找联系人记录(名称和编号查询)
(6)删除联系人记录
(7)输出所有联系人记录
(8)退出程序
算法设计
系统流程图j=1,在选择退出后再将j赋值为0,要考虑判定是否建表的情况定义了一个全局变量flag1=0,建链表后flag1赋值为1。
为了达到选择各功能,采用switch判定选择项并跳转入相应功能函数。
判定是否建表语句:
if(flag1!=1)
{printf(请先建立表!);
getchar();
system(cls);}
功能程序设计
为了达到程序各项功能的实现,以及满足菜单选择项的功能,对每个功能的实现分别用了不同函数,并且有用到函数的嵌套以减少代码的重复。
建立通讯链表设计
要建立链表,首先要生成结点,因此,尾插法建立链表算法描述如下:
(1)使链表的头尾指针head、rear指向新生成的头结点(也就是尾结点);
(2)置结束标志为0(假);
(3)while(结束标志不为真)
{
P指向新生成的结点;
读入一个通讯者数据至新结点的数据域;
将新结点链到尾结点之后;
主函数设计
主函数设计
主函数设计
实现循环运行的功能时定义一个变量j=1,在选择退出后再将j赋值为0,要考虑判定是否建表的情况定义了一个全局变量flag1=0,建链表后flag1赋值为1。
为了达到选择各功能,采用switch判定选择项并跳转入相应功能函数。
判定是否建表语句:
if(flag1!=1)
{printf(请先建立表!);
getchar();
system(cls);}
建立通讯链表设计
要建立链表,首先要生成结点,因此,尾插法建立链表算法描述如下:
(1)使链表的头尾指针head、rear指向新生成的头结点(也就是尾结点);
(2)置结束标志为0(假);
(3)while(结束标志不为真)
{
P指向新生成的结点;
读入一个通讯者数据至新结点的数据域;
将新结点链到尾结点之后;
使尾指针指向新结点;
提示是否继续建表,读入一个结束的标志;
}
(4)尾结点的指针域置空置NULL。
具体算法实现如下:
/*******尾插法建立带头结点的通讯录链表算法*******/
LinkList CreateList(void)
{
LinkList head=(ListNode *)malloc(sizeof(ListNode)); /*申请头结点*/
ListNode *p,*rear;
char flag=y; //int flag=0; /*结束标志置0*/
rear=head; /*尾指针初始指向头结点*/
while (flag==y)
{
p=(ListNode *)malloc(sizeof(ListNode)); /*申新结点*/
printf(编号(4) 姓名(8
文档评论(0)