哈希表的设计与实现毕业论文

哈希表的设计与实现毕业论文

ID:24118168

大小:712.00 KB

页数:43页

时间:2018-11-12

哈希表的设计与实现毕业论文_第1页
哈希表的设计与实现毕业论文_第2页
哈希表的设计与实现毕业论文_第3页
哈希表的设计与实现毕业论文_第4页
哈希表的设计与实现毕业论文_第5页
资源描述:

《哈希表的设计与实现毕业论文》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、哈希表的设计与实现哈希表的设计与实现摘要哈希表的设计与实现是用VisualC++6.0编写的能够实现数据的存储,更新与查找的程序。它可以方便的进行基本数据信息的输入(如:姓名、电话、地址等),查询(按姓名查询.按电话号查询),删除(运用姓名删除),添加新的数据等。易于管理员进行管理。本设计使用VisualC++6.0开发工具利用其提供的各种面向对象的开发工具将数据信息定义在结构体中,运用类实现了对数据不同信息的操作功能。关键字:哈希表;VisualC++6.0;地址24哈希表的设计与实现目录1、

2、题目分析32、设计思路32.1问题描述32.2基本要求32.3数据结构33、设计思路44、测试的实验结果和测试过程114.1详细设计114.2屏幕截图114.3问题分析:135、课程设计体会及问题分析136、参考文献147、源程序清单1424哈希表的设计与实现1、题目分析在21世纪信息时代里,各个机构企业都需要处理一些庞大的重要的数据,而这些数据既需要随时查找还需要随时纪录新的数据。这工作量无疑是巨大,如果用人力去完成,不仅效率底`,易出错,而且其他各个方面都受到一定的限制,如时间资源等。针对这

3、种情况,应用哈希表来规范化管理这些数据是一个既明知又科学选折。它不但能有效的准确的存储大量数据,还可以根据需要不断的更新与插入新的数据。2、设计思路2.1问题描述实现本程序需要解决以下几个问题:(1)如何设计一个结构体数组使该数组中每个元素包含电话号码、用户名、地址。(2)如何分别以电话号码和用户名为关键字建立哈希表。(3)如何利用线性探测再散列法解决冲突。(4)如何实现用哈希法查找并显示给定电话号码的记录。(5)如何查找并显示给定用户的记录。2.2基本要求(哈希表的设计与实现的问题)设计哈希表

4、实现电话号码查询系统。设计程序完成以下要求:(1)、设每个记录有下列数据项:电话号码、用户名、地址;(2)、从键盘输入各记录,分别以电话号码和用户名为关键字建立哈希表;(3)、采用再哈希法解决冲突(4)、查找并显示给定电话号码的记录;(5)、查找并显示给定用户的记录。要完成以上要求,设计哈希表实现电话号码查询系统。2.3数据结构本设计涉及到的数据结构为:哈希表。要求输入电话号码、用户名、地址三个信息,并要求分别以电话号码和用户名为关键字进行查找,所以本问题要用到两个哈希函数,进行哈希查找。24哈

5、希表的设计与实现typedefstruct{charname[20];//名字charnum[20];//电话号码charadd[30];//地址}Record;RecordInf[M];//辅助数组RecordH[M];//哈希表3、设计思路主要算法的流程图如下:1、创建辅助数组流程图:开始初始化哈希表往辅助数组输入元素N结束Y结束并返回数组元素总数选择Y/N24哈希表的设计与实现2、以姓名为关键字的哈希函数流程图:开始取整形数据0赋给ai从0开始取num[i]!=’’a=a+(int)(

6、name[i])a=a%29结束i++3、以姓名为关键字创建哈希表流程图:开始j从0开始elsekey++计算以姓名为关键字的哈希地址keyif(strcmp(H[key].name,NULLKEY)==0)将辅助数组中的元素存入哈希表结束24哈希表的设计与实现4、以电话号码为关键字的哈希函数流程图:开始取整形数据0赋给bi从0开始取num[i]!=’’i++b=b+(int)(name[i])b=b%29结束5、以电话号码为关键字创建哈希表流程图:开始j从0开始计算以电话号码为关键字的哈希

7、地址keyif(strcmp(H[key].num,NULLKEY)==0)将辅助数组中的元素存入哈希表elsekey++结束24哈希表的设计与实现6、以姓名为关键字的哈希表按姓名查找函数流程图:查找名字不存在return(key);结束开始调用Hash_namewhile(strcmp(H[key].name,name)!=0)key++if(strcmp(H[key].name,NULLKEY)==0)7、以电话号码为关键字的哈希表按号码查找函数流程图:查找号码不存在return(key);

8、结束开始调用Hash_numwhile(strcmp(H[key].num,num)!=0)key++if(strcmp(H[key].num,NULLKEY)==0)24哈希表的设计与实现8、以姓名为关键字的哈希表按姓名插入函数流程图:开始调用Hash_nameif(strcmp(H[key].name,NULLKEY)==0)elsekey++while(1)将数据以姓名为关键字插入哈希表结束9、以号码为关键字的哈希表按号码插入函数流程图:开始调用Hash_numif(strcmp(H[ke

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。