- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《数据结构》教学实习报告_小组szxlw
天津农学院
计算机科学与信息工程系
《数据结构》
教学实习报告
目 录
1 实验内容 1
1.1 实验题目 1
1.2 实验目的 1
2 实验要求 1
3 需求分析 1
4 概要设计 2
4.1 数据类型 2
4.2 主程序流程 2
4.3 各函数功能 3
5 详细设计 3
5.1 数据类型定义 3
5.2 主要算法 4
5.3 函数调用关系 10
6 调试分析 10
6.1 测试环境 10
6.2 模块调试 10
6.3 源代码 11
7 使用说明 22
8 测试结果 24
9 总结 27
1 实验内容
1.1 实验题目
使用哈希表设计一个电话薄查询系统。
1.2 实验目的
电话号码查询系统是利用哈希表实现电话系统的快速查询,程序实现哈希表建表和查表,并实现对没有查找到的内容进行记录。掌握哈希表的工作原理,熟悉建立哈希表、对哈希表冲突处理、哈希表查找等功能的实现。
2 实验要求
(1)每个记录有下列数据项:电话号码、用户名、地址。
(2) 一是从数据文件old.txt(自己现行建好)中读入各项记录,二是由系统随机产生各记录,并且把记录保存到new.txt文件中,记录条数不要少于30,然后分别以电话号码和用户名为关键字建立哈希表。
(3) 分别采用伪随机探测再散列法和再哈希法解决冲突。
(4) 查找并显示给定电话号码的记录;查找并显示给定用户名的记录。
(5) 将没有查找到的结果保存到结果文件Out.txt中,没有找到查找结果,要有提示语句。
3 需求分析
本演示程序用C++编写,完成电话薄的查找。
① 输入的形式和输入值的范围:数据输入分两种模式:一种是将原有数据记录在old.txt文档中,由程序读入;另一种是由程序随机生成,并储存在new.txt文档中。数据的格式为:姓名、电话号码、家庭住址。用户使用时显示菜单,用户输入菜单选项完成操作。
② 输出的形式:查找的结果显示在屏幕上。未被查找到的内容输出到out.txt文档中。在用户需要时,将哈希表显示在屏幕上。
③ 程序所能达到的功能:根据用户的选择,从原有文档读入数据或随机生成数据,分别以姓名和电话号码做为关键字生成哈希表。生成哈希表后用户可以根据相应关键字进行数据的查找,若查找到对应的数据则将数据输出到屏幕,若没有查找到对应的数据则将用户输入的查找内容输出到out.txt文档。在用户选择显示哈希表时,显示完整的哈希表。
程序使用文字菜单的友好界面。在数据输入时对输入内容进行范围控制。
④ 测试数据:
在old.txt文档中输入30条记录,令程序读入并分别以姓名和电话号码做为关键字生成哈希表,查找记录中原有的记录,查看输出数据,查找记录中没有的记录查看回馈,查看整个哈希表的数据。令程序随机生成记录,查看new.txt文档,分别以姓名和电话号码做为关键字生成哈希表,查看整个哈希表的数据,分别查找原有和没有的记录,查看回馈。
4 概要设计
4.1 数据类型
定义结构体类型存储每条记录。
struct Data{
string name;//用于存放姓名
string phone;//用于存放电话号码
string address;//用于存放地址}
4.2 主程序流程
4.3 各函数功能
函数名称:Random(int key,int i)
函数名称:伪随机数探测再散列法处理冲突
函数名称:Rehash(int key,string str)
函数名称:再哈希法处理冲突
函数名称:Hashname(string name,string phone,string address)
函数名称:以名字为关键字建立哈希表
函数名称:Hashphone(string name,string phone,string address)
函数名称:以电话为关键字建立哈希表
函数名称:Outfile(string name,int key)
函数名称:输出未找到的记录
函数名称:Outhash(int key)
函数名称:显示哈希表中的记录
函数名称:Rafile()//随机生成数据
函数名称:Hash(char* fname,int n)
函数名称:建立哈希表
函数名称:Findname(string name)
函数名称:根据姓名查找
函数名称:Findphone(string phone)
函数名称:根据电话查找
5 详细设计
5.1 数据类型定义
struct Data//定义结构体类型
{
string name; //用于存放姓名
string phone; //用于存放电话号码
string address; //用于存放地址
};
Data* dat;
文档评论(0)