通讯录管理系统实验报告.docx
- 文档编号:24791290
- 上传时间:2023-06-01
- 格式:DOCX
- 页数:10
- 大小:102KB
通讯录管理系统实验报告.docx
《通讯录管理系统实验报告.docx》由会员分享,可在线阅读,更多相关《通讯录管理系统实验报告.docx(10页珍藏版)》请在冰豆网上搜索。
通讯录管理系统实验报告
通讯录管理系统实验报告
信息科学与技术学院《程序设计实习》实训报告书
目:
计算机科学与技术题
专业:
计算机科学与技术班级:
姓名:
学号:
同组人员:
指导老师:
设计时间:
1.实训计划........................................................................................................12.问题描述........................................................................................................13.问题分析........................................................................................................24.算法设计........................................................................................................45.程序模块设计.................................................................................................56.技术难点与分析.............................................................................................87.系统测试........................................................................................................98.心得体会......................................................................................................129.参考文献......................................................................................................13
2
1.实训计划
2011.9.19~2011.9.19,选择实验任务,明确项目需求,查阅参考书籍。
2011.9.20~2011.9.20,数据结构的分析和确定。
2011.9.21~2011.9.23,项目分析和代码实现。
2011.9.24~2011.9.24,项目演示、验收、评分。
2.问题描述
设计一个计算机程序,实现通讯录管理。
1(设计一个含有6个菜单项的主控菜单,这6个菜单项的内容和输入提示如下:
1)通讯录链表的建立
2)通讯者结点的插入
3)通讯者结点的查询
4)通讯者结点的删除
5)通讯录链表的输出
0)退出管理系统
请选择0~5:
2(使用数字0~5来选择菜单项,其它输入则不起作用。
1
3.问题分析
开始
开始菜单
新建插入查找删除输出退出
按学号按学号按学号按姓名按电话按住址
查找查找查找插入查找删除
2
该通讯录主要分为六个模块:
1)新建2)插入3)查询4)删除5)输出6)退出。
在开始菜单中对应的功能数字是0-5。
可以按照自己想要操作的动作选择对应的数字实现相应的功能。
对于插入主要是按学号的升序来插入通讯者的信息。
在查找中分为四个查找方式:
1)按学号查询2)按姓名查询3)按号码查询4)按地址查询。
在删除中由于学号是主关键字,是唯一的,所以删除按学号来删除会比较方便。
而输出是按一个指针p指向头指针haed,按循环来输出直到p=NULL则结束输出。
3
4.算法设计
1(数据结构设计
typedefstructstudent{//定义学生结构体
longnum;//学号
charname[10];//姓名
charphone[11];//电话
charaddress[20];//地址
}datatype;
typedefstructnode{//结点包括数据域和指针域
datatypedata;
structnode*next;
}listnode;
typedeflistnode*linklist;
linklisthead;//定义一个头指针head2(算法设计
linklistcreatelist();//通讯录链表的建立voidinsertnode(linklisthead,listnode*p);//通讯录结点的插入voidlistfind(linklisthead);//通讯录链表的查询voiddelnode(linklisthead,longnum);//通讯者结点的删除voidprintlist(linklisthead);//通讯录链表的输出intstart_menu();//开始菜单其中listfind(linklisthead);里面是用switch语句,由于查找分为四种:
1)按学号查找Findnum()
2)按姓名查找Findname()
3)按号码查找Findphone()
4)按地址查找Findaddress()
4
5.程序模块设计
按照模块(即函数)画出每个函数的流程图,并配合必要的文字说明。
1.开始菜单模块如下:
开始
开始菜单
键入4键入5键入0键入1键入2键入3
新建插入查找删除输出退出
2.新建linklistcreatelist()模块如下:
开始
申请头结点
head
插入一个结
点p
返回头结点
3.插入insertnode(linklisthead,listnode*p)模块如下:
5
开始
申请相连的结
点m和n,开始
m指向头结点
Y ,=Null?
N
新建通讯录
将p结点插入结
点m和n之间
4.查询listfind(linklisthead)模块如下:
开始
头结点
head=Null,
N
Y
查找不到联系输入n的数值人信息
键入1键入2键入3键入4键入其他
按姓名查询按号码查询按地址查询退出按学号查询
5.删除delnode(linklisthead,longnum)模块如下:
6
开始
申请结点p指向
头指针head
通讯录空,无YP->next==null,法删除
N
p-
>data.num==Nnum?
Y
输出删除者信删除者不存在息
6.输出函数printlist(linklisthead)模块如下:
开始
申请结点
p,p=head->next
Yp==NULL?
通讯录为空
N
输出通讯者的
信息
7
6.技术难点分析
主要内容:
本课题在设计过程中所遇到的技术难点及解决方法。
在本次试验中我觉得我遇见了一些技术上的难点,刚开始是通讯录的建立,要用到数据结构中的知识,主要要用到链表和结构体。
在通讯录的插入的时候主要是用到学号的升值法插入,在此过程中要申请结点m和n,而且将要插入结点p插在两结点之间。
在通讯录的查询当中主要分为四类:
1).按学号查找的函数;2).按姓名查找的函数;3).按电话查找的函数;4).按住址查找的函数。
其实原理一样,只是使用strcmp()函数匹配出和要查找的通讯者信息相同的结点,并且将其所有的信息输出。
在删除函数我开始觉得删除的时候很困难,后来我是按学号删除的,因为学号是关键字,主要注意在删除后对一些结点需要改变p=p->next;p->next=p->next->next;free(q);如果没找到则q=q->next。
8
7.系统测试
1.测试开始菜单,使用数字0~5来选择菜单项,其它输入则不起作用。
2进入通讯录的建立
3.通讯录结点的插入
3,通讯录按学号查找
查询成功和失败
9
4通讯录按姓名查找
通讯录的按电话和地址查找和以上类似
5通讯录的删除
10
6.通讯录的输出
7.通讯录的退出
11
8.心得体会
我觉得在试验的过程当中最重要的要有耐心和毅力,在一周的试验当中我遇见很多的问题,刚开始坐在电脑面前的时候我觉得试验应该不是很难,于是我便开始拿着试验要求报告开始我的编程,但是后来我发现并不是那么的简单,写到后面的时候我觉得自己考虑的东西多了,原本写的程序并没有把问题考虑那么周全,所以让我浪费了很多的时间。
后来在老师的指导下开始新的编程之路,我去了图书馆借了一些关于试验方面的书籍,看了一下,不是像以前一样拿起书本便开始往电脑里面敲代码。
我觉得一种好的编程习惯对于我来说是非常重要的。
我记得在试验的过程中我发现自己的程序有些问题于是我让老师帮我看下是哪里出现了问题,老师看了我的程序觉得没有结构感,我觉得也是自己平时很注重写代码最后是否能运行出自己想要的结果,完成试验的最后目的,所以对于代码的结构并不是很重要,所以让别人看起来不是很容易理解,我觉得在这些方面我还是有需要进步的一面。
我觉得这周的实习对于我来说是非常有意义的。
在进学校以来,我选择了这个专业,就是想自己给自己增加点技术知识和自己的动手能力。
以前的试验我觉得都是很有结构很有步骤的,但是这周我们写的试验是完全靠自己来写的,没有给我们固定的模式,所以我觉得这在一定的程度上考验了我的动手能力,不仅获取课外的很多知识也增加了自己的能力,我觉得类似这样的实习是被提倡的,对于我来说也是很有意义的。
12
9.参考文献
1)徐孝凯,魏荣《数据结构》,机械工程出版社,1996.P121-P132.2)谭浩强《程序设计》,北京大学出版社,1999.P236-P249.3)杨路明《C语言程序设计教程》,北京邮电大学出版社.P170-P186.4)耿国华《数据结构-C语言描述》,高等教育出版社.P248-P253.
13
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 通讯录 管理 系统 实验 报告