欢迎来到天天文库
浏览记录
ID:14287829
大小:280.00 KB
页数:16页
时间:2018-07-27
《数据结构程序课程设计—散列表的设计与实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、XXXXXX学院计算机类课程设计报告课程名称:数据结构程序设计课程设计题目:散列表的设计与实现姓名:系:计算机系专业:计算机科学与技术年级:08级学号:指导教师:职称:2010年6月26日XXXXXXXXXXX计算机类课程设计结果评定序号评定项目分值得分1选题合理、目的明确102设计方案正确,具有可行性、创新性203程序运行结果正确204态度认真、学习刻苦、遵守纪律155设计报告的规范化、参考文献充分(不少于5篇)106答辩:思路清晰,语言表达准确,概念清楚、正确25最后得分指导老师(签名)日期年月日目录1.课程设计的目的………………………………………………………………42.课程设计的要
2、求………………………………………………………………43.课程设计报告内容……………………………………………………………44.课题分析·····················································125.课题设计结果及体会···············································146.参考文献………………………………………………………………………15散列表的设计与实现1.课程设计的目的掌握数据结构的基础技术,学会分析研究计算机加工的数据结构的特性,以便为应用涉及的数据选择适当的逻辑结构、存储结构及其相应的算法
3、,应用相关知识设计设散列表实现电话号码查找系统。2.课程设计的要求1)设每个记录有下列数据项:电话号码、用户名、地址;2)从键盘输入各记录,分别以电话号码和用户名为关键字建立散列表;3)采用一定的方法解决冲突;4)查找并显示给定电话号码的记录;5)查找并显示给定用户名的记录。【进一步完成内容】1)系统功能的完善;2)设计不同的散列函数,比较冲突率;3)在散列函数确定的前提下,尝试各种不同类型处理冲突的方法,考察平均查找长度的变化。3.课程设计报告内容程序代码#include#include#include#include4、s.h>#defineMAXSIZE 20 //电话薄记录数量#defineMAX_SIZE20 //人名的最大长度#defineHASHSIZE53 //定义表长 #defineSUCCESS1#defineUNSUCCESS-1#defineLENsizeof(HashTable)typedefintStatus;typedefcharNA[MAX_SIZE];typedefstruct{//记录NAname;NAtel;NAadd;}Record;typedefstruct{//哈希表Record*elem[HASHSIZE]; //数据元素存储基址intcount; 5、 //当前数据元素个数intsize; //当前容量}HashTable;Statuseq(NAx,NAy){//关键字比较,相等返回SUCCESS;否则返回UNSUCCESSif(strcmp(x,y)==0) returnSUCCESS;elsereturnUNSUCCESS;}StatusNUM_BER; //记录的个数voidgetin(Record*a){//键盘输入各人的信息printf("输入要添加的个数:");scanf("%d",&NUM_BER);inti;for(i=0;i6、("请输入第%d个记录的用户名:",i+1); scanf("%s",a[i].name); printf("请输入%d个记录的电话号码:",i+1); scanf("%s",a[i].tel); printf("请输入第%d个记录的地址:",i+1); scanf("%s",a[i].add); //gets(str2);??????}}voidShowInformation(Record*a)//显示输入的用户信息{inti;for(i=0;i7、电话号码:%s联系地址:%s",i+1,a[i].name,a[i].tel,a[i].add);} voidCls(Record*a){printf("*"); system("cls");}longfold(NAs){//人名的折叠处理char*p;longsum=0;NAss;strcpy(ss,s);//复制字符串,不改变原字符串的大小写strupr(ss)
4、s.h>#defineMAXSIZE 20 //电话薄记录数量#defineMAX_SIZE20 //人名的最大长度#defineHASHSIZE53 //定义表长 #defineSUCCESS1#defineUNSUCCESS-1#defineLENsizeof(HashTable)typedefintStatus;typedefcharNA[MAX_SIZE];typedefstruct{//记录NAname;NAtel;NAadd;}Record;typedefstruct{//哈希表Record*elem[HASHSIZE]; //数据元素存储基址intcount;
5、 //当前数据元素个数intsize; //当前容量}HashTable;Statuseq(NAx,NAy){//关键字比较,相等返回SUCCESS;否则返回UNSUCCESSif(strcmp(x,y)==0) returnSUCCESS;elsereturnUNSUCCESS;}StatusNUM_BER; //记录的个数voidgetin(Record*a){//键盘输入各人的信息printf("输入要添加的个数:");scanf("%d",&NUM_BER);inti;for(i=0;i6、("请输入第%d个记录的用户名:",i+1); scanf("%s",a[i].name); printf("请输入%d个记录的电话号码:",i+1); scanf("%s",a[i].tel); printf("请输入第%d个记录的地址:",i+1); scanf("%s",a[i].add); //gets(str2);??????}}voidShowInformation(Record*a)//显示输入的用户信息{inti;for(i=0;i7、电话号码:%s联系地址:%s",i+1,a[i].name,a[i].tel,a[i].add);} voidCls(Record*a){printf("*"); system("cls");}longfold(NAs){//人名的折叠处理char*p;longsum=0;NAss;strcpy(ss,s);//复制字符串,不改变原字符串的大小写strupr(ss)
6、("请输入第%d个记录的用户名:",i+1); scanf("%s",a[i].name); printf("请输入%d个记录的电话号码:",i+1); scanf("%s",a[i].tel); printf("请输入第%d个记录的地址:",i+1); scanf("%s",a[i].add); //gets(str2);??????}}voidShowInformation(Record*a)//显示输入的用户信息{inti;for(i=0;i7、电话号码:%s联系地址:%s",i+1,a[i].name,a[i].tel,a[i].add);} voidCls(Record*a){printf("*"); system("cls");}longfold(NAs){//人名的折叠处理char*p;longsum=0;NAss;strcpy(ss,s);//复制字符串,不改变原字符串的大小写strupr(ss)
7、电话号码:%s联系地址:%s",i+1,a[i].name,a[i].tel,a[i].add);} voidCls(Record*a){printf("*"); system("cls");}longfold(NAs){//人名的折叠处理char*p;longsum=0;NAss;strcpy(ss,s);//复制字符串,不改变原字符串的大小写strupr(ss)
此文档下载收益归作者所有