数据结构电话号码查询系统设计报告及代码Word文件下载.docx
- 文档编号:17476689
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:7
- 大小:30.29KB
数据结构电话号码查询系统设计报告及代码Word文件下载.docx
《数据结构电话号码查询系统设计报告及代码Word文件下载.docx》由会员分享,可在线阅读,更多相关《数据结构电话号码查询系统设计报告及代码Word文件下载.docx(7页珍藏版)》请在冰豆网上搜索。
主要参考资料等:
数据结构课本(c语言版)
完成期限:
21012年6月21号
指导教师签名:
课程负责人签名:
12年6月21日
郑州轻工业学院本科
数据结构课程设计总结报告
设计题目:
电话号码查询系统
学生姓名:
王平
系别:
计算机科学与通信工程学院
专业:
计算机科学与技术
班级:
10-01
学号:
41
指导教师:
卢冰、李晔
2012年6月21日
设计题目
题目:
每个记录有下列数据项:
电话号码、用户名、地址;
运行环境(软、硬件环境)
算法设计的思想
电话号码查询系统主要是考察我们对哈希查找的掌握。
题目要求用电话号码和姓名两种方式查找;
第一大部份是用电话号码查找,第二部分是用姓名查找。
1:
电话号码查找(先建立哈希表读入数据,然后再处理冲突,查找):
在这部分中,我用了除留取余法和数字分析法设计的哈希表,用的是开放定址法进行的冲突处理。
除留取余法思想:
取关键字被某个不大于哈希表表长的数p除后所得余数为哈希地址即:
H(key)=key%p。
数字分析法:
已知关键字是以r为基础的数,哈希表中出现的关键字是事先知道的,选择关键字是候,我们应该尽量避免冲突。
开放地址法:
开放地址法主要公式;
H=(H+di)%m,di的取法有三种,但是我的程序中只用到了线性探测在散列,本可以用再哈希函数解决冲突的,但是考虑到再哈希函数会增加计算时间,所以就没用。
2:
姓名查找(先建立哈希表读入数据,然后再处理冲突,查找)方式:
这个过程中,我选取了数字分析法,解释如上。
主菜单的设计在设计效果上已经显示,不过多说明。
算法的流程
主菜单建立->除留取余和数字分析法存储->开放地址法解决冲突->查找。
算法设计分析
这段代码是哈希存储时从第三个数开始求,提高了代码效率。
inti=3;
while[i]!
='
\0'
)um,"
"
))um,"
))j++;
[(key+j)%21]=s;
}
}
查找代码;
while(xnum[i]!
)
{
key+=(xnum[i]-'
0'
);
um,xnum))ame,[key].address,[key].num);
else
{um,xnum))j++;
if(j==20)
printf("
查找元素不存在!
else
%s%s%s\n"
[(key+j)%21].name,[(key+j)%21].address,[(key+j)%21].num);
um,"
printf("
请输入您要查找的电话号码:
))
[key]=s;
{
i=1;
m1++;
while(strcmp[(key+i)%10000].num,"
))i++;
[(key+i)%10000]=s;
um,xnum))
printf("
%s%s%s"
[key].name,[key].address,[key].num);
{
intj=1;
while(strcmp[(key+j)%10000].num,xnum))j++;
[(key+j)%10000].name,[(key+j)%10000].address,[(key+j)%10000].num);
}
voidfenxi()
{
Qnodeq2;
请输入您要输入的数据个数:
intn,m1,m2;
memset,0,sizeof);
ame,"
while(strcmp[(key+i)%10000].name,"
请输入您要查找的名字:
ame,xname))
while(strcmp[(key+j)%10000].name,xname))j++;
voidmenu()
********电话号码查询系统********\n"
用电话号码查询1\n"
用用户名查询2\n"
********************************\n"
请输入您要的选项:
\n"
intx,y;
while(scanf("
%d"
&
x)!
=-1)
if(x==1)
********电话号码查询********\n"
除留取余法1\n"
数字分析法2\n"
****************************\n"
请输入y值:
scanf("
y);
while(y<
3)
switch(y)
{
case1:
chuliu();
break;
//调用除留取余函数
case2:
shuzi();
//调用数字分析函数
default:
printf("
输入指令不存在!
}
elseif(x==2)
********用户名查询********\n"
分析法3\n"
fenxi();
//调用分析函数
查找方式不存在!
请重新输入\n"
intmain()//函数
menu();
return0;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 电话号码 查询 系统 设计 报告 代码
![提示](https://static.bdocx.com/images/bang_tan.gif)