1.1 输入的形式和输入值的范围
1.2 输出的形式
1.3 程序所能达到的功能
1.4 测试数据:包括正确的输入及其输出结果和含有错误的输入及其输出结果
3.1 姓名(结构体数组)初始化。
3.2 建立哈希表。
3.2.1 用除留余数法构建哈希函数。
3.2.2 用伪随机探测再散列法处理冲突。
以无歧义的陈述说明程序设计的任务,强调的是程序要做什么?并明确规定:
1.1 输入的形式和输入值的范围;
1.2 输出的形式;
1.3 程序所能达到的功能;
1.4 测试数据:包括正确的输入及其输出结果和含有错误的输入及其输出结果。
说明本程序中用到的所有抽象数据类型的定义、主程序的流程以及各程序模块之间的层次(调用)关系。
存储结构设计。
typedef struct
char *py; /名字的拼音。
int k拼音所对应的整数。
name;typedef struct //哈希表。
char *py; /名字的拼音。
int k; /拼音所对应的整数。
int si; /查找长度。
hash;例如:void show(listlink head显示所有的信息*/
实现概要设计中定义的所有数据类型,对每个操作只需要写出伪码算法;对主程序和其他模块也都需要写出伪码算法(伪码算法达到的详细程度建议为:按照伪码算法可以在计算机键盘直接输入高级程序设计语言程序);可采用流程图 n – s 图或pad图进行描述,画出函数和过程的调用关系图。
3.1 姓名(结构体数组)初始化。
名字以拼音的形式够成字符串,将字符串的各个字符所对应的ascii码相加,所得的整数做为哈希表的关键字。
void initnamelist
char *f;
int r,s0,i;
namelist[0].py="zengqinghui";
namelist[1].py="mayuelong";
namelist[2].py="chenzhicheng";
namelist[3].py="sunpeng";
namelist[4].py="wanghui";
namelist[5].py="liqingbo";
namelist[6].py="liujunpeng";
namelist[7].py="jiangquanlei";
namelist[8].py="xingzhengchuan";
namelist[9].py="luzhaoqian";
namelist[10].py="gaowenhu";
namelist[11].py="zhuhaoyin";
namelist[12].py="chenlili";
namelist[13].py="wuyunyun";
namelist[14].py="huangjuanxia";
namelist[15].py="wangyan";
namelist[16].py="zhoutao";
namelist[17].py="jiangzhenyu";
namelist[18].py="liuxiaolong";
namelist[19].py="wangziming";
namelist[20].py="fengjunbo";
namelist[21].py="lilei";
namelist[22].py="wangjia";
namelist[23].py="zhangjianguo";
namelist[24].py="zhuqingqing";
namelist[25].py="huangmin";
namelist[26].py="haoyuhan";
namelist[27].py="zhoutao";
namelist[28].py="zhujiang";
namelist[29].py="lixiaojun";
for(i=0;i
3.2 建立哈希表
3.2.1 用除留余数法构建哈希函数。
3.2.2 用伪随机探测再散列法处理冲突。
void createhashlist()
int i;
for(i=0; i
for(i=0;i
else //冲突
3.3 查找哈希表。
在哈希表中进行查找,输出查找的结果和关键字,并计算和输出查找成功的平均查找长度。
void findlist()
char name[20]=;
int s0=0,r,sum=1,adr,d;
printf("请输入姓名的拼音:")
scanf("%s",name);
for(r=0;r<20;r++)求出姓名的拼音所对应的整数(关键字)
s0+=name[r];
adr=s0%m; /使用哈希函数。
d=adr;
if(hashlist[adr].k==s0分3种情况进行判断。
printf("姓名:%s 关键字:%d 查找长度为: 1",hashlist[d].py,s0);
else if (hashlist[adr].k==0)
printf("无此记录!")
elsewhile(g==0);
3.4 显示哈希表。
显示哈希表的的格式:
n地址\t关键字\t\t搜索长度\th(key)\t 姓名。
void display()
int i;
float **erage=0;
printf("地址\t关键字\t\t搜索长度\th(key)\t 姓名");显示的格式。
for(i=0; i<50; i++)
{ printf("%d ",i);
printf("\t%d ",hashlist[i].k);
数据结构课程设计报告参考
山东理工大学计算机学院。课程设计。数据结构 二 一 年七月十日。课程设计任务书及成绩评定。题目的目的和要求。1 设计目的。巩固和加深对数据结构的理解,通过上机实验 调试程序,加深对课本知识的理解,最终使学生能够熟练应用数据结构的知识写程序。1 通过本课程的学习,能熟练掌握几种基本数据结构的基本操作。...
数据结构课程设计报告
东莞理工学院城市学院。题目 二叉排序树 专业 计算机科学与技术 本 年级 2010级计算机科学与技术专业 1 班。个人姓名 何振江。指导教师 张娟老师 时间 2010至2011第二学期第18周 地点 实验楼615机房 东莞理工学院城市学院计算机与信息科学系制。2011年 6月。实习报告的内容。一 问...
数据结构课程设计报告
设计一个校园导游程序,为来访的客人提供信息查询服务。1 设计学校的校园平面图。选取若干个有代表性的景点抽象成一个无向带权图 无向网 以图中顶点表示校内各景点,边上的权值表示两景点之间的距离。2 存放景点代号 名称 简介等信息供用户查询。3 为来访客人提供图中任意景点相关信息的查询。4 为来访客人提供...