数据结构课程设计通讯录查询系统实验报告及源代码 - 图文 联系客服

发布时间 : 星期三 文章数据结构课程设计通讯录查询系统实验报告及源代码 - 图文更新完毕开始阅读18940f29a4e9856a561252d380eb6294dd8822e8

数据结构课程设计报告

项目名称:停车管理系统

姓名:鉏飞祥 学号:E21414018 专业:软件工程

安徽大学

1 .需求分析

?

为某个单位建立一个员工通讯录管理系统,可以方便查询每一个

员工的电话与地址。设计散列表存储,设计并实现通讯录查找系统。 1.基本要求

? ? ? ? ? ? ? ?

(1)每个记录有下列数据项:电话号码、用户名、地址; (2)从键盘输入各记录,分别以电话号码为关键字建立散列表; (3)采用二次探测再散列法解决冲突; (4)查找并显示给定电话号码的记录; (5)通讯录信息文件保存。 2.重点、难点 重点:

(1)通过实验深入理解哈希表既是一种存储形式,又是一种查

找方法;

? ? ?

(2)哈希表的构造; (3)哈希冲突方案的设计。

难点:哈希表的构造与哈希冲突方案的设计

(1) 输入的形式和输入值的范围; (2) 输入三个字符串:

分别是电话号码,姓名,地址,每行一个数据 字符串长度适当 如: 15556931615 鉏飞祥 安徽合肥 (3) 输出的形式;

输入联系人信息,每行包括一个联系人的姓名电话地址 如:

鉏飞祥 15556931615 安徽合肥

1

(4) 程序所能达到的功能。 1:

输入联系人,支持多组输入;

并且通过电话号码为关键字,用二次再散列法寻找地址储存在哈希表中。

2:

查找联系人信息,可以通过电话号码,姓名,地址三种方式为关键字进行查找。

3: 删除联系人 4:

修改联系人信息。 5:显示通讯录

6:把通讯录写入文件储存。

2. 概要设计 (1) 数据结构

用结构体存储每个联系人的信息 struct list {

char a[12]; char name[15]; char add[15]; int f=0; };

f为储存标志,若为1,表示该联系人存在哈希表中 用连续的内存空间构建哈希表 structsqstack {

2

struct list *base; inti; };

(2)程序模块 1:

构建二次再散列: inti;

for(i=1;i<25;i++) d[2*i]=-1*i*i;

for(i=1;i<25;i++)/*构造二次再散列*/ d[i+i-1]=i*i; 2:主菜单: void interface() { inti;

printf(\

printf(\请输入操作指令\\n*\\n* 1:输入通讯录\\n* 2:显示通讯录\\n* 3:查找联系人\\n* 4:删除联系人\\n* 5:修改联系人信息\\n* 6:保存到文件\\n* 0:结束程序\\n\

printf(\scanf(\switch(i) {

case 0:return ;break; case 1:shuru();break; case 2:print();break; case 3:seach();break; case 4:del();break;

3