记录设计哈希表实现电话号码查询系统c语言版(课程设计报告)

400电话查询  时间:2021-03-19  阅读:()

设计哈希表实现电话号码查询系统C语言版(课程设计报告)

设计哈希表实现电话号码查询系统

一 目的

通过课程设计,巩固和加深对结构体、文件、哈希表等理论知识的理解掌握现实复杂问题的分析建模和解决方法,掌握包括问题描述、系统分析、设计建模、代码实现、结果分析等的方法;提高利用计算机分析解决综合性实际问题的基本能力锻炼个人动手能力历练自身素质。

哈希表实现电话号码查询系统是利用哈希表实现电话系统的快速查询程序实现哈希表建表和查表并实现对没有查找到的内容进行记录。掌握哈希表的工作原理熟悉建立哈希表、对哈希表冲突处理、哈希表查找等功能的实现回顾文件读取、写入,回顾随机函数的作用。

二需求分析

1.输入的形式和输入值的范围

数据输入分两种模式一种是将原有数据记录在old。  t文档中 由程序读入另一种是由程序随机生成,并储存在nw。 txt文档中。数据的格式为:姓名、 电话号码、家庭住址.

用户使用时显示菜单,用户输入菜单选项完成操作。

2.输出的形式

查找的结果显示在屏幕上。未被查找到的内容输出到u 。 tx文档中。在用户需要时,将哈希表显示在屏幕上。

3.程序所能达到的功能

根据用户的选择从原有文档读入数据或随机生成数据,分别以姓名和电话号码做为关键字生成哈希表。生成哈希表后用户可以根据相应关键字进行数据的查找,若查找到对应的数据则将数据输出到屏幕,若没有查找到对应的数据则将用户输入的查找内容输出到ou 。 txt文档.在用户选择显示哈希表时,显示完整的哈希表。

程序使用文字菜单的友好界面在数据输入时对输入内容进行范围控制。

4。初步测试计划

在 d.tt文档中输入 条记录令程序读入并分别以姓名和电话号码做为关键字生成哈希表查找记录中原有的记录查看输出数据,查找记录中没有的记录查看回馈,查看整个哈希表的数据.

令程序随机生成记录,查看n.tx文档分别以姓名和电话号码做为关键字生

设计哈希表实现电话号码查询系统C语言版(课程设计报告)

成哈希表查看整个哈希表的数据,分别查找原有和没有的记录查看回馈。

三概要设计

 。数据类型

定义结构体类型存储每条记录struc  D a

{

char  me s ize na me ;

  ar phon size on 

chr address   i eaddres s]

ol used;

}hahd ata;

2各种函数说明int   _a ke(char* s  r,it s lct  获得关键字vod so(int i //显示每条信息vod Stoec har str/在没有找到时输出未找到的记录打开文件u  xt并将记录储存在文档中v d Allsow( /输出哈希表中的记录void Auof l(  随机生成数据并将数据保存在 。 txvo id uild_H s(int Ha sTp  //建立哈希表vid Findame( /根据姓名查找哈希表中的记录vi F indhone   //根据电话号码查找哈希表中的记录

四详细设计

 。头文件及定义结构体类型

in lu d e< im 。 h〉

inc ude 〈stdi 。 h>

 clud  tr ng 〉

#in lde<s dli 。 h〉

设计哈希表实现电话号码查询系统C语言版(课程设计报告)struc t ata

  tring name;//st ng phn 

   i  ddre s  ;

 ; Dat hah_aa

2。定义长度

define sizehash1 0

define s  ename 20

d   e sizephone15

#d   e sizeadde  s 4

 .获取关键字函数int ge _hahke char s  ,int selec  

in Key0,ReKe,m

  ar tmp[10]

for  nt =0;  〈str  en   t  ;i++

{

 Key+str i ;



y%=sizehash

  f ha s_dta e u e d

 

m=Key;

 Key— 

 if s  ect==1

{

设计哈希表实现电话号码查询系统C语言版(课程设计报告) o  =0 i0 i+)

{

eKe(+Ai]%siea ;

 if  !ah_aa Reey].sed

 

  KeyReKy

b re ak



}

   se  f(  e  e ==2)

{

 Ke=m

  r(i= ;i<100; ++

  ReKe=eKy+1;

 ReKy=ReKy iz ah;

     hash_ata eKey u ed)

 {

  KeReey

 b re ak;





}

}

etu K 

设计哈希表实现电话号码查询系统C语言版(课程设计报告)

4。产生ha 表

oid Bu d_H h     H sTye) {

fo int i0  〈siehas;   s_ ta i .u ed=fa  eFLE* re   rfoe(DataF ile ” ");

i re ade ==NULL

{

rint ( 读取失败\n”,D ataF il);

 fc ose(r dr)

x t(1 ;



ch   1 0

  a sps 

   r *nae  ar p ho ne car*adre  s;

 n ashKey;whi    !  o f(read  

{

 gets s 1 0  ae r

if s   len s)>0

 nstrtk(s sep s);

hon=strtok L,  p s

add s  trt (NL,     );

   f  hy ==1

{

Hashyg askey ae Hasp); }e  e   Hashype=2

设计哈希表实现电话号码查询系统C语言版(课程设计报告)

{

ashKe=et_ashkey(phone HshTy    }

  f ahey=-  

 

print f( ”哈希表过小或哈希碰撞过多" ;

fc lo  red  

ex  1);

   se 

strcy hs h_dta[H hK e y]。 n,na mes  rcp y hahata as hKe]。 p  e p hoe ;

s  c  h  _d a[H s hKy。 ad  s s, dre s s a _dat Hase use= rue;

}





  l  e    d   ;

}

 在没有找到时输出未找到的记录打开文件ou  xt并将记录储存在文档中vod St e  har *str)/将查找失败记录添加到ou 。 tx文件末尾

 LE  =fop en(”ot txt” ”wa )  以追加的方式写入   (p==NLL)/判断文件是否打开成功

 

p nf "创建ut。 tx失败n )

 f los p)

ex t(1 ;

设计哈希表实现电话号码查询系统C语言版(课程设计报告)}

fsaf p,”s  ,     ;

fc  os pf)

6。输出哈希表中的记录

oidAl  sho  

{

 r(int i= ;  izeash +

 

  f( shda  i].used)

{

sho i

 

}

p ntf(”nn");

7。随机生成数据并将数据保存在ew ttvo id Auo_f le )

FLE p=o en("ew t  " ”w”)

writer。 open("ne.t  ”)

iffp=NULL)

pritf ”创ä¡ä建¡§n tx失º¡ì败㨹  \n )  lo e(f);

设计哈希表实现电话号码查询系统C语言版(课程设计报告) ex t  1 ;

chr s 100]={ };

    k= ;

