通讯录查询系统:数据结构与冲突解决设计
41 浏览量
更新于2024-08-03
1
收藏 58KB DOCX 举报
在数据结构课程设计中,学生被要求设计并实现一个通讯录查询系统,该系统针对一个单位的员工信息管理,目标是方便快捷地查询员工的电话号码和地址。系统的核心是基于散列表的数据结构来存储和检索这些信息。
首先,需求分析阶段明确了几个关键要素。系统需要支持的基本功能包括:
1. **记录结构**:每个员工记录包含电话号码、用户名和地址三个字段。
2. **输入与散列表**:用户通过键盘输入数据,利用散列表(这里采用二次探测再散列法解决冲突)存储这些记录,其中电话号码作为关键字。
3. **功能需求**:实现查找功能,能够根据给定的电话号码查找到相应的员工记录,并将结果展示出来。
4. **文件操作**:要求将通讯录信息保存到文件中,便于后续访问。
概要设计部分详细规划了程序的组成。程序分为两个模块:功能实现函数模块和主函数模块。系统子程序包括哈希函数Hx、建立通讯录函数BulidHx以及查找函数Search。哈希函数负责计算散列表的索引,BulidHx负责接收用户输入并将数据存入散列表,而Search则用于实际的查询操作。
在详细设计阶段,定义了两个结构体:message用于存储员工信息,包括姓名、地址和电话号码;HxList用来表示散列表,包括指向message的指针数组和记录总数。BulidHx函数负责打开文件,接收用户输入的记录数量,动态分配存储空间,然后逐条录入员工信息,电话号码作为散列表的键值。同时,为了处理可能出现的冲突,预先将最后一个元素的指针设为NULL,以便于二次探测。
具体实现时,用户会首先被提示输入要建立的记录数量,然后按照指示依次输入每个员工的信息。电话号码会被哈希函数转换为散列表中的索引,然后插入到对应位置。查找功能Search则遍历散列表,当找到匹配的电话号码时,返回相应的员工记录。
这个项目不仅锻炼了学生的数据结构知识,如散列表的设计与实现,还包括文件操作、输入输出处理和冲突解决策略等技能,有助于理解和应用这些概念于实际编程中。
271 浏览量
点击了解资源详情
点击了解资源详情
115 浏览量
2022-11-03 上传
2021-09-30 上传
1496 浏览量
1103 浏览量
195 浏览量
xinkai1688
- 粉丝: 389
- 资源: 8万+
最新资源
- 个人数字证书与CA认证.pdf
- Electronics Workbench(ewb)简明中文教程
- 单片机设计题目要求 温度计
- C语言嵌入式系统编程修炼之道.pdf
- Java swing学习课件
- JavaEye论坛热点_-_2008年11月
- C++标准程式库.pdf
- VC++2005入门经典(英文版).pdf
- 2009年计算机等级考试四级数据库工程师考试 课后答案
- 手工创建数据库,在命令提示符下的创建操作步骤.
- J2ME企业级开发-j2me
- 雅思听力807词汇表
- [教程] 权威揭密 笔记本硬件结构终极教程&_8226_(上、中、下)
- 编程相关日语词汇 基本的
- ITIL_V3的五大生命周期管理.pdf
- 2009年计算机等级考试四级数据库工程师考试重难点