发布时间:2025-06-04 13:49:49 点击量:
HASH GAME - Online Skill Game GET 300
1、课程设计课程名称数据结构题目名称哈希表设计学生学院计算机学院专业班级07级网络工程2班学号3207007022学生姓名刘晓慧指导教师杨劲涛2009年6月28日一,问题描述1问题描述针对某个集体(比如你所在的班级)中的“人名”设计一个哈希表,使得平均查找长度不超过R,完成相应的建表和查表程序。2.基本要求假设人名为中国人姓名的汉语拼音形式。待填入哈希表的人名共有30个,取平均查找长度的上限为2。哈希函数用除留余数法构造,用伪随机探测再散列发处理冲突。二.需求分析(1)针对某个集体中的人名设计一个哈希表,使得平均查找长度不超过R,完成相应的建立和查表程序。(2)人名为汉语拼音形式,最长不超过19个
2、字符(如:庄双双zhuangshuangshuang)。(3)假设待填入哈希表的人名有30个,平均查找长度的上限为2。哈希表用除留余数法构造,用伪随机探测在散列法处理冲突。(4)在输入人名过程中能自动识别非法输入,并给与非法输入的反馈信息要求重新输入。(5)查找成功时,显示姓名及关键字,并计算和输出查找成功的平均查找长度三.程序设计1 .存储结构设计typedefstructchar*py;/名字的拼音intk;/拼音所对应的整数NAME;typedefstruct/哈希表char*py;/名字的拼音intk;/拼音所对应的整数intsi;/查找长度HASH;2 .主要算法设计(1) 姓名(结
17、yBl显小哈希表F.查卓Q1退出请选*F请输入姓名的拼音:xadssd无巡记录,comeon*y/n:(3)选择Q退出,如要继续可按任意键:corfon,y/r:yD.显小哈希表F.查找Q.退出请选南Qrressanykeytocontinue2 .时间复杂度O(n)3 .经验和体会经过这次课程设计的学习,让我明白了编写程序的思路是很重要的。在你编写一个程序之前,如果你的脑袋里面没有思路,根本就不可能编出好的程序。就算能编出程序来,相信编出的程序的逻辑性也不会很强,因为你是想到什么就编什么,不系统。因此在我们编程序之前一定要做好充分的准备,首先要理清自己的思
18、路,然后再将思路分划成几个模块,一块一块的编写,最后再将所有的模块联系起来,组成一个完整的程序。在上机实验之前,最好将程序编写好在草稿纸上,这样在编译的时候也比较有效率。其实在这次课程设计的过程中,我也遇到了很多难题。在种种的困难中,我明白了耐心在编写程序时的重要性。如果你没有耐心就肯定编不出好的程序,特别是在调试的过程中。我们初次写的程序在电脑上调试的时候也许会出项几百个错误,这时候我们应该耐心的检查出错的地方和原因,并予以改正,而不是抱怨自己写的程序太烂错误太多,就此放弃。相信再强的人也不可能一次就能编译成功,总会有一些问题出现。其实只要有耐心,你就会发现,在你修改了一个错误之后,其它有的
19、错误也会跟着消失,所以在编译的时候一定要有耐心。这段时间的课程设计,我也认识到数据结构是一门比较难的课程,需要花很多的时间去练习和实践。要想把这门课程学好学精不是一件容易的事,但是相信事在人为,只要肯下功夫就一定能学好。总的来说,这次程序设计让我获益匪浅,相信在以后的学习生活中我也能从中获得启发。六.用户使用说明详细视图请参考调试报告程序运行初显示如下通选画F请输入姓名的拼音门iuxiaohui姓名:liuxianhui关键字二108y查找长度为二1从中选择需要做的操作,输入对应的操作D、F、Q,并按回车,输入错误时,会显示“无此记录!”;正确时,显示姓名,关键字以及查找长度。0-显不哈希表F