通讯录的数据结构课程设计

上传人:ji****n 文档编号:45708393 上传时间:2018-06-18 格式:DOC 页数:17 大小:222.50KB
返回 下载 相关 举报
通讯录的数据结构课程设计_第1页
第1页 / 共17页
通讯录的数据结构课程设计_第2页
第2页 / 共17页
通讯录的数据结构课程设计_第3页
第3页 / 共17页
通讯录的数据结构课程设计_第4页
第4页 / 共17页
通讯录的数据结构课程设计_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《通讯录的数据结构课程设计》由会员分享,可在线阅读,更多相关《通讯录的数据结构课程设计(17页珍藏版)》请在金锄头文库上搜索。

1、第 1 页 共 17 页湖湖南南商商学学院院数数据据结结构构 课课程程设设计计 ( (实实习习 ) )报报告告题 目 通讯录 姓 名:蒋妤婷学 号:090910108专 业:电子信息工程班 级:电信 0903指导教师:梁英老师职 称:副教授第 2 页 共 17 页通讯录通讯录1 设计任务与要求设计任务与要求软件设计课程设计是学习完数据结构课程后进行的一次全面的综合性实践过程,其目的在于为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生分析解决实际问题的能力。提高学生实践编程的能力。这次的课程设计,我主要是设计一个通讯录,包含编号、姓名、单位、通信地址

2、、邮箱和联系电话等基本信息。而通讯录这个程序是一个简单的通讯管理系统。这个程序不仅要包含创建通讯录中包含的编号、姓名、单位、通信地址、邮箱和联系电话等基本信息,还应具有数据录入、删除、修改、浏览、查找、排序以及数据保存等功能。2 系统功能描述系统功能描述一个通讯录包含编号、姓名、单位、通信地址、联系电话等基本信息,同时应该具有以下功能:1、录入信息:将录入的信息导入链表。2、删除:将指定的信息(按姓名)删除并保存。3、修改:将指定的信息(按姓名)修改并保存。4、浏览:将入的全部信息显示出来。5、查找:按姓名查找指定的信息。6、保存:保存所录入,修改,删除,排序的信息。3 系统总体设计系统总体设

3、计3.1 模块划分模块划分程序设计一般由两部分组成:算法和数据结构,合理地选择和实现一个数据结构和处理这些数据结构具有同样的重要性。在通讯录管理程序中,由于预计记录数相对于一个单位的学生人数或职工人数来说不会太大,除了能够增加、保存外,更多的情况是查询,所以用静态数组保存数据,实现查询。第 3 页 共 17 页首先,定义一下各个标准库函数,建立一个结构体数组,定义各个功能所需的函数等。然后设置主函数,程序采用模块化设计,主函数程序的入口,各模块独立,可分块调试,均由主函数控制调用。控制功能的实现通过循环执行一个开关语句,该语句的条件值是通过调用主菜单得到的返回值(head),根据该值,调用相应

4、得各功能函数。分别编写 showmenu()菜单,Appenditem()添加条目,print 输出条目,Finditem1()查找条目 (按姓名),Correct()修改信息,Removeitem()删除信息,Saveandfree()保存到文件等函数。系统包括的功能模块,模块功能描述,各模块间的层次结构(即相互调用关系)以及模块之间的信息交换问题。最终成为一个整体。3.2 功能分析功能分析本程序是一个简单的通讯管理系统。程序具有数据录入、删除、修改、浏览、查找、排序以及数据保存等功能。创建通讯录包括编号、姓名、单位、通信地址、邮箱和联系电话等基本信息。4 系统详细设计系统详细设计4.1 定

5、义库函数定义库函数#include#include#includestruct Telephonechar number200;char name20;char fia20;char addrass20;char mail20;char telephone20;struct Telephone *next;student50;typedef struct Telephone TEL;TEL *head=NULL;4.2 定义功能函数定义功能函数:第 4 页 共 17 页void showmenu(); /*菜单*/void Appenditem(); /*添加条目*/void print();

6、 /*输出条目*/void Finditem1(); /*查找条目( 按姓名 )*/void Correct(); /*修改条目*/void Removeitem(); /*删除信息*/ void Saveandfree(); /*保存到文件*/void Open(); /*打开文件*/4.3 函数函数编制编制(1)首先编制菜单,设置一个 Open()函数,打开文件。showmenu()菜单函数主要运用一个开关语句就能实现,菜单有 7 个选项,随便选择一个选项就能直接进入所要进的函数,如程序char ch;Open(); /*打开文件*/while(1)showmenu(); /*显示菜单*/

