基于C语言的散列表实现的电话号码查找系统 课程设计报告+任务书+源码及可执行exe文件+运行说明

本文详细描述了一个电话号码查找系统的开发过程,重点在于需求分析中选择散列表数据结构,讨论了Hash表的设计、不同Hash函数和冲突解决方法的比较,以及开发工具和编程语言的选择。

目 录

1 需 求 分 析       ...................................................................................................................................... 1

1.1    Hash 表设计 ........................................................................................................................ 1

1.2       添加与导入记录 .................................................................................................................. 1

1.3  查询记录 ............................................................................................................................. 2

1.4  不 同 Hash 函 数 比 较 ........................................................................................................... 2

1.5  不同冲突解决方法比较 ...................................................................................................... 2

2 概 要 设 计       ...................................................................................................................................... 2

2.1       数据类型的定义 .................................................................................................................. 2

2.2       功能模块结构图 .................................................................................................................. 5

2.3   Hash 模 块 概 要 设 计 ............................................................................................................ 6

3 运 行 环 境       ...................................................................................................................................... 7

4 开发工具和编程语言...................................................................................................................     7

5 详 细 设 计       ...................................................................................................................................... 7

5.1 Hash 函数设计 .................................................................................................................... 7

5.2 链地址法  Hash  设计  ........................................................................................................... 9

5.3 线性探测法 Hash 表设计 ................................................................................................. 16

5.4 电话号码查询系统设计   ....................................................................................................     19

6 运 行 结 果        .................................................................................................................................... 21

7 调 试 分 析        .................................................................................................................................... 25

8 心 得 体 会        .................................................................................................................................... 26

9 参 考 文 献        .................................................................................................................................... 27

1 需求分析

本系统为电话号码查找系统,本系统最频繁的操作为查询功能,查询速度的快慢对此系统有至关重要的影响,因此应该选择合适的数据结构来进行设计。散列表可以实现 O(1)的快速查找,用 Hash 数据结构作为底层存储结构较为合适。本系统应首先实现 Hash 表的基本结构和操作,在此基础上构建电话号码查找系统。电话号码查找系统包括若干数据项:电话号码、用户名、地址,可以键盘输入或文件批量导入记录,既可以使用电话号码作为索引建立 Hash 表,也可以使用姓名作为索引建立 Hash 表,并通过电话号码和姓名进行查找记录。更进一步, 在设计 Hash 数据结构时,可设计不同的 Hash 函数及采用不同的冲突解决算法, 来比较性能的差异。具体功能如下:

1.1 Hash 表设计 

设计 Hash 表的 ADT,设计 Hash 表的存储结构以及基本操作,设计不同的

Hash 函数对字符串进行散列,设计不同的冲突解决策略,如链地址法、线性探测法等。Hash 表的结构由 key-value 组成,基本操作有添加元素、查找元素、删除元素、遍历元素、建表、销毁表等,并且设计可以计算平均查找长度(ASL)的函数,以此来比较不同的 Hash 函数使用相同的冲突解决算法,以及相同的 Hash 函数使用不同的冲突解决算法的优劣。为方便 Hash 表的使用,Hash 表可自动扩容。

!!! 有需要的小伙伴可以通过文章末尾名片咨询我哦!!!

 💕💕作者:小马
💕💕个人简介:混迹在java圈十年有余,擅长Java、微信小程序、Python、Android等,大家有这一块的问题可以一起交流!
💕💕各类成品java系统 。javaweb,ssh,ssm,springboot等等项目框架,源码丰富,欢迎咨询交流。学习资料、程序开发、技术解答、代码讲解、源码部署,需要请看文末联系方式。

更多项目:

另有1000+份项目源码,项目有java(包含springboot,ssm,jsp等),小程序,python,php,net等语言项目。项目均包含完整前后端源码,可正常运行!

!!! 有需要的小伙伴可以点击下方链接咨询我哦!!!

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

优创学社

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值