发布时间:2025-04-29 22:23:39 点击量:
HASH GAME - Online Skill Game GET 300
哈希表的设计与实现.docx:..哈希表的设计与实现摘要哈希表的设计与实现是用VisualC++,更新与查找的程序。它可以方便的进行基本数据信息的输入(如:姓名、电话、地址等),查询(按姓名查询•按电话号查询),删除(运用姓名删除),添加新的数据等。易于管理员进行管理。本设计使用VisualC++,运用类实现了对数据不同信息的操作功能。关键字:哈希表;VisualC++;地址1、 题冃分析 32、 设计思路 33、 设计思路 44、 测试的实验结果和测试过程 114・3问题分析: 135、 课程设计体会及问题分析 136、 参考文献 147、 源程序清单 141、题目分析在21世纪信息吋代里,各个机构金业都需要处理一些庞大的重要的数据,而这些数据既需要随吋查找还需要随吋纪录新的数据。这工作量无疑是巨大,如果用人力去完成,不仅效率底,易出错,而且其他各个方面都受到一•定的限制,如吋间资源等。针对这种情况,应用哈希表来规范化管理这些数据是一个既明知乂科学选折。它不但能有效的准确的存储大量数据,还可以根据需姜不断的更新与插入新的数据。2、:(1) 如何设计一•个结构体数组使该数组屮每个元素包含电话号码、用户名、地址。(2) 如何分别以电话号码和用户名为关键字建立哈希表。(3) 如何利用线性探测再散列法解决冲突。(4) 如何实现用哈希法查找并显示给定电线) 如何查找并显示给定用户的记录。(哈希表的设计与实现的问题)设计哈希表实现电话号码查询系统。设计程序完成以下要求:(1)、设每个记录有下列数据项:电话号码、用户名、地址;(2)、从键盘输入各记录,分别以电话号码和用户名为关键字建立哈希表;(3)、采用再哈希法解决冲突(4)、查找并显示给定电线)、查找并显示给定用户的记录。要完成以上要求,设计哈希表实现电话号码查询系统。:哈希表。要求输入电话号码、用户名、地址三个信息,并要求分别以电话号码和用户名为关键字进行查找,所以本问题要用到两个哈希函数,进行哈希查找。typedefstructcharname[20];//名字charnum[20];//电线];//地址}Record;RecordTnf[M];//辅助数组RecordII[M];//哈希表3、设计思路主要算法的流程图如下:1、创建辅助数组流程图:2、以姓名为关键字的哈希函数流程图:4、以电话号码为关键字的哈希函数流程图:7、以电话号码为关键字的哈希表按号码查找函数流程图:11、主函数调用函数流程图:4、,在线性探测法中,每个结构体元素对应一个数组位置,它由三个域组成,而由于该程序需要分别用电话号码和用户名为关键字建立哈希表,所以该数组的元索它由三个域组成:name[20]num[20]address[30]其Pname[20]和num[20]是分别为以电话号码和用户名为关键字域(key),存放关键字;address[30]为元索的数据域(data),用来存储用户的地址信息。4・2屏幕截图丰界面如图**********•-D:\VC++\MSDEV98\BIN\Debug\-!表3:llp0-结〔青选择您要运行的选项按0^1、给岀一组测试数据及运行结果如下:输入数据后按姓名散列结果如下:地址sJZbjjzbbch•D:\VC++\MSDEV98\BIN\Debug\-3找入除回(0喳w^yA表一?5^Im姓号束謎择您潮选项$0-3:,根据输入数据计算和书上ASCII值计算出结果相比对,数据正确,刚开始老师检查吋,觉得我的程序缺少输出哈希地址的步骤,回来后我又加以改进,把哈希地址正常输出。•D:\VC++\MSDEV98\BIN\Debug\*表一?^鬣姓号束号码1132333435地址bbsjzchbj入找入除回喳1230输入数据后按号码散列结果如下:每个元素的哈希地址正是用号码屮每个字符的ASCII码值相加再对小于哈希表长的最人