1、 王 辉 学 号: 154 电子邮件: 完成提交时间: 2010 年 12 月 27 日云南大学软件学院2010学年 秋季 学期数据结构实验成绩考核表学号: 姓名: 本人承担角色: 评分项目评分指标分值得分实验构思(10%)1. 实验目的明确52. 实验内容理解透彻、对实验所涉及到的知识点分析到位实验设计(15%)1. 有对基本数据结构的抽象数据类型定义2. 实验方案设计完整,数据结构、算法选择合理 3.算法结构和程序功能模块之间逻辑清晰、有相应的流程图实验实现(25%)1. 代码编写规范、风格统一、注释清楚易读 2. 程序运行正常,测试结果正确153. 界面友好、易于操作、有较强的容错性实验
2、报告撰写(10%)1. 内容详实无缺漏,文字流畅、图表清楚2. 实验结果分析客观、详细,实验体会真实可信,对原实验方案的改进和对实验内容的发散性思考个人工作量(30%)1. 个人完成工作量2. 个人技术水平103. 团队合作精神实验运作(10%)1. 有一定用户群2. 应用前景分析综合得分: (满分100分)指导教师: 年 月 日(注:此表在难度为C时使用,每个成员一份。)(下面的内容由学生填写,格式统一为,字体: 楷体, 行距: 固定行距18,字号: 小四,个人报告按下面每一项的百分比打分。难度A满分70分,难度B满分90分)一、【实验构思(Conceive)】(10%)1 哈希表查找。根据
3、全年级学生的姓名,构造一个哈希表,选择适当的哈希函数和解决冲突的方法,设计并实现插入、删除和查找算法。熟悉各种查找算法的思想。2、掌握查找的实现过程。3、学会在不同情况下运用不同结构和算法求解问题。4 把每个学生的信息放在结构体中: typedef struct /记录 NA name; NA tel; NA add;Record;5 void getin(Record* a)函数依次输入学生信息6 人名折叠处理,先将用户名进行折叠处理折叠处理后的数,用除留余数法构造哈希函数 ,并返回模值。并采用二次探测再散列法解决冲突。7姓名以汉语拼音形式,待填入哈希表的人名约30个,自行设计哈希函数,用线
4、性探测再散列法或链地址法处理冲突;在查找的过程中给出比较的次数。完成按姓名查询的操作。将初始班级的通讯录信息存入文件。二、【实验设计(Design)】(20%)(本部分应包括:抽象数据类型的功能规格说明、主程序模块、各子程序模块的伪码说明,主程序模块与各子程序模块间的调用关系)1抽象数据类型的功能规格说明和结构体:#includestdlib.hstring#include #define MAXSIZE 20 /电话薄记录数量 #define MAX_SIZE 20 /人名的最大长度#define HASHSIZE 53 /定义表长 #define SUCCESS 1#define UNSU
5、CCESS -1#define LEN sizeof(HashTable)typedef int Status;typedef char NAMAX_SIZE;typedef struct /记录typedef struct /哈希表 Record *elemHASHSIZE; /数据元素存储基址 int count; /当前数据元素个数 int size; /当前容量HashTable;2 主函数与各子函数的调用关系:(通过switch(num)函数按不同功能要求分别调用相关函数)int main(int argc, char* argv) system(color 61); int c,f
6、lag=1; HashTable *H; H=(HashTable*)malloc(LEN); for(int i=0;ielemi=NULL;size=HASHSIZE;count=0; Record aMAXSIZE; while (1) printf(n wang huin n 我的未来不是梦 n 无聊中郁闷死 n n 欢迎欢迎欢迎欢迎欢迎欢迎 n n 哈希表的设计与实现 n 【】. 添加用户信息 n 【】. 读取所有用户信息 n 【】. 以姓名建立哈希表(再哈希法解决冲突) n 【】. 以电话号码建立哈希表(再哈希法解决冲突) n 【】. 查找并显示给定用户名的记录 n 【】. 查找并
7、显示给定电话号码的记录 n 【】. 清屏 n 【】. 保存 n 【】. 退出程序 n 温馨提示: n .进行操作前请先输出 n .进行操作前请先输出 n n请输入一个任务选项 int num; scanf(%d,&num); switch(num) case 1: getin(a); break; case 2: ShowInformation(a); case 3: CreateHash1(H,a); /* 以姓名建立哈希表*/ case 4: CreateHash2(H,a); /* 以电话号码建立哈希表*/ case 5: c=0; SearchHash1(H,c); case 6: SearchHash2(H,c); case 7: Cls(a); case 8: Save(); case 9: return 0; default:你输错了,请重新输入! pause三、【实现描述(Implement)】(30%)抽象数据类型具体实现的函数原型说明、 关键操作实现的伪码算法、 函数设计、函数间的调用关系,关键的程序流程图等,给出关键算法的时间复杂度分析。 1 主函数打印和主子函数调用:n 申 平 case
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1