版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
小型号码查询系统王雨娉目录TOC\o"1-3"\u摘要11绪论12系统分析12.1功能需求12.2性能需求23总体设计23.1功能模块设计23.2系统设计方案34详细设计44.1系统信息添加和结果显示模块44.2系统信息保存和清空操作模块64.3系统信息查询模块75调试与测试95.1调试95.2测试106结论10结束语10参考文献10附录1-用户手册11附录2-源程序15摘要当前社会已经步入了一个信息化的时代,随着社会劳动生产率的不断提高,与之相对应的信息查询效劳系统也在不断的完善。本程序运用查找函数和结构体的建立,构建的哈希表采用再哈希的方法解决冲突,实现号码及有相关信息的准确查询,同时编译了对信息的保存和清空函数,使该号码的查询系统操作起来更加自如。本文从分析课题的题目背景、题目意义、题目要求等出发,分别从需求分析、总体设计、详细设计、测试等各个方面详细介绍了系统的设计与实现过程,最后对系统的完成情况进行了总结。关键词:哈希表;再哈希法;查找函数1绪论高度信息化的年代里,号码信息系统的出现正是当前时代开展的需要,它的出现给我们的工作生活无疑带来了很多方便。编程人员通过对号码及其相关信息查询功能的不断编写和完善,来尽量满足人们的需要。根据课程设计任务书要求,本程序的开发主要完成以下功能和性能。(1)设置一个包括用户姓、地址、号码的信息的结构体。(2)编译voidCreate()函数来创立结点,运用intApend()函数来添加结点信息,通过node*Input()函数来对用户的信息进行存储。(3)编译函数voidList()、voidList2()分别根据号码和姓名的查询方式显示用户信息的哈希结果,并且结果会在屏幕上显示出来。(4)编译voidFind(charnum[11])、voidFind2(charname[8])函数分别根据用户的号码和姓名对用户的详细信息进行查找,当要查询的结果不在系统存储时,屏幕上将显示“无此记录〞。(5)按“7”键退出系统查询2系统分析2.1功能需求本程序需要对各个组分的函数进行调用。需要有添加、按各个要求的查询、清空、查找、退出等功能;运用MicrosoftVisualC++6.0软件将程序按要求编译出来;根据数字选项的提示实现各个功能。2.2性能需求通过游戏的编译,需要用“1〞、“2〞、“3〞、“4〞、“5〞、“6〞、“7〞选择操作选项,一一实现各个功能。退出操作时,按“7〞键来结束操作。3总体设计3.1功能模块设计根据分析整个系统主要划分为3个功能模块,在系统信息添加和结果显示模块中将用户信息存储在结构体structnode中;在系统信息保存和清空操作模块中,根据操作需要实现保存和清空操作;根据屏幕上的提示去实现各个功能,“7〞键退出。如图1所示。图1功能模块图〔1〕系统信息添加和结果显示模块该模块用结构体实现用户信息的存储,并将储存的信息输出。(2)系统信息保存和清空操作模块该模块主要是根据操作者自己的需要来实现保存和清空函数的功能。(3)系统信息查询模块操作者通过该模块提示去实现各个功能,按“7〞键操作退出。3.2系统设计方案设计小型号码查询要实现多个功能,所以采用菜单设计的方式进行各项功能的查询,既方便又简洁。(1)系统循环控制:该系统用for循环控制实现号码、用户名、地址的输入和查询输出。(2)设计抽象数据类型定义:ADTTriplet{数据对象:D={e1,e2,e3|e1,e2,e3∈ElemSet}数据关系:R1={<e1,e2><e2,e3>}根本操作:node*Input〔〕初始条件:存储用户名name[8]、号码num[11]和地址adress[20]的结点已经存在。操作结果:根据用户名、号码、地址的三个变量将信息存储。voidList〔〕操作结果:输出用户名、号码、地址。voidFind〔〕初始条件:根据用户名〔name〕或号码〔num〕或地址〔adress〕查找。操作结果:输出查找结果。}ADTTriplet(3)存储结构:用哈希表进行存储。(4)算法设计:用号码、用户名、地址建立哈希表,存储信息,然后根据各关键字查找信息。4详细设计4.1系统信息添加和结果显示模块系统信息添加和结果显示模块主要运用node*Input()和intApend()函数实现节点的输入和添加,然后执行函数voidList()和voidList2()把存储的信息输出。如图2和图3。图2voidList()用户信息输出的流程图图3voidList2()用户信息输出的流程图4.2系统信息保存和清空操作模块在主函数中调用voidSave()函数,保存用户的详细信息,调用函数voidCreate()和voidCreate2()即可清空用户信息。如图4。图4voidSave()系统信息保存的流程图4.3系统信息查询模块信息查找分两种情况,voidFind(charnum[11])函数是根据号码查找用户的其它信息,将从键盘输入的号码传入此函数,当系统存有和要查找的用户号码一致时,系统将该用户的名字和地址输出,否那么,输出“无此记录〞的警告。同理,voidFind2(charname[8])函数根据用户姓名来查找地址和号码,两个函数用了相同的求法。如图5和图6.图5voidFind2(charname[8])按姓名查找的流程图图6voidFind(charnum[11])按号码查找的流程图5调试与测试5.1调试(1)软件不能识别与有些有关的函数产生原因:缺少相关的文件头文件。解决方法:iotream,string.h,fstream,三个头文件缺一不可。(2)信息查找有误产生原因:没有处理好冲突问题。解决方法:修改处理冲突的函数语句,使函数正常运行,此程序用到的处理冲突的方法有再哈希法,问题即得到解决。5.2测试此小型号码查询的功能都能一一实现了,和其相关的程序也正常运行,成功实现用号码或姓名这两种查找方法,函数哈希的冲突也得到正确解决,对错误或要保存的信息可以进行清空或保存,操作者根据提示,选择不同的选项,按照自己的意愿去实现函数的不同功能。退出时,按“7〞键结束。6结论数据结构综合训练顺利完成,题目所要求的功能也都一一实现了,小型号码查询的功能也如愿实现。但是,该程序还不够完美,假设设计相关程序,将用户全部信息保存在新建的文件夹里,那么,就能更好的降低运行过程中人为的造成数据丧失的可能。此程序的编译也就更趋于完美了。结束语总算完成了这次数据结构综合训练,这次训练让我深刻体会到平时的知识积累有多重要,虽然它所涉及的哈希函数是我们的课本知识,但是,仅仅局限于书本的内容根本就缺乏以成功完成这次课程设计,在数据结构的课外辅导书里我找到了很多有用的知识点,值得借鉴的知识点。这次课设对我来讲最大的收获是:学好一门语言,需要不断的去琢磨,去突破,把眼光立足于课本之外,找寻更多更有价值的知识。^_^!参考文献[1]谭浩强.C语言程序设计(第三版).清华大学出版社[2]姜灵芝,余健.C语言程序设计教程.中国电力出版社,2006[3]严蔚敏,吴伟民.数据结构〔C语言版〕.清华大学出版社附录1-用户手册登录即显示如图5所示界面。图5主界面在此界面通过选择“1〞、“2〞、“3〞、“4〞、“5〞、“6〞、“7〞键,根据以上选项选择需要操作的键,按“Enter〞键确定,函数自动开始运行,函数运行结束,按退出时按“Q〞键退出操作。选择“1”键,根据要求添加用户的姓名,地址,号码,如图6图6主界面选择“2〞键按姓名哈希的结果如图7所示图7主界面选择“3〞键,然后根据提示分别选择“8〞键和“9〞,结果如图8所示。图8主界面选择“4〞键,结果如图9所示。图9主界面选择“5〞键和“7〞键后的结果如图10所示。图10主界面附录2-源程序#include<iostream>#include<string.h>#include<fstream>#defineNULL0unsignedintkey;unsignedintkey2;int*p;structnode//建节点{charname[8],address[20];charnum[11];node*next;};typedefnode*pnode;typedefnode*mingzi;node**phone;node**nam;node*a;usingnamespacestd;//使用名称空间voidHash(charnum[11])//哈希函数{inti=3;key=(int)num[2];while(num[i]!=NULL){key+=(int)num[i];i++;}key=key%20;}voidHash2(charname[8])//哈希函数{inti=1;key2=(int)name[0];while(name[i]!=NULL){key2+=(int)name[i];i++;}key2=key2%20;}node*Input()//输入节点{node*temp;temp=newnode;temp->next=NULL;cout<<"输入姓名:"<<endl;cin>>temp->name;cout<<"输入地址:"<<endl;cin>>temp->address;cout<<"输入:"<<endl;cin>>temp->num;returntemp;}intApend()//添加节点{node*newphone;node*newname;newphone=Input();newname=newphone;newphone->next=NULL;newname->next=NULL;Hash(newphone->num);Hash2(newname->name);newphone->next=phone[key]->next;phone[key]->next=newphone;newname->next=nam[key2]->next;nam[key2]->next=newname;return0;}voidCreate()//新建节点{inti;phone=newpnode[20];for(i=0;i<20;i++){phone[i]=newnode;phone[i]->next=NULL;}}voidCreate2()//新建节点{inti;nam=newmingzi[20];for(i=0;i<20;i++){nam[i]=newnode;nam[i]->next=NULL;}}voidList()//显示列表{inti;node*p;for(i=0;i<20;i++){p=phone[i]->next;while(p){cout<<p->name<<'_'<<p->address<<'_'<<p->num<<endl;p=p->next;}}}voidList2()//显示列表{inti;node*p;for(i=0;i<20;i++){p=nam[i]->next;while(p){cout<<p->name<<'_'<<p->address<<'_'<<p->num<<endl;p=p->next;}}}voidFind(charnum[11])//查找用户信息{Hash(num);node*q=phone[key]->next;while(q!=NULL){if(strcmp(num,q->num)==0)break;q=q->next;}if(q)cout<<q->name<<"_"<<q->address<<"_"<<q->num<<endl;elsecout<<"无此记录"<<endl;}voidFind2(charname[8])//查找用户信息{Hash2(name);node*q=nam[key2]->next;while(q!=NULL){if(strcmp(name,q->name)==0)break;q=q->next;}if(q)cout<<q->name<<"_"<<q->address<<"_"<<q->num<<endl;elsecout<<"无此记录"<<endl;}voidSave()//保存用户信息{inti;node*p;for(i=0;i<20;i++){p=phone[i]->next;while(p){fstreamiiout("out.txt",ios::out);iiout<<p->name<<"_"<<p->address<<"_"<<p->num<<endl;p=p->next;}}}voidMenu()//菜单{cout<<"请在菜单中选择你要执行的选项!\n";cout<<"0.添加记录"<<endl;cout<<"2.按姓名哈希"<<endl;cout<<"3.查找记录"<<endl;cout<<"4.按号码哈希"<<endl;cout<<"5.清空记录"<<endl;cout<<"6.保存记录"<<endl;cout<<"7.退出系统"<<endl;}intmain(){charnum[11];charname[8];Create();Create2(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 赠品小酒活动策划方案(3篇)
- 门市搬迁活动方案策划(3篇)
- 陶粒颗粒施工方案(3篇)
- 2026广东广州市海珠区消防安全委员会办公室招聘街道微型消防站队员26人备考题库(重点)附答案详解
- 2026湖北长江产融资本投资有限公司招聘5人备考题库汇编附答案详解
- 2026安徽蚌埠市卫生健康委委属医院第二批“校园招聘”79人备考题库及完整答案详解【有一套】
- 2026中共江西省委党校(江西行政学院)高层次人才招聘37人备考题库(基础题)附答案详解
- 2026广西钦州市统计局面向社会招聘编外人员2人备考题库【夺冠系列】附答案详解
- 2026深圳能源春季校园招聘备考题库附完整答案详解【夺冠】
- 2026广东广州市天河区东风实验小学招聘小学高年段语文教师备考题库附答案详解(基础题)
- 侧面碰撞保护-动态性能要求(FMVSS 214)
- 互联网+大赛路演PPT制作
- DB32∕T 3916-2020 建筑地基基础检测规程
- 更换风口操作规程
- SMED快速换模教程
- 2023年安徽省检察机关招聘聘用制书记员623人笔试备考题库及答案解析
- 汇川IS620系列伺服应用案例7一伺服非标应用
- GB/T 14692-2008技术制图投影法
- 机械制造技术基础 第2章
- 瑞幸CMO杨飞:互联网营销的流量池思维PP课件
- “白山黑水”-东北三省课件 【新教材 备课精研】 八年级地理下学期人教版
评论
0/150
提交评论