- 1、本文档共19页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结程序课程设计—散列表的设计与实现
XXXXXX学院
计算机类
课程设计报告
课程名称:
数据结构程序设计
课程设计题目:
散列表的设计与实现
姓 名:
系:
计算机系
专 业:
计算机科学与技术
年 级:
08级
学 号:
指导教师:
职 称:
2010年 6
XXXXXXXXXXX计算机类
课程设计结果评定
序号
评 定 项 目
分值
得分
1
选题合理、目的明确
10
2
设计方案正确,具有可行性、创新性
20
3
程序运行结果正确
20
4
态度认真、学习刻苦、遵守纪律
15
5
设计报告的规范化、参考文献充分(不少于5篇)
10
6
答辩:思路清晰,语言表达准确,概念清楚、正确
25
最后得分
指导老师(签名)
日期
年 月 日
目 录
1.课程设计的目的………………………………………………………………4
2.课程设计的要求………………………………………………………………4
3.课程设计报告内容……………………………………………………………4
4.课题分析 ·····················································12
5.课题设计结果及体会···············································14
6.参考文献………………………………………………………………………15
散列表的设计与实现
1.课程设计的目的
掌握数据结构的基础技术,学会分析研究计算机加工的数据结构的特性,以便为应用涉及的数据选择适当的逻辑结构、存储结构及其相应的算法,应用相关知识设计设散列表实现电话号码查找系统。
2.课程设计的要求
1)设每个记录有下列数据项:电话号码、用户名、地址;
2)从键盘输入各记录,分别以电话号码和用户名为关键字建立散列表;
3)采用一定的方法解决冲突;
4)查找并显示给定电话号码的记录;
5)查找并显示给定用户名的记录。
【进一步完成内容】
1)系统功能的完善;
2)设计不同的散列函数,比较冲突率;
3)在散列函数确定的前提下,尝试各种不同类型处理冲突的方法,考察平均查找长度的变化。
3.课程设计报告内容
程序代码
#includestdio.h
#includestdlib.h
#includestring
#include windows.h
#define MAXSIZE ?20 ?//电话薄记录数量
#define MAX_SIZE 20 ???//人名的最大长度
#define HASHSIZE 53 ???//定义表长 ?
#define SUCCESS 1
#define UNSUCCESS -1
#define LEN sizeof(HashTable)
typedef int Status;
typedef char NA[MAX_SIZE];
typedef struct{//记录
NA name;
NA tel;
NA add;
}Record;
typedef struct{//哈希表
Record *elem[HASHSIZE]; ???//数据元素存储基址
int count; ????????????//当前数据元素个数
int size; ?????????????//当前容量
}HashTable;
Status eq(NA x,NA y){//关键字比较,相等返回SUCCESS;否则返回UNSUCCESS
if(strcmp(x,y)==0)
?return SUCCESS;
else return UNSUCCESS;
}
Status NUM_BER; ???//记录的个数
void getin(Record* a){//键盘输入各人的信息
printf(输入要添加的个数:\n);
scanf(%d,NUM_BER);
int i;
for(i=0;iNUM_BER;i++){
?printf(请输入第%d个记录的用户名:\n,i+1);
?scanf(%s,a[i].name);
?printf(请输入%d个记录的电话号码:\n,i+1);
?scanf(%s,a[i].tel);
?printf(请输入第%d个记录的地址:\n,i+1);
?scanf(%s,a[i].add); ??????//gets(str2);??????
}
}
void ShowInformation(Record* a)//显示输入的用户信息
{
int i;
for( i=0;iNUM_BER;i++) ?????????????????
?printf(\n第%d个用户信息:\n 姓 ???名:%s\n 电话号码:%s\n 联系地址:%s\n,i+1,a[i]
您可能关注的文档
最近下载
- 最新石灰生产危险源辨识、风险分析资料.docx VIP
- 船体装配工培训.pptx
- 新版人教版七年级英语上册书面表达及范文.pptx
- 2023-2024学年山东省潍坊市九年级(上)期末物理试卷.docx
- 广东省广州市增城区2022-2023学年九年级上学期期末英语试题(答案).docx VIP
- 《审计基础》课程标准.pdf
- 2024-2025学年度南京市鼓楼区三年级语文第一学期期末真题模拟检测.docx
- 餐饮服务员岗位培训.pptx
- 寒假放假安全教育主题班会PPT.pptx VIP
- 沪教版(2024)七年级上册Unit 1 Friendship 语法 Grammar 特殊疑问句(含解析).docx VIP
文档评论(0)