第一次通讯录管理.docx

上传人:b****5 文档编号:8381666 上传时间:2023-01-30 格式:DOCX 页数:10 大小:220.64KB
下载 相关 举报
第一次通讯录管理.docx_第1页
第1页 / 共10页
第一次通讯录管理.docx_第2页
第2页 / 共10页
第一次通讯录管理.docx_第3页
第3页 / 共10页
第一次通讯录管理.docx_第4页
第4页 / 共10页
第一次通讯录管理.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

第一次通讯录管理.docx

《第一次通讯录管理.docx》由会员分享,可在线阅读,更多相关《第一次通讯录管理.docx(10页珍藏版)》请在冰豆网上搜索。

第一次通讯录管理.docx

第一次通讯录管理

 

目录

概述1

系统分析2

2.1要求2

设计一个实用的小型通讯录,用双向链表做数据结构,编写一个通讯录管理系统实现通讯录信息的输入、添加、显示、以姓名做关键字进行查找、删除信息等功能。

每条信息包含:

姓名、性别、电话、地址。

2

2.2各功能模块分析2

概要设计3

3.1功能流程图(调用关系图)3

详细设计3

4.1设计内容3

4.2为了实现通讯录管理的集中操作功能,设计一个含有多个菜单项的主控菜单程序,再为这些菜单配上相应的功能。

4

4.3主界面设计6

4.4菜单内容6

运行与测试7

5.1程序编译运行后输入如下:

建表7

5.2通讯链表的插入如下:

7

5.3通讯者的查询如下:

8

5.4通讯者结点的删除:

8

5.5通讯录链表的输出如下:

9

5.6退出系统:

9

总结与心得9

7.1.调试分析9

7.2调试中遇到的问题:

10

参考文献11

附加代码11

概述

1.用〈〈数据结构〉〉中的双向链表作数据结构,结合C语言基本知识。

编写一个通讯录管理系统。

了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;

2.本课程设计可加深对课堂理论学习的理解,增强动手能力,以培养学生合作的能力,通讯录系统是在学校常见的计算机信息管理系统。

它的主要任务是对学生信息进行管理,如学生信息的输入、查询、修改、增加、删除,迅速准确地完成各种学生信息的统计和查询。

系统分析

2.1要求

设计一个实用的小型通讯录,用双向链表做数据结构,编写一个通讯录管理系统实现通讯录信息的输入、添加、显示、以姓名做关键字进行查找、删除信息等功能。

每条信息包含:

姓名、性别、电话、地址。

2.2各功能模块分析

(1)主函数:

可让用户选择用系统的哪个功能,从而去连接到相应的子函数;

(2)建立数据:

让用户输入通讯录里的内容,并将内容保存好;

(3)插入数据:

显示通讯录里已保存的数据;

(4)查找数据:

通过用户输入需要找的名字来找到相关资料;

(5)删除数据:

让用户删除想要删除的资料;

(6)输出数据:

使通讯录里的数据输出来;

概要设计

3.1功能流程图(调用关系图)

详细设计

4.1设计内容

现假设链表结点仅含有一个数据域和一个指针域,数据域是为了描述通讯者的相关信息,定义通讯者的结点类型:

Typedefstruct{

Charnum[5];

Charname[9];

Charsex[3];

Charphone[13];

Charaddr[31];

}DataType;

因此,线性表的链式存储结构定义如下:

Typedefstructnode{

DataTypedata;

Structnode*next;}ListNode;

TypedefListNode*LinkList;

ListNode*p;

LinkListhead;

4.2为了实现通讯录管理的集中操作功能,设计一个含有多个菜单项的主控菜单程序,再为这些菜单配上相应的功能。

#include

#include

voidmain()

{for(;;){

switch(menu_select()){

case1:

printf("通讯录链表的建立\n");

break;

case2:

printf("通讯者结点的插入\n");

Break;

case3:

printf("通讯者结点的查询\n");

break;

case4:

printf("通讯者结点的删除\n");

break;

case5:

printf("通讯录链表的输出\n");

break;

case0:

printf("再见\n");

return;

}

}

2.设计一个函数menu_select()来输出提示信息和处理输入。

3.设计五个功能函数。

*建立通讯录链表的函数LinkListCreateList(void)

*通讯者信息的插入函数voidInsertNode(LinkList&head,LinkNode*p)

*通讯者信息查找的函数LinkNode*ListFind(LinkListhead)

*通讯者记录的删除函数voidDelNode(LinkListhead)

*通讯链表的输出函数

4.3主界面设计

通过switch语句调用各种函数,实现各种操作。

然后把switch嵌套到无限的for循环(for(;;))中,使完成每一步操作都回到到选择操作的主界面。

4.4菜单内容

程序运行后,给出6个菜单的输入内容和输入提示:

1通讯录链表的建立

2通讯者结点的插入

3通讯者结点的查询

4通讯者结点删除

5通讯录链表的输出

0退出管理系统

选择0--5:

运行与测试

5.1程序编译运行后输入如下:

建表

5.2通讯链表的插入如下:

5.3通讯者的查询如下:

5.4通讯者结点的删除:

5.5通讯录链表的输出如下:

5.6退出系统:

 

总结与心得

7.1.调试分析

经过反复测试,最终提供了一个较为友好的界面和操作模式,而且容错能力较好,稳定性很强。

下面做一些简单的说明:

(1)2级菜单只是作为一种尝试,并非必须!

(2)在界面排版上,我学习了互联网上部分程序的界面编排,其中以格式控制方式显示提高了界面显示的稳定性,较为理想。

(3)在文件读取和保存方面,该程序做到了实时保存保存和读取,操作非常简便。

(4)在查找方面,我将其设计为一次多记录的显示方式,也更合乎操作习惯,界面较为友好,对于无符合条件的结果,只是结果集为空,界面保持不变。

同时,它是实时读取的,可以将刚刚输入而未保存的记录也读取到!

另外,一次查询结束后返回的是查询菜单,可以直接进行下一次的查询,也较为合理。

(5)删除功能我做了较多的工作,但是还是没有成功。

对于输入的姓名,查找出结果后提示是否删除。

若有重名,则会二次显示,提示是否删除,一直到所有记录查询结束(可以在重名中选中需要的进行删除,并不需要删除每一个纪录)。

结束之后可以直接再次删除其他纪录,因为它提供循环删除操作功能。

 

7.2调试中遇到的问题:

(1)对于continue,很多时候要慎重,它似乎容易导致与go类似的错误!

我曾遇到了这么个问题:

调用了search函数之后再调用enter函数输入新的记录,输入结束之后会直接转入search函数在continue之后的部分,执行结果使得界面混乱!

后来将continue后面的部分移出循环体,这个问题得到了解决!

但还是不甚明了其中内含!

(2)对于文本的排版还有些问题。

您可以看到,通讯录文件的内容相对较乱,没有以一行一记录的形式保存。

多次尝试后无果,希望老师能给以解答!

参考文献

[1]严蔚敏,吴伟民编著.数据结构(C语言版)——北京:

清华大学出版社,2007.

[2]谭浩强编著C程序设计(第三版)——北京:

清华大学出版社,2008

[3]刘振安,孙忱,刘燕君编著C程序设计课程设计——北京:

机械工业出版社,2007

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1