散列表的设计与实现数据结构课程设计报告文档格式.docx
- 文档编号:22469340
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:11
- 大小:15.87KB
散列表的设计与实现数据结构课程设计报告文档格式.docx
《散列表的设计与实现数据结构课程设计报告文档格式.docx》由会员分享,可在线阅读,更多相关《散列表的设计与实现数据结构课程设计报告文档格式.docx(11页珍藏版)》请在冰豆网上搜索。
addnode()添加节点。
create()新建节点。
create2()新建节点。
list()显示列表。
list2()显示列表。
find()查找用户信息。
save()保存用户信息。
c)详细设计:
#include"
stdio.h"
string.h"
fstream.h"
#include"
iostream.h"
#defineNULL0
unsignedintkey;
unsignedintkey2;
int*p;
structnode
{
charname[8];
charaddress[20];
charnum[11];
node*next;
};
typedefnode*namenode;
typedefnode*phonenode;
node**phone;
node**nam;
voidhaxi(charnum[11]){
inti=3;
key=(int)num[2];
while(num[i]!
=NULL)
key+=(int)num[i];
i++;
}
key=key%20;
}
voidhaxi2(charname[8])
inti=1;
key2=(int)name[0];
while(name[i]!
key2+=(int)name[i];
key2=key2%20;
node*input()
node*temp;
temp=newnode;
temp->
next=NULL;
printf("
输入姓名:
\n"
);
scanf("
%s"
temp->
name);
输入地址:
address);
输入电话:
num);
returntemp;
intaddnode()
node*newphone;
node*newname;
newphone=input();
newname=newphone;
newphone->
newname->
haxi(newphone->
haxi(newname->
next=phone[key]->
next;
phone[key]->
next=newphone;
next=nam[key2]->
nam[key2]->
next=newname;
return0;
voidcreate()
inti;
phone=newphonenode[20];
for(i=0;
i<
20;
i++)
phone[i]=newnode;
phone[i]->
voidcreate2(){
nam=newnamenode[20];
nam[i]=newnode;
nam[i]->
voidlist()
node*p;
p=phone[i]->
while(p)
%s%s%s\n"
p->
name,p->
address,p->
p=p->
voidlist2(){
p=nam[i]->
voidfind(charnum[11]){
haxi(num);
node*q=phone[key]->
while(q!
=NULL)
if(strcmp(num,q->
num)==0)
break;
q=q->
if(q)
q->
name,q->
address,q->
elseprintf("
无此记录\n"
voidfind2(charname[8]){
haxi(name);
node*q=nam[key2]->
if(strcmp(name,q->
name)==0)
voidsave(){
fstreamiiout("
out.txt"
ios:
:
out);
iiout<
<
p->
name<
"
_"
address<
num<
endl;
voidmenu(){
*************************通讯录查询系统***************************\n"
*0.添加记录*\n"
*1.查找记录*\n"
*2.姓名散列*\n"
*3.号码散列*\n"
*4.清空记录*\n"
*5.保存记录*\n"
*6.退出系统*\n"
******************************************************************\n"
intmain()
create();
create2();
intselect;
while
(1)
menu();
%d"
&
select);
if(select==0)
请输入要添加的内容:
addnode();
if(select==1)
1.号码查询\n2.姓名查询\n"
intb;
b);
if(b==1)
请输入电话号码:
num);
输出查找的信息:
find(num);
else
if(b==2)
请输入姓名:
name);
find2(name);
输入错误~\n"
if(select==2)
姓名散列结果:
list2();
if(select==3)
号码散列结果:
list();
if(select==4)
列表已清空\n"
if(select==5)
通信录已保存\n"
save();
if(select==6)
d)调试分析:
首先添加记录,分别输入qqwe111,aasd222,zzxc333三组记录。
查找记录,分别按号码和姓名查询。
查找成功。
姓名散列,把所有添加的记录打印出来。
号码散列,把所有添加的记录打印出来。
保存记录。
得到通讯录txt文档。
但是只可以存储最近添加的记录。
清空记录。
再次查询姓名散列,验证确实清空。
退出系统。
e)课设总结:
通过几天的查找编译对数据结构有了更深的理解锻炼了自己良好的程序习惯。
课程设计过程的收获、遇到问题、遇到问题解决问题过程的思考、程序调
试能力的思考、对数据结构这门课程的思考、在课程设计过程中对《数据结构》
课程的认识等内容
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 列表 设计 实现 数据结构 课程设计 报告