《电话号码查找系统》
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《数据结构》课程设计课程名称数据结构
课题名称电话号码查找系统
专业电子信息科学与技术班级
姓名(学号)
姓名(学号)
2017年 6 月 3 日
电话号码查找系统
摘要:电话号码的查找系统软件是现在很实用工具,随着时代的发展,信息化得发展,手机是人们的必备工具,基于目前的现况,有必要开发出一款具有含量的电话号码管理系统,满足人们的需求,需要包含添加、删除、查找、显示、存储、修改等操作,并具备存储文件功能。
该篇基于C++语言在VC6.0平台用散列表设计实现电话号码的查找系统,根据数据结构设计算法并实现算法,程序多次运用了函数的调用,自定义个操作的函数,包括添加操作、查找操作、查询操作、显示操作、清除操作、保存操作由主函数调用每次操作均有主函数依次调用,从基本上实现姓名电话地址的存储和应用。
关键词:电话号码查找系统; C++; VC6.0; 数据结构
1、引言(绪论)
1.1、C++语言简介
在C的基础上,一九八三年又由贝尔实验室的Bjarne Strou-strup推出了C++。 C++进一步扩充和完善了C语言,成为一种面向对象的程序设计语言。C++目前流行的最新版本是Borland C++4.5,Symantec C++6.1,和Microsoft VisualC++ 2.0。C++提出了一些更为深入的概念,它所支持的这些面向对象的概念容易将问题空间直接地映射到程序空间,为程序员提供了一种与传统结构程序设计不同的思维方式和编程方法。因而也增加了整个语言的复杂性,掌握起来有一定难度。
1.2、开发背景
随着科学技术的不断发展,计算机科学日渐成熟,电话号码使用的广泛性、简洁性日易为人们所接受采用。电话号码管理系统已是人们必不可少的系统软件工具,用于满足人们对电话的各种操作,包括添加、删除、修改、查询、保存使电话号系统更加简洁方便,基于这种市况需求,我们
有必要开发一款能满足人们这种操作需求的管理系统。
1.3、开发环境
本文所采用的开发环境主要是基于C++环境的信息技术极大地扩展了全人类教育的时空界限,空前地提高了人们学习的兴趣、效率和主动性,已经成为开发人类能力的创造性工具。在计算机科学中,《数据结构》不仅是一般应用程序设计的基础,而且也是操作系统、数据库系统、网络系统设计及其它大型计算机应用工程重要的实施基础。在编程实现操作系统是基于VC6.0 之上实现,按照了C++语言设计的基本内容。
2、需求分析
2.1、系统需求分析
设计散列表实现电话号码查找系统。
基本要求:
(1)设每个记录有下列数据项:电话号码、用户名、地址;
(2)从键盘输入各记录,分别以电话号码和用户名为关键字建立散列表;
(3)采用一定的方法解决冲突;
(4)查找并显示给定电话号码的记录;
(5)查找并显示给定用户名的记录
该电话号码查找系统包括了用户的输入查找保存删除操作。
2.2、系统总体设计
系统用到的数据类型有:
1、基本数据类型:整型、字符型;
2、构造数据类型:数组、结构
系统有一个main函数、多个标准库函数和九个自定义函数组成。
函数apend、hash、 create、 list、 find、 save、 menu由主函数main 调用。
首先进入程序需要用户输入通讯信息,输入包括姓名电话地址保存在新建的通讯录中,由用户输入0-5分别调用各个函数以满足需求,完成后按0退出程序。
2.3、系统设计目标
数据结构课程主要是研究非数值计算的程序设计问题中所出现的计算机操作对象以及它们之间的关系和操作的学科。数据结构是介于数学、计算机软件和计算机硬件之间的一门计算机专业的核心课程,它是计算机程序设计、数据库、操作系统、编译原理及人工智能等的重要基础,广泛的应用于信息学、系统工程等各种领域。
学习数据结构是为了将实际问题中所涉及的对象在计算机中表示出来并对它们进行处理。通过课程设计可以提高学生的思维能力,促进学生的综合应用能力和专业素质的提高。通过此次课程设计主要达到以下目的:
了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;
初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;
提高综合运用所学的理论知识和方法独立分析和解决问题的能力;
训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风
3、总体设计
3.1 开发设计思想
基于以上系统设计目标,本文在设计散列表实现电话号码查找系统遵循了以下开发设计思想:
●采用现有的软硬件环境及先进的管理系统开发方案,从而达到充分利用现有资源,提高系统开发水平和应用效果的目的。
●尽量达到操作过程中的直观、方便、实用、安全等要求。
●系统采用模块化程序设计方法,既便于系统功能的各种组合和修改,又便于未参与开发的技术维护人员补充、维护。
3.2系统功能模块设计
2-1可以清楚的看到,录入模块和查询模块。
录入模块可根据系统提示的信息填写信,,填完相应的信息,可按回车储存。以姓名和电话号码为关键字,分别用Hash函数运算出一个相对应的值,把这个值作为结点的存储地址,分别存入姓名散列表和电话号码散列表的对应位置。
查询模块分为两部分,姓名查询和号码查询,姓名查询可有一个姓名查到多个记录号码查询是一一映射。查找时,通过所要寻找的关键字用同样的Hash函数计算地址,判断存的内容是否跟关键字是否一样,若一样则记录找到则可找到
你要查找的内容。否则无此记录。
哈希表散列方法:电话散列计算key值是从第三个数字开始相加得到一个总和,用总和除以20取余数得到其散列地址。同样对于姓名的存储利用姓名的ASSIC值对应相加。