设计散列表实现电话号码查找系统数据结构课程设计内容摘要:
efstream define NULL 0 unsigned int key。 unsigned int key1。 unsigned int key2。 散列表的建立以及冲突处理函数 hash(char num[11]) //建表,以人的电话号码为关键字,建立相应的散列表若哈希地址发生冲突,进行冲突处理。 { int i = 3,j。 key1=(int)num[2]。 while(num[i]!=NULL) { key1+=(int)num[i]。 i++。 } key1=key1%20。 8 for(j=0。 j20。 j++) //线性探测法解决冲突 { key=(key1+j)%20。 if(phone[key]num==) break。 } return(key)。 } hash2(char name[8]) //建表,以人的姓名为关键字,建立相应的散列表 //若哈希地址发生冲突,进行冲突处理 { int i = 1,j。 key2=(int)name[0]。 while(name[i]!=NULL) { key2+=(int)name[i]。 i++。 } key2=key2%20。 for(j=0。 j20。 j++) //线性探测法解决冲突 { key=(key2+j)%20。 if(phone[key]name==) break。 } return(key)。 } 主函数 int main() { cout 欢迎使用电话号码查找系统 endl。 cout****************************endl。 char num[11]。 char name[8]。 create()。 create2()。 int sel。 while(1) { menu()。 cinsel。 //输入选择项目操作 9 if(sel==0) { cout请输入要添加的内容 :endl。 apend()。 } else if(sel==1) { cout9 号码查询, 8 姓名查询 endl。 int b。 cinb。 if(b==9) { cout请输入电话号码 :endl。 cin num。 cout输出查找的信息 :endl。 find(num)。 } else if(b==8) { cout请输入姓名 :endl。 cin name。 cout输出查找的信息 :endl。 find2(name)。 } else printf(不合法操作。 \n)。 } else if(sel==2) { cout姓名散列结果 :endl。 list2()。 } else if(sel==3) { cout号码散列结果 :endl。 list()。 } else if(sel==4) { cout列表已清空 :endl。 create()。 create2()。 } else if(sel==5) { cout通信录已保存 :endl。 save()。 } else if(sel==6) {int c。 cout删除信息 :endl。 cout endl。 10 cin c。 if(c==9) { cout请输入号码: endl。 cin num。 Delete(num)。 } else if(c==8) { cout请输入姓名: endl。 cin name。 Delete1(name)。 } else cout不合法操作。 endl。 cout信息已删除 \nendl。 } else if(sel==7) return 0。 else cout不合法操作。 endl。 } return 0。 } 各模块之间的调用关系 各个模块内部的具体算法,包括输入 、处理和输出,相当于 C++语言的过程或函数设计。 整体算法描述:建立一个结构来存放学生信息 ,再将该结构存入文件中 ,按要求通过调用各个函数对文件内的数据进行操作及处理。 各个分函数算法描述:由主函数调用 apend 函数建立一个新的文件用于存储通讯录。 主函数 void main 调用 void list 输出信息; 主函数 void main 调用 void find 查找学生记录; 主函数 void main 调用 void apend 添加记录; 主函数 void main 调用 void creat 进行新建节点操作以清空记录。 调用函数通过 if 语句实现,将文件里的数据与所输入的数据对比,如果相等就进行相关操作,如果不相等回到主菜单。 11 源程序代码 include include includeiostream include includefstream define NULL 0 unsigned int key。 unsigned int key1。 unsigned int key2。 int *p。 struct node //建节点 { char name[8],address[20]。 char num[11]。 node *next。 }。 typedef node *pnode。 typedef node *mingzi。 node **phone。 node **nam。 node *a。 using namespace std。 //使用名称空间 hash(char num[11]) //建表,以人的电话号码为关键字,建立 相应的散列表若哈希地址发生冲突,进行冲突处理。 { int i = 3,j。 key1=(int)num[2]。 while(num[i]!=NULL) { key1+=(int)num[i]。 i++。 } key1=key1%20。 for(j=0。 j20。 j++) //线性探测法解决冲突 { key=(key1+j)%20。 if(phone[key]num==) break。 } return(key)。 } 12 hash2(char n。设计散列表实现电话号码查找系统数据结构课程设计
相关推荐
谦虚 (乌鸦、、) 每个教师都懂得板书就是微型教案,板书集中体现教学目的,重点,难点,教学过程。 本课的板书以重要词句为点,以文章脉络为线来安排。 七、 回味课堂,体验得失 课堂永远是一门遗憾的艺术,希望能在不断地探索不断地实践,不断地遗憾中去努力提高自己的教学水平。 我的说课毕,请和位专家指正,谢谢大家。 没头脑和不高兴 5 小学语文 S版 五年级上册 全册 说课 稿 必修作业模版内容
一。 荷兰后裔美国作家和历史学家——亨德里克*房龙为美国少年了解《圣经》知识撰写一部通俗读物《圣经的故事》,他简明扼要地解答了《圣经》是怎样的一部书,包含哪些内容,作者是谁,成书何时。 他以简洁、优美的文笔为读者勾勒了一幅犹太人的历史画卷。 纷繁的历史人物、争夺领地的频频征战经他一番梳理,变得清晰可读。 深奥的教义,复杂的戒律,在他的笔下,变得浅显易解。 今天
,梦幻般的湖。 本文通过描写青海湖的壮丽景色,表达了作者为青海湖的质朴而震撼的感受。 二、文章脉络 本文可分为三部分。 第一部分,写作者去青海湖路上的情形。 第二部分,具体描写青海湖的景色及其特点。 这一部分又写了三个方面的内容:湖水醉人的蓝色;环境氛围清新幽静,无比优美;神奇的鸟岛,丰富的鱼类。 第 三部分,总结全文,写明作者的感受。 以 “梦幻 ”为线索:关于高原的梦 ——梦境的继续
万方数据 企业都应该清醒地认识到树立诚信经营不是小事,是一个企 难关,另一方面积极做好对外宣传工作,对相关公众做好安 业树立良好的企业形象的基础。 企业诚信建设是企业的无形 抚工作,对中间商、供货商做好解释工作,并开辟高效的信息 资产,是企业品牌建设不可或缺的内在因素。 像 “ 同仁堂 ” 从 传播渠道,要公开坦诚与媒体沟通,同时要掌握好针对性、灵 创立至今能历经 j 百多年而长盛不衰
烘烤至少 4 小时 硬度≥ 32 HRC 的电镀零件:在 185177。 10℃下烘烤至少 4 小时 日本 T 汽车公司 驱氢处理方法 > 353HV 且≤390HV 电镀或磷化的零件: 在 200℃下烘烤至少 2 小时 > 390HV 电镀或磷化的零件: 在 200℃下烘烤至少 4 小时 韩国 D 汽车公司 电镀零件除氢检验 ≥ 35 HRC 电镀零件: 在 200℃下烘烤一段时间 美国 DC