- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验五 简单个人电话号码查询系统
一、问题描述
人们在日常生活中经常要查找某个人或某个单位的电话号码,本实验将实现一个简
(a)直方图的表格形式(b)直方图的图形形式
图 求直方图示例
单的个人电话号码查询系统,根据用户输人的信息(例如姓名等)进行快速查询。
二、基本要求
(1)提供查询功能:根据姓名实现快速查询;
(2)提供其他维护功能,例如插人、删除、修改等。
三、实验步骤
1.需求分析
本演示程序用VC++编写,完成单链表的生成,输入一些人的信息并且能够对电话本用户信息进行插入、删除,查找,操作。
① 输入的形式和输入值的范围:根据提示输入用户姓名,地址,电话,电子邮箱地址均为相应的字符串长度分别10,20,10,20对电话本进行插入新用户时要输入新用户的姓名,地址,电话,电子邮箱地址;删除用户是要输入该用户姓名;查找操作时需要输入要查找用户的姓名。
② 输出的形式:在所有操作中都显示操作是否正确以及操作后电话本的内容。其中删除操作后显示删除后的电话本信息,查找操作后显示查找后电话本信息。插入操作后显示插入后电话本信息。
③ 程序所能达到的功能:完成电话本的生成(通过插入操作)、插入、删除、查找用户信息操作。
④ 测试数据:
A. 插入操作中依次输入hu,liaoning,5673428,,wan,shanxi,6783452,生成一个电话本
B. 查找操作中输入姓名hu返回这个用户全部信息;
C. 删除操作中输入删除用户姓名,返回删除后电话本信息;
2.概要设计
1)为了实现上述程序功能,需要定义电话本的抽象数据类型:
ADT listper {
数据对象:D={ai|ai∈CharSet l,i=0,1,2,…,n,n≥0}
数据关系:R={<ai,ai+1>|ai,ai+1 ∈D}
基本操作:
per_insert (&L,,e)
初始条件:电话本L已存在
操作结果:将用户信息e插入到电话本L中
per_delet (&L,pos,&e)
初始条件:电话本L已存在
操作结果:将电话本L中pos位置的用户信息删除,用户信息值置入e中返回
Listsearch(L,e)
初始条件:电话本L依存在
操作结果:电话本L中查找是否用户e,若存在,返回用户信息;若不存在,返回-1.
Menu()
操作结果:在屏幕上显示操作菜单
}
2)本程序包含7个函数:
①主函数main()
②显示操作菜单函数menu_select()
③显示电话本内容函数per_print()
④插入用户信息函数per_insert()
⑤删除用户信息函数per_delet()
⑥查找用户信息函数per_find()
3.详细设计
实现概要设计中定义的所有的数据类型,对每个操作给出伪码算法。对主程序和其他模块也都需要写出伪码算法。
1) 结点类型
typedef struct addr /*定义电话本储存结构类型*/
{
char name[NAME]; /*姓名*/
char address[ADDR]; /*地址*/
char phone[PHON]; /*电话*/
char email[EMAIL]; /*邮箱*/
struct addr *next;
}listper;
2) 电话本的基本操作
为了方便,在电话本中设头结点,其数据域没有意义。
Status *per_input ( )
{
head=(struct addr*)malloc(LEN); /*建立单链表的头结点*/
rear=head; /*尾指针的初值为head*/
scanf("%s",name);
while(strcmp(name,"0")!=0) /*当名字不为0时循环建立单链表结点输入信息*/
{
p=(struct addr*)malloc(LEN);
strcpy(p->name,name);
scanf("%s",p->address);
scanf("%s",p->phone);
scanf("%s",p->email);
printf("\n\t\t input name:");
scanf("%s",name);
rear->next=p; /*新节点插到表尾*rear之后*
您可能关注的文档
- 建筑环境与 设备工程专业课程教学大纲.doc
- 高中数学 必修一必修二经典测试题100题.doc
- PubMe d文献服务系统及PubMed RSS科题跟踪服务.ppt
- 城乡居民 健 康档案管理系统培训.ppt
- 人体美学概 述.ppt
- 人音版 音乐八下《初探歌剧《猎人合唱》》课件.ppt
- 风景素描写 生概要.ppt
- 中层干部 管理技巧.ppt
- 高二数学导 数及其应用练习题2.doc
- 公民的义务.精品管理文档.ppt
- 幼儿教师资格证(考试资料)《幼儿保健知识与能力》新版初级练习卷有答案与.docx
- (附答案)川农12月《中药化学》作业考核-.docx
- (附答案)川农12月《园林植物保护学(本科)》作业考核-.docx
- (附答案)川农12月《有机化学(专科)》作业考核-.docx
- (附答案)川农12月《植物保护学(本科)》作业考核-.docx
- (附答案)东师《教育心理学》在线作业2-1(1).docx
- (附答案)川农12月《药剂学》作业考核-.docx
- (附答案)川农12月《配方饲料制造工艺与技术(专科)》作业考核-.docx
- 幼儿教师资格证(考试资料)《幼儿保健知识与能力》新版基础知识题库带解析.docx
- 幼儿教师资格证(考试资料)《幼儿保健知识与能力》基础知识模拟押题卷.docx
文档评论(0)