欢迎来到天天文库
浏览记录
ID:4346633
大小:640.50 KB
页数:25页
时间:2017-11-30
《哈希表的设计与实现毕业论文》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、哈希表的设计与实现哈希表的设计与实现摘要哈希表的设计与实现是用VisualC++6.0编写的能够实现数据的存储,更新与查找的程序。它可以方便的进行基本数据信息的输入(如:姓名、电话、地址等),查询(按姓名查询.按电话号查询),删除(运用姓名删除),添加新的数据等。易于管理员进行管理。本设计使用VisualC++6.0开发工具利用其提供的各种面向对象的开发工具将数据信息定义在结构体中,运用类实现了对数据不同信息的操作功能。关键字:哈希表;VisualC++6.0;地址1哈希表的设计与实现目录1、题目分析32、设计思路32.1问
2、题描述32.2基本要求32.3数据结构33、设计思路44、测试的实验结果和测试过程114.1详细设计114.2屏幕截图114.3问题分析:135、课程设计体会及问题分析136、参考文献147、源程序清单141哈希表的设计与实现1、题目分析在21世纪信息时代里,各个机构企业都需要处理一些庞大的重要的数据,而这些数据既需要随时查找还需要随时纪录新的数据。这工作量无疑是巨大,如果用人力去完成,不仅效率底`,易出错,而且其他各个方面都受到一定的限制,如时间资源等。针对这种情况,应用哈希表来规范化管理这些数据是一个既明知又科学选折。它
3、不但能有效的准确的存储大量数据,还可以根据需要不断的更新与插入新的数据。2、设计思路2.1问题描述实现本程序需要解决以下几个问题:(1)如何设计一个结构体数组使该数组中每个元素包含电话号码、用户名、地址。(2)如何分别以电话号码和用户名为关键字建立哈希表。(3)如何利用线性探测再散列法解决冲突。(4)如何实现用哈希法查找并显示给定电话号码的记录。(5)如何查找并显示给定用户的记录。2.2基本要求(哈希表的设计与实现的问题)设计哈希表实现电话号码查询系统。设计程序完成以下要求:(1)、设每个记录有下列数据项:电话号码、用户名、
4、地址;(2)、从键盘输入各记录,分别以电话号码和用户名为关键字建立哈希表;(3)、采用再哈希法解决冲突(4)、查找并显示给定电话号码的记录;(5)、查找并显示给定用户的记录。要完成以上要求,设计哈希表实现电话号码查询系统。2.3数据结构本设计涉及到的数据结构为:哈希表。要求输入电话号码、用户名、地址三个信息,并要求分别以电话号码和用户名为关键字进行查找,所以本问题要用到两个哈希函数,进行哈希查找。1哈希表的设计与实现typedefstruct{charname[20];//名字charnum[20];//电话号码charad
5、d[30];//地址}Record;RecordInf[M];//辅助数组RecordH[M];//哈希表3、设计思路主要算法的流程图如下:1、创建辅助数组流程图:开始初始化哈希表往辅助数组输入元素N结束Y结束并返回数组元素总数选择Y/N1哈希表的设计与实现2、以姓名为关键字的哈希函数流程图:开始取整形数据0赋给ai从0开始取num[i]!=’ ’a=a+(int)(name[i])a=a%29结束i++3、以姓名为关键字创建哈希表流程图:开始j从0开始elsekey++计算以姓名为关键字的哈希地址keyif(strcmp
6、(H[key].name,NULLKEY)==0)将辅助数组中的元素存入哈希表结束1哈希表的设计与实现4、以电话号码为关键字的哈希函数流程图:开始取整形数据0赋给bi从0开始取num[i]!=’ ’i++b=b+(int)(name[i])b=b%29结束5、以电话号码为关键字创建哈希表流程图:开始j从0开始计算以电话号码为关键字的哈希地址keyif(strcmp(H[key].num,NULLKEY)==0)将辅助数组中的元素存入哈希表elsekey++结束1哈希表的设计与实现6、以姓名为关键字的哈希表按姓名查找函数流程
7、图:查找名字不存在return(key);结束开始调用Hash_namewhile(strcmp(H[key].name,name)!=0)key++if(strcmp(H[key].name,NULLKEY)==0)7、以电话号码为关键字的哈希表按号码查找函数流程图:查找号码不存在return(key);结束开始调用Hash_numwhile(strcmp(H[key].num,num)!=0)key++if(strcmp(H[key].num,NULLKEY)==0)1哈希表的设计与实现8、以姓名为关键字的哈希表按姓名插
8、入函数流程图:开始调用Hash_nameif(strcmp(H[key].name,NULLKEY)==0)elsekey++while(1)将数据以姓名为关键字插入哈希表结束9、以号码为关键字的哈希表按号码插入函数流程图:开始调用Hash_numif(strcmp(H[key].num,
此文档下载收益归作者所有