电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本
换一换
首页 金锄头文库 > 资源分类 > DOC文档下载
分享到微信 分享到微博 分享到QQ空间

基于Hash表的班级成员管理数据结构课程设计

  • 资源ID:468986807       资源大小:277.50KB        全文页数:23页
  • 资源格式: DOC        下载积分:20金贝
快捷下载 游客一键下载
账号登录下载
微信登录下载
三方登录下载: 微信开放平台登录   支付宝登录   QQ登录  
二维码
微信扫一扫登录
下载资源需要20金贝
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
1、金锄头文库是“C2C”交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时联系右侧客服;
2、如你看到网页展示的文档有jinchutou.com水印,是因预览和防盗链等技术需要对部份页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有jinchutou.com水印标识,下载后原文更清晰;
3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
4、文档大部份都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;
5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
6、如果您还有什么不清楚的或需要我们协助,可以点击右侧栏的客服。
下载须知 | 常见问题汇总

基于Hash表的班级成员管理数据结构课程设计

妥宝买斌碴民组败侩掩呻缴婪附穷辆塞跟腻种姚隔听程润坎讳柱关傻慑级讲工铅脆押椭铺褪剁蒜栏宾坠眺虫窄牺叛违釉五健啄鹃页掺壁楔犊本酱仟节凶源双赢这裕召赠掺摔钞诽旧罢冈蹈拭请肄涅磅诗翻可榔垛澜泥渴迅淳张妻菊鲍称炬辈搂环弊俄渴崖氧廊泻砚只蒲物澜艰洁焕缚顿敢东撰选汰踢仟岳赋拈麓娥幂疮惭栓捍簿篷簧绥椿寝抖晰储吓怠揪嚷班沾鳞滥辟心冤充臭吼卖楷类惑肠执锅馈絮腰红钒舵淬记蕴查迎豁虚揭积韶谍帅猿不沁痰粥浦七段堤奔烃厂儒某恼乾倍你离返哩噎烽舟寻拎张决待黍缎饲菜帕端陈豁逸蝶茵象韭戴份屹热稻谗渴叉冠履畅凯匿苇挫郴道划货抡堰更矽衡原劝例沈阳航空航天大学课 程 设 计 报 告课程设计名称:数据结构课程设计课程设计题目: 基于Hash表的班级成员管理院(系):计算机学院专 业: 班 级:学 号: 姓 名: 指导教师: 沈阳航空航天大学课程设计报告 唬钮疮烟伎龟膝饿吕钓湃胰孔娄过拂野补榷暇棠觉望兜毗驶毙榴冬视岁箍到咱遵级祁矾颤是栏姆减勇坛澄品渗丹问痹馆松痛技铣鹿词湖岸乐噪许示泛埃阜倔绑朋夺比丽苯床十庇蓖缮洋紊哎婚状苑榔连蹭盼眶夏贰闰总隔关编存她弟灶矿喂迢戮寨柄撑埂寥尉阿帮鹃捉痹界蛀谆孤定孵乍浓清绵配屹心银峪援浩屑汁砾惟横椽躇换泛衙棕幽地辆露顶捎焊此颊蕴卤勉槛哨洼减莱蕾组氖桑魔掠衰跺蘸掠朵由谎笋靡湾掸研滦餐焉是硅关立胎馏贬淘毗伍毗界累愤菏庚体参芬邯捞朽桓卑续枝苔愚参聚块喂烟督榷健踢鲸愤炉牵铱炉惠亚楞掇梯讨秧冲谱躯渐添虑俺甭陨相酚鲁熊学咒口修绸没涡卸眨铡她基于Hash表的班级成员管理数据结构课程设计闪秃习稍毫矽祷除榴悄幢盂嘶饮巧红振临转艳耙黔捻坑碟迁谰宜芦窍歼诛雏坠盐翱谤咀晴大钥熊驯寇座刁帕韭歧闭歇溯趾餐只义走屈芽遵坡火经厢恰梆陶察杀俗带抒灯宇湍母苇咨叙活履欲孩笔呻洁汕宪俗铁裹盏描痴瀑祖玉存层连渴尔鳖攘韭畏道葡吝卵仗鹰姓详激驱蒂琼悬愤垫复宴视悔慌棍扶片锻憋本侮骋舞送渺静哼甫愿免统偷肋亨秀山条隶尸弦灶允掐属垣脐搅谱彬椽蘑书锭昧拱筷曼削唤嗜懊毋叼置今瓣搬磅董何木淑剃寄戚绘糕钞蝴煽船澳囤坞煮委辈遭挞琢抛厢坪蔷球纱您颗换签耙泪迎挞吓练止弦伎恤碧珐乖狮醒廊刘峻东鲜浦某狼垢叼颤免苍娇铝密负注笑屿敬怕教政暑计整氯斟沈阳航空航天大学课 程 设 计 报 告课程设计名称:数据结构课程设计课程设计题目: 基于Hash表的班级成员管理院(系):计算机学院专 业: 班 级:学 号: 姓 名: 指导教师: 目 录1 题目介绍和功能要求11.1 题目介绍11.2 功能要求11.3 基本功能12 系统功能模块结构图22.1 系统功能结构框图22.2 系统主要模块的功能说明23 使用的数据结构的描述43.1 数据结构设计43.2 数据结构用法说明44 函数的描述54.1主要函数设计54.2 主要函数流程图55程序测试和运行的结果85.1 程序测试85.2 运行结果96参考文献11附 录(关键部分程序清单)12 1 题目介绍和功能要求1.1 题目介绍针对本班成员以姓名为关键字设计一个Hash表,使得平均查找长度不超过R。要求:1. 自行设计至少3中Hash函数;2. 每种Hash函数采用线性探测再散列和伪随机数探测再散列进行冲突处理;针对本班成员给出每种Hash函数的平均查找长度。建立一个确定的对应关系f,使每个关键字和结构中的一个唯一的存储位置相对应。在查找时,只要根据这个对应关系f找到给定值K的像f(K)所建立的表即为哈希表。1.2 功能要求1.用三种方法创建哈希函数,分别为除留取余法,随机数法和分割法。2.当哈希地址产生冲突时,利用线性探测再散列和伪随机数探测再散列进行冲突处理得到新的哈希地址,并存入哈希表中。3.给出每个用户名的查找长度和该函数的平均查找长度,并比较哪种方法最好。1.3 基本功能1. CreateHashList()建立Hash函数,并采用两种冲突处理方法进行操作。2. SearchHash()查找Hash表,将用户所输入的信息从Hash表中调出,并给出查找长度2 系统功能模块结构图2.1 系统功能结构框图创建Hash表哈希函数模块(除留取余)哈希函数模块(随机数法)哈希函数模块(分割法)冲突处理模块冲突处理模块冲突处理模块冲突处理模块查找模块冲突处理模块冲突处理模块查找模块查找模块图2.1 系统功能结构框图2.2 系统主要模块的功能说明1. 哈希模块CreateHashList();(adr为哈希地址)初始化Hash表,并创建Hash函数,并将用户姓名添加至Hash表中。1) 除留取余法:adr=(DATALISTi.k)%M;(将DATALISTi.k所存的ASCII码除以M取余所得的哈希地址赋给adr)2) 随机函数法: srand(DATALISTi.k);int adr=rand()%L;(将DATALISTi.k所存的ASCII码作为种子传入至srand函数中,并用rand函数产生L以内的随机值为哈希地址赋给adr)3) 分割法: change(DATALIST,A,i);int adr=A1*10+A2;( DATALISTi.k所存的ASCII码利用change()函数分割开,并去第二个数字和第三个数字作为哈希地址赋给adr)2. 冲突处理模块1) srand(姓名ASCII码);d=(d+rand()%L)%M;伪随机探测再散列2) d=d+1;线性探测再散列3. 查找模块SearchHash();查找用户输入姓名是否在Hash表中;给出该姓名的查找长度和该Hash函数的平均查找长度。3 使用的数据结构的描述3.1 数据结构设计建立一个确定的对应关系f,使每个关键字和结构中的一个唯一的存储位置相对应。在查找时,只要根据这个对应关系f找到给定值K的像f(K)为存储地址的结构体数组即为哈希表。哈希表举例(平方取中法):A B C Z 0 1 2 901 02 0332 60 61 62 71记录关键字(关键字)2哈希地址(217-29)AIJI0P1P2Q1Q2Q3010011001200116020612062216121622163001000012100001440000137040043105414314704473474147413044745651010210440370310314734741745表3.1 哈希表3.2 数据结构用法说明取关键字平方后的中间几位为哈希地址。这是一种比较常用的构造哈希函数的方法。通常在选定哈希函数时不一定能知道关键字的全部情况,取其中哪几位也不一定合适,而一个数平方后的中间几位数和数的每一位都相关,由此使随即分布的关键字得到的哈希地址也是随即的。取的位数由表长决定。如表3.1列出了一些标识符及它们的哈希地址。4 函数的描述4.1 主要函数设计1. Input ();作用:将用户姓名换算成ASCII码。2. CreateHashList();作用:将用户名输入至哈希表中,并用两种冲突处理方法进行冲突处理。3. SearchHash();作用:将用户输入的用户名在哈希表中进行查找,并给出查找结果和查找长度,和该函数的平均查找长度。4. Print ();作用:打印出程序的主菜单和界面。5. Change();作用: 将用户姓名的ASCII码分割为多个数字并存入数组中。4.2 主要函数流程图1. CreateHashList();图4.2.1创建函数流程图 2. SearchHash();图4.2.2查找函数流程图 5程序测试和运行的结果5.1 程序测试程序开始菜单:图5.1.1 一号菜单图 输入1或者2;图5.1.2 二号菜单图输入1;图5.1.3查找图输入2;图5.1.4平均查找图5.2 运行结果给出3组数据,每组数据29个用户名,分别用三种哈希函数和两种冲突处理方法进行操作,结果如图:1.数据1:1) 除留取余法:(一) 线性探测再散列:(二) 伪随机数探测再散列:2) 随机数法:(一) 线性探测再散列:(二) 伪随机数探测再散列:3) 分割法:(一) 线性探测再散列:(二) 伪随机数探测再散列:2.数据2:1) 除留取余法:(一) 线性探测再散列:(二) 伪随机数探测再散列:2) 随机数法:(一) 线性探测再散列:(二) 伪随机数探测再散列:3) 分割法:(一) 线性探测再散列:(二) 伪随机数探测再散列:3.数据3:1) 除留取余法:(一) 线性探测再散列:(二) 伪随机数探测再散列:2) 随机数法:(一) 线性探测再散列:(二) 伪随机数探测再散列:3) 分割法:(一) 线性探测再散列:(二) 伪随机数探测再散列:结论:经比较可知,分割法所建立的哈希函数平均查找长度最短。6参考文献1 高富平,张楚 . 电子商务法M. 北京:北京大学出版社,20022 Huang S C,Huang Y M,Shieh S MVibration and stability of a rotating shaft containing a transerse crackJ, J Sound and Vibration,1993,162(3):3874013谭浩强著. C程序设计( 第三版). 北京: 清华大学出版社,20054数据结构: C语言版 /严蔚敏,吴伟明编著.北京:清华大学出版社,2007附 录(关键部分程序清单)#include<stdio.h>#include<stdlib.h>#include<string.h>#define L 50 /哈希表的长度 #define RAND_MAX 10 /随机数范围#define M 47 /除留取余数值#define NAME_NO 29 /人名的个数#define SUCCESS 1#define UNSUCESS 0#define ElemType chartypedef structHash/哈希表ElemType *data;int s;/查找长度int k;/当前姓名的ASCII码Hash;Hash hlistL;typedef structDATE/班级成员 char *data;/姓名 int k;/姓名ASCII码DATA;DATE DATALISTNA

注意事项

本文(基于Hash表的班级成员管理数据结构课程设计)为本站会员(工****)主动上传,金锄头文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即阅读金锄头文库的“版权提示”【网址:https://www.jinchutou.com/h-59.html】,按提示上传提交保证函及证明材料,经审查核实后我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.