7、scanf(“ %c“,switch(ch)case 1:Appenditem(); /*添加条目*/break;case 2:print(); /*输出条目*/break;case 3:Finditem1(); /*查找条目 1.按姓名*/break;case 4: Removeitem(); /*删除信息*/print(); /*输出删除后的结果*/break;case 5: Correct(); /*修改信息*/break;case 0:Saveandfree(); /*保存并释放内存*/exit(0); /*退出*/break;第 5 页 共 17 页default:printf(“选

8、择错误!“);break;然后编制输出函数,使其输出菜单选项。(2)编制 Appenditem()添加条目函数。首先建立 2 个结构体指针*p1,*p2.并且利用p1=(TEL *)malloc(sizeof(TEL)申请结点,然后输入一系列信息,如编号、姓名、单位、通信、地址、邮箱、联系、电话等信息。最后申请空间将其保存。(3)编制 print()输出函数,此函数主要是通过结构体指针实现的,将输入的数据一次通过 printf 将其显示出来。(4)编制 Finditem1()查找函数。建立结构体指针 TEL *p; 并且定义一个数组 char findname20; 利用比较函数 strcmp

9、(),比较所要查找的节点中的姓名。如果输入的姓名不存在,则只输出基本行,即编号、姓名、单位、通信、地址、邮箱、联系、电话。如果存在则输出信息。如 for(p=head-next;p!=NULL;p=p-next)if(strcmp(p-name,findname)=0)printf(“%st%s%st%st%st%sn“,p-number,p-name,p-fia,p-addrass,p-mail,p-telephone); (5)Correct()函数旨在更改通讯录中的信息。运用这个函数时先按姓名查找要更改的信息,利用比较函数 strcmp(),比较所要查找的节点中的姓名。找到之后再重新输入

10、编号、姓名、单位、通信、地址、邮箱、联系、电话,并且覆盖原来的内容。(6)Removeitem()函数用来删除信息,先按姓名查找要删除的信息。利用比较函数strcmp(),比较所要查找的节点中的姓名。找到之后释放姓名所在的结点。如果不存在则输出:“没有要删除的对象”。此函数分 3 种情况,删除头结点,删除中间或尾结点。所需算法不一样。算法如下if(strcmp(p-name,findname)=0)第 6 页 共 17 页if(p=head)head=p-next; /*删除头结点*/elsepr-next=p-next; /*删除中间或尾结点*/free(p);elseprintf(“没有要

11、删除的对象n“);(7)Saveandfree()函数用来保存链表信息到文件并释放内存空间,主要运用文件函数实现。先将文件以“wb+”方式打开,再利用循环和 fwrite()函数将内容写入文件中,写完之后关闭文件。因为信息已保存,所以还要释放链表空间。(8)Open()函数用来打开已存在的文件,它的功能是读取以存储的文件内容,在利用 print()函数显示出来。5 系统实现与测试系统实现与测试图 1 运行后选择 1.录入信息 1第 7 页 共 17 页图 2 运行后选择 1.录入信息 2图 3 运行后选择 2.输出信息第 8 页 共 17 页图 4 运行后选择 3.按姓名查询图 5 运行后选择

12、 4.修改信息第 9 页 共 17 页图 6 运行后选择 5.修改信息图 7 运行后选择 0.保存并退出6 课程设计总结课程设计总结课程设计是培养学生综合运用所学知识发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。在课程设计的这几天里我感觉自己学到很多很多的的东西,课程设计不仅使我们巩固了以前在 C 程序设计和数据结构中所学过的知识,而且也让我们学到了很多在书本上所没有学到过的知识。通过这些日子的课程设计,我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,第 10 页 共 17 页从理论中得出结

13、论,才能提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到很多问题,一些程序学的好的同学给了我很多的帮助。通过课程设计,也发现了自己的不足之处:对以前 C 程序设计和数据结构所学过的知识理解得不够深刻,掌握得不够牢固,学的不够扎实,感觉都没有真正学到些什么实用的东西,很多东西都不是很明白。所以这次课程设计做的有点艰辛,但是我却感觉自己还确实是收获了很多,这次课程设计也的确让我受益匪浅。参考文献参考文献1 谭浩强,张基温C 语言程序设计教程(第 3 版)M北京:高等教育出版,20062 吕凤煮C 语言基础教程基础理论与案例M北京:清华大学出版社,20053 黄明、梁旭、万洪莉C 语言课程

14、设计M北京:电子工业出版社,20064 郭宁,郑小玲管理信息系统M北京:人民邮电出版社,20065 赵池龙,杨林,陈伟实用软件工程M北京:电子工业出版社,2006附录附录#include#include#includestruct Telephonechar number200;char name20;char fia20;char addrass20;char mail20;char telephone20;struct Telephone *next;student50;typedef struct Telephone TEL;TEL *head=NULL;void showmenu(); /*菜单*/第 11 页 共 17 页void Appenditem(); /*添加条目*/void print(); /*输出条目*/void Finditem1(); /*查找条目( 按姓名 )*/void Correct(); /*修改条目*/void Removeitem(); /*删除信息*/ void Saveandfree(); /*保存到文件*/void Open(); /*打开文件*/main()char ch;Open();

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 初中教育

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