数据结构课程设计报告哈希表实现电话号码查询.docx
- 文档编号:2527140
- 上传时间:2023-05-03
- 格式:DOCX
- 页数:17
- 大小:113.69KB
数据结构课程设计报告哈希表实现电话号码查询.docx
《数据结构课程设计报告哈希表实现电话号码查询.docx》由会员分享,可在线阅读,更多相关《数据结构课程设计报告哈希表实现电话号码查询.docx(17页珍藏版)》请在冰点文库上搜索。
数据结构课程设计报告哈希表实现电话号码查询
数据结构课程设计报告
1、需求分析
1问题描述:
根据需要设计出合理的函数,并由此建立相应的表。
要求:
1)每个电话用户信息包括(姓名,电话,住址)信息。
2)可以使用姓名与地址查找相应的用户信息。
3)使用表实现。
使用开放定址法解决冲突。
2基本要求:
1)记录每个用户的姓名、地址和电话。
2)从键盘输入,以姓名和地址为关键字分别建立表。
3)用开放地址法解决冲突。
4)分别按姓名和地址查找并显示电话号码。
二、概要设计
三、详细设计
定义结构表
{
定义表内的所有成员
}[];
(x[])关键字转换为数值
{
求字符数组x每个字符对应的
值的绝对值之和,并返回最后结果
}
()创建表
{
创建表,并初始化它
}
(d)按姓名插入
{
以姓名为关键字,调用关键字转换函数将对应的电话号码存储到相应的存储
空间。
若该位置已经被存储,则向后移一位(当移到最后一位,就移到头
部继续)。
若还有冲突重复上一步。
当所有空间都查过一遍,发现没有空位,
则输出“没有存储空间”。
}
(d)按地址插入
{
以地址为关键字,调用关键字转换函数将对应的电话号码存储到相应的存储
空间。
若该位置已经被存储,则向后移一位(当移到最后一位,就移到头部
继续)。
若还有冲突重复上一步。
当所有空间都查过一遍,发现没有空位,则
输出“没有存储空间”。
}
()表插入
{
输入用户姓名、地址和电话,分别调用按姓名插入和按地址插入函数进行插入。
重复上面的步骤,直到你不想继续或空间已满。
}
()按姓名查找
{
输入你想要查询的姓名,对它进行转换,再查找。
若该位置不空或求得的关键字
所对应的数值与该位置的数值不相等,则向后移一位(当移到最后一位,就移
到头部继续)。
若还有冲突重复上一步。
当所有空间都查过一遍,发现没有找到,
则输出“不存在”。
若该位置空,则输出“不存在”。
若查找到,则输出电话号码。
}
()按地址查找
{
输入你想要查询的地址,对它进行转换,再查找。
若该位置不空或求得的关键字
所对应的数值与该位置的数值不相等,则向后移一位(当移到最后一位,就移
到头部继续)。
若还有冲突重复上一步。
当所有空间都查过一遍,发现没有找到,
则输出“不存在”。
若该位置空,则输出“不存在”。
若查找到,则输出电话号码。
}
()申明主菜单
()退出
()插入菜单
{
调用表插入函数进行插入。
插入完后,询问是否返回主菜单。
输入y返回主菜单;输入n退出。
}
()查找菜单
{
输出查找菜单,输入1调用按姓名查找函数;输入2调用按地址查找函数;其它
无反映。
询问是否继续,输入y调用查找菜单;输入n则询问是否返回主菜单。
输入y返回主菜单,输入n退出。
}
()主菜单
{
输出主菜单,输入1调用插入菜单;输入2调用查找菜单;输入3退出;
输入其它无反映。
}
()主函数
{
申明表对象。
调用表创建函数。
调用主菜单。
}
四、测试与分析
1主菜单:
2输入用户信息,并插入表:
3查找电话号码:
4按姓名查找:
5按地址查找:
6查找失败:
7存储空间已满:
使用本程序已基本用表实现了题目要求,程序结果已和设计思路基本吻合。
五、总结
通过做这个课程设计,使我对表有了更多的理解。
同时让我对结构的使用也更了解。
进过老师的几次讲解和帮助,是我最终完成了这个程序。
在写详细设计中,我又发现了不少细节问题。
这说明我的程序还有不少可以改进的地方。
而且我这程序没有用到文件流,使的信息无法保存以用作下一次的查找。
这是下个主要改进的地方。
还有如何更高效、更省时是改进的目标。
六、源程序
<>
;
<>
<>
100
DEL-2
m10
p5
;
{
12;
[20];
[20];
12;
12;
}[];
(x[])关键字转换为数值
{
0;
y[100];
(x);
(0<)
{
y[i]((x[i]));
[i];
}
n;
}
()创建表
{
(0<)
{
[i]1;
[i]2;
[i]1;
[i]2;
[i]1=0;
[i]2=0;
}
}
(d)按姓名插入
{
;
;
([]1[]1DEL)
{
[]1;
[]1;
[]1=1;
}
{
1;
{
(1);
;
(i>m)
{
<<"没有存储空间";
;
}
}([]1[]1DEL);
(i<)
{
[]1;
[]1;
[]1;
}
}
;
}
(d)按地址插入
{
;
;
([]2[]2DEL)
{
[]2;
[]2;
[]2=1;
}
{
1;
{
(1);
;
(i>m)
{
<<"没有存储空间";
;
}
}([]2[]2DEL);
(i<)
{
[]2;
[]2;
[]2;
}
}
;
}
()表插入
{
121=02=0;
;
(0<)
{
<<"请输入用户姓名:
"<<;
>>[i];
k1([i]);
<<"请输入用户地址:
"<<;
>>[i];
k2([i]);
<<"请输入用户电话号码:
"<<;
>>d;
(11);
(22);
<<"是否继续输入:
"<<;
>>;
('n');
("");
}
}
()按姓名查找
{
0;
x[20];
<<"输入要查找的姓名:
"<<;
>>x;
(x);
;
([]1[]1)
{
;
(1);
(i>m);
}
([]1)
<<[]1<<;
<<"不存在"<<;
}
()按地址查找
{
0;
x[20];
<<"输入要查找的地址:
"<<;
>>x;
(x);
;
([]2[]2)
{
;
(1);
(i>m);
}
([]2)
<<[]2<<;
<<"不存在"<<;
}
()申明主菜单
()退出
{
<<"***********************************************************"<<;
<<"*********欢迎下次使用**********"<<;
<<"***********************************************************"<<;
}
()插入菜单
{
;
();
<<"是否返回主菜单:
"<<;
>>;
("");
('y')();
();
}
()查找菜单
{
<<"***********************************************************"<<;
<<"*******电话号码查询*******"<<;
<<"***********************************************************"<<;
<<"*******1、按姓名查找*******"<<;
<<"***********************************************************"<<;
<<"*******2、按地址查找*******"<<;
<<"***********************************************************"<<;
<<"*******请输入你的选择:
*******"<<;
<<"***********************************************************"<<;
;
>>;
("");
('1')();
('2')();
();
<<"是否继续查找:
"<<;
>>;
("");
('y')();
{
<<"是否返回主菜单:
"<<;
>>;
("");
('y')();
();
}
}
()主菜单
{
<<"***********************************************************"<<;
<<"********电****话****查****询*******"<<;
<<"***********************************************************"<<;
<<"********1、输入用户信息*******"<<;
<<"***********************************************************"<<;
<<"********2、查找电话号码*******"<<;
<<"***********************************************************"<<;
<<"********3、退出*******"<<;
<<"***********************************************************"<<;
<<"********请输入你的选择:
*******"<<;
<<"***********************************************************"<<;
;
>>;
("");
()
{
'1'();
'2'();
'3'();
<<"请重新输入你的选择:
"<<();
}
}
()
{
;
();
();
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 课程设计 报告 哈希表 实现 电话号码 查询