信息学院课程设计。
题目: 哈希表及其应用
姓名: 毕海滨。
学号: 201112120201
班级: 11级网络工程本二
课程: 数据结构。
任课教师杨振。
2024年12月。
课程设计任务书及成绩评定。
目录。1 概述3
2 设计目的3
3 设计功能说明3
4 详细设计说明4
5 流程图4
6 程序**5
7 程序运行结果13
8 总结16
参考文献17
1 概述。数据结构是一门理论性强、思维抽象、难度较大的课程,是基础课和专业课之间的桥梁,只有进行实际操作,将理论应用于实际中,才能确实掌握书中的知识点。通过课程设计,不仅可以加深学生对数据结构基本概念的了解,巩固学习成果,还能够提高实际动手能力。
为学生后继课程的学习打下良好的基础。
2 设计目的。
1.使学生能够较全面地巩固和应用课堂中所学的的基本理论和程序设计方法,能够较熟练地完成程序的设计和调试。
2.培养学生综合运用所学知识独立完成程序课题的能力。
3.培养学生勇于探索、严谨推理、实事求是、有错必改,用实践来检验理论,全方位考虑问题等科学技术人员应具有的素质。
4.提高学生对工作认真负责、一丝不苟,对同学团结友爱,协作攻关的基本素质。
5.培养学生从资料文献、科学实验中获得知识的能力,提高学生从别人经验中找到解决问题的新途径的悟性,初步培养工程意识和创新能力。
6.对学生掌握知识的深度、运用理论去处理问题的能力、实验能力、课程设计能力、书面及口头表达能力进行考核。
本次课程设计目的主要是掌握哈希表的各种操作。
3 设计功能分析。
哈希表及其应用设计的功能如下:
1、利用哈希函数来实现一个小型信息管理系统,其中信息包含用户名,地址,**等。
2、能添加用户信息,并能保存该信息。
3、查询管理系统中的信息:可通过姓名查找,也可通过**查找等两种方式。
4、能散列管理系统中的信息,保存信息等功能。
显示元素:显示已经创建的哈希表。
查找元素:查找哈希表中的元素,分为查找成功和查找不成功。
插入元素:在哈希表中,插入一个元素,分为插入成功和失败。
删除元素:在已有的数据中,删除一个元素。
退出系统:退出程序。
4 详细设计说明。
哈希表是一种重要的存储方式,也是一种常见的检索方法。其基本思想是将关系码的值作为自变量,通过一定的函数关系计算出对应的函数值,把这个数值解释为结点的存储地址,将结点存入计算得到存储地址所对应的存储单元。检索时采用检索关键码的方法。
1) 假定每个记录有下列数据项:用户名、**号码、地址。
2) 初始记录为空,通过不断添加记录,并保存到数据文件中。
3) 分别采用线性和平方探测解决冲突。
4) 查找并显示给定**号码的记录;查找并显示给定用户。
名的记录。5 流程图。
6 程序**。
#include <>
#include
#include
#include
using namespace std;
#define maxsize 57
struct record
char name[20];
char tel[20];
char add[20];}
typedef record *precord;
struct hashtable
int elem[maxsize]; 存放数组a的下标。
int count;};
typedef hashtable * phashtable;
int number; /统计当前数组a中的记录总数。
void getdata(precord a) /从文件中读取数据存放到数组a
number=0;
ifstream infile(""ios::in|ios::binary);
if(!infile)
while(! 文件不为空并且文件指针没有指到结束符。
//定位文件指针。
*)&a[number],sizeof(a[number]))
number++;
void add(precord a) /添加记录。
int i,num;
cout<<"当前文件内已有" cin>>num; ofstream ofile(""ios::app); if(!ofile) for(i=0;i void print(precord a) /显示所有记录。 int i; for(i=0;i int hash(char str)除留取余。 long val=0;char p[20],*p1; strcpy(p,str); p1=p;while(*p1!='0') val=val+*p1++;将字符串中的所有字符对应的ascii值相加。 return(val%maxsize); int derter; /线性增量。 int line_sollution(int address) /采用线性探测解决冲突。 derter++; if(derter==maxsize) return(-1); else return((address+derter)%maxsize); int n; int square_sollution(int address) /采用平方探测法解决冲突。 int j;derter++; if(derter==maxsize) return -1; n=n*(-1); j=(int(pow((float)derter,2))*n+address)%maxsize; return(j);} void init_hash(phashtable h) /初始化哈希表。 int i; for(i=0;ih->elem[i]=-1; int menu; void creathash_name(phashtable h,precord a)//以员工姓名为关键字创建哈希表。 cout 课程设计说明书 题目哈夫曼编码问题的设计和实现。课程名称数据结构课程设计。院 系 部 中心。专业。班级。学生姓名。学号。设计地点。指导教师。设计起止时间 2008 年6月 2日至 2008 年 6月 6 日。目录。1 问题描述 2 1.1 题目内容 2 1.2 基本要求 2 1.3 测试数据 2 2... 数据结构 课程设计。实验报告。学院 信息工程学院。班级 姓名 学号 指导老师 题目2 一元多项式的计算。1 实验目的。1 掌握链表的灵活运用 2 学习链表初始化和建立一个新的链表 3 知道怎样去实现链表删除结点操作与插入结点 4 理解链表的基本操作 包括数据域数据的相加 并能灵活运用。2 实验内容。... 班级 信计 1102 姓名 李娜娜。学号 1108060209 设计日期 2013.07.15 西安科技大学计算机学院 1.实验题目 编制一个演绎扫雷游戏的程序。2.问题描述。做一个n x m的扫雷游戏,每个方格包含两种状态 关闭 closed 和打开 opened 初始化时每个方格都是关闭的,一个...数据结构课程设计
数据结构课程设计
数据结构课程设计