- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
[数据结构课程设计通讯录查询系统实验报告范文及源代码]数据结构通讯录
工程名称:停车管理系统
姓名:
学号:
专业:软件工程
1.需求分析
为某个单位建立一个员工通讯录管理系统,可以方便查询每一个员工的与地址。设计散列表存储,设计并实现通讯录查找系统。
1.根本要求
〔1〕每个记录有以下数据项:号码、用户名、地址;
〔2〕从键盘输入各记录,分别以号码为关键字建立散列表;
〔3〕采用二次探测再散列法解决冲突;
〔4〕查找并显示给定号码的记录;
〔5〕通讯录信息文件保存。
2.重点、难点
重点:
〔1〕通过实验深入理解哈希表既是一种存储形式,又是一种查找方法;
〔2〕哈希表的构造;
〔3〕哈希冲突方案的设计。
难点:哈希表的构造与哈希冲突方案的设计
输入的形式和输入值的范围;
输入三个字符串:
分别是号码,姓名,地址,每行一个数据
字符串长度适当
如:
号码〔纯数字〕
姓名
地址
输出的形式;
如:
姓名号码地址
程序所能到达的功能。
1:
并且通过号码为关键字,用二次再散列法寻找地址储存在哈希表中。
2:
3:
4:
5:显示通讯录
6:把通讯录写入文件储存。
2.概要设计
(1)数据结构
tructlit
{
chara[12];
charname[15];
charadd[15];
intf=0;
};
用连续的内存空间构建哈希表
tructqtack
{
tructlit某bae;
inti;
};
(2)程序模块
1:
构建二次再散列:
inti;
for(i=1;i25;i++)
d[2某i]=-1某i某i;
for(i=1;i25;i++)/某构造二次再散列某/
d[i+i-1]=i某i;
2:主菜单:
voidinterface()
{
inti;
printf(某某某某某某某某某某某某某某某某某某某某\n);
printf(某某某某某某某某某某某某某某某某某某某某\n);
canf(%d,i);
witch(i)
{
cae0:return;break;
cae1:huru();break;
cae2:print();break;
cae3:each();break;
cae4:del();break;
cae5:change();break;
cae6:write();break;
};
}
3:输入
voidhuru()
4:存入哈希表,采用二次探测再散列法解决冲突;
voidtore(char某a,char某name,char某add)
voideach();
voidchange()
Voiddel〔〕;
voidwrite()
(3)各模块之间的调用关系以及算法设计
3.详细设计
4.测试与分析
主界面:
构建哈希表,允许号码重复
可以支持姓名,,地址三个关键字的查找
可以按照姓名地址删除
写文件:
创立文件通讯录.t某t
如图:
5.附录
3.cpp
#includetdio.h
#includetdlib.h
#includetring.h
#includeiotream
#includetring.h
uingnamepacetd;
intd[50];/某再散列某/
tructlit
{
chara[12];
charname[15];
charadd[15];
intf=0;
};
tructqtack
{
tructlit某bae;
inti;
};
tructqtackS;
voidtore(char某a,char某name,char某add)
{
intkey;
key=int(a[0])+int(a[3])+int(a[7]);/某以号码的第1,4,8位作为关键字构造哈希函数某/
S.i=key%20;
intj=1;
while(true)
{
if((S.bae+S.i)-f==0)
{
trcpy((S.bae+S.i)-a,a);
trcpy((S.bae+S.i)-name,name);
trcpy((S.bae+S.i)-add,add);
(S.bae+S.i)-f=1;
break;
}
S.i=(key%20+d[j])%20;
j++;
}
}
voidhuru()
{
voidinterface();
cout请输入:\n例如:\n小王\n安徽省合肥市\n输入0结束\n;
chara[12];
charname[15];
charadd[15];
while(true)
{
canf(%,a);
if(a[0]==0)
break;
canf(%,name);
canf(%,add);
printf(%已保存\n,name);
tore(a,name,add);/某将输入保存到哈希表某/
}
interface();
}
voidprint()
{
voidinte
您可能关注的文档
- [课程]题目八(图书管理系统设计)N-S流程图.pdf
- [励志作文]四级英语作文范文精选三篇.docx
- [全]二建《施工管理》的学习方法.docx
- [热门]大学生职业规划书.docx
- [如何设置电脑的无线网桥接]无线网桥接设置方法.docx
- [设备管理]毕业论文设备管理系统的设计与实现.docx
- [实用参考]雅思阅读真题-回忆.docx
- [司法类试卷]国家司法考试(卷四)模拟考试217.doc
- [司法类试卷]国家司法考试(卷四)模拟考试251.doc
- [司法类试卷]国家司法考试卷二(刑事诉讼法)历年真题试卷汇编38.doc.docx
- 新的一年工作展望.docx
- 医生年终个人工作的述职报告(3篇).docx
- 2023年消防设施操作员之消防设备中级技能考前冲刺练习题附答案详解.docx
- 2022-2023年环境影响评价工程师之环评技术导则与标准通关练习题包括详细解答.docx
- 2023年中级注册安全工程师之安全生产管理考前冲刺检测卷和答案.docx
- 2023年中级银行从业资格之中级银行管理考前冲刺测试卷提供答案解析.docx
- 2023年公共营养师之二级营养师通关模拟考试试卷附带答案.docx
- 证券分析师之发布证券研究报告业务考前冲刺模拟题库.docx
- 2022-2023年二级建造师之二建建设工程法规及相关知识综合提升测试卷附答案.docx
- 2023年二级建造师之二建机电工程实务通关模拟考试试卷提供答案解析.docx
文档评论(0)