[数据结构课程设计通讯录查询系统实验报告范文及源代码]数据结构通讯录.docx

[数据结构课程设计通讯录查询系统实验报告范文及源代码]数据结构通讯录.docx

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
您好根据您提供的文本我可以为您撰写一篇针对文档的概述主要概述了文档的主要内容标题数据结构课程设计通讯录查询系统实验报告1数据结构本部分描述了数据结构的概念和基本操作包括链表和数组的基本特性2算法设计在此部分我们讨论了如何使用哈希表包括哈希函数插入和删除操作来解决数据结构中的冲突问题同时我们还讨论了如何通过二分查找来找到特定的记录3用户交互这部分介绍了一个用户界面UI该界面将帮助用户输入他们的信息

[数据结构课程设计通讯录查询系统实验报告范文及源代码]数据结构通讯录

工程名称:停车管理系统

姓名:

学号:

专业:软件工程

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

文档评论(0)

偶遇 + 关注
实名认证
内容提供者

个人介绍

1亿VIP精品文档

相关文档