sran t ime 0) ;

fr it  ; <   i++)

 

meset s,0, 0 );

=0;

//随?机¨²产¨²生¦¨²用®?户¡ì名

 or(int j=0;j8 j++ k++

s k ='a’rnd     



//随机¨²产¨²生¦¨²电Ì话¡ã号码?

s k+ \t ;

 f  (j=0;j<12 ++,+)

{

s[k]=’   ran(%10

}

//随?机¨²产¨²生¦¨²地Ì址¡¤

s[k++ ='\t’  

设计哈希表实现电话号码查询系统C语言版(课程设计报告)fr(j=0;j<20 j+ k+

 

s  =  ’+rnd( 2 

}

fpr ntff  "s",  )

if(i  =49

    nt (p,  \n 

}fcls(fp ;

}

 .根据姓名查找哈希表中的记录in Fnd_y_nme s  r ng nam 

{

i  =0;

in 1

intky;chr* ;for(ey ,p=nam 0];p +)

ey=key+ 

keyky%  

whi  (  

{

 if(  ig k  == 0’&ey 〈=  

 ky+;j++ if as h_ata[e].nme==nme

 reu  k e y

 e   e

RAKsmart新年钜惠:E3服务器秒杀$30/月起,新上韩国服务器,香港/日本/美国站群服务器,VPS月付$1.99起,GPU服务器,高防服务器_vps香港

RAKsmart发布了新年钜惠活动,即日起到2月28日,商家每天推出限量服务器秒杀,美国服务器每月30美元起,新上了韩国服务器、GPU服务器、香港/日本/美国常规+站群服务器、1-10Gbps不限流量大带宽服务器等大量库存;VPS主机全场提供7折优惠码,同时针对部分特惠套餐无码直购每月仅1.99美元,支持使用PayPal或者支付宝等方式付款,有中英文网页及客服支持。爆款秒杀10台/天可选精品网/大...

收到几个新商家投稿(HostMem,无忧云,青云互联,TTcloud,亚洲云端,趣米云),一起发布排名不分先后

7月份已经过去了一半,炎热的夏季已经来临了,主机圈也开始了大量的夏季促销攻势,近期收到一些商家投稿信息,提供欧美或者亚洲地区主机产品,价格优惠,这里做一个汇总,方便大家参考,排名不分先后,以邮件顺序,少部分因为促销具有一定的时效性,价格已经恢复故暂未列出。HostMem部落曾经分享过一次Hostmem的信息,这是一家提供动态云和经典云的国人VPS商家,其中动态云硬件按小时计费,流量按需使用;而经典...

RAKsmart 年中活动 独立服务器限时$30秒杀 VPS主机低至$1.99

RAKsmart 虽然是美国主机商,但是商家的主要客户群还是在我们国内,于是我们可以看到每次的国内节日促销活动期间商家也会发布促销。包括这次年中大促活动,RAKsmart商家也有发布为期两个月的年终活动,其中有商家擅长的独立服务器和便宜VPS主机。服务器包括站群服务器、特价服务器、高达10G带宽不限制流量的美国服务器。商家优惠活动,可以看到对应商品的优惠,同时也可以使用 优惠码 RAKBL9 同时...

400电话查询为你推荐
企业推广如何推广自己公司的产品。centos6.5centos 6.5 无法启动了,不知道是哪里的问题。三五互联南京最专业的网站建设公司是哪家?双尚网络做的好不好? 给分求答案123456hd手机卡上出现符号hd怎么取消谷歌新漏洞google hacking 技术有哪些无忧代理网无忧考网怎么样网上支付功能怎样开通网上支付功能?顽固木马专杀工具腾讯顽固木马专杀怎么授权论坛勋章论坛勋章设置seo基础教程SEO小白如何自学SEO入门到精通
成都主机租用 hostgator 国外idc 163网 10t等于多少g 监控宝 上海域名 河南移动邮件系统 服务器维护方案 cdn联盟 lol台服官网 中国电信测网速 安徽双线服务器 台湾google 英国伦敦 lamp兄弟连 可外链的相册 阿里dns 创速 腾讯云平台 更多