本课程设计旨在通过构建基于链表与哈希表相结合的数据结构模型来优化通讯录系统,提升其查找、插入及删除操作效率。
《数据结构与算法分析》课程设计教学任务书
通讯录系统设计:
设计要求:
1. 设计以姓名为关键字的散列表(哈希表),实现通讯录查找系统,完成相应的建表和查表程序。
2. 每个记录包含以下数据项:用户名、电话号码、地址;
3. 从键盘输入各记录,并分别以姓名作为关键字建立散列表。人名可以采用汉语拼音形式;人名字符串转化为数字的方式自行决定。
4. 使用除留余数法构造哈希函数,采用二次探测再散列法解决冲突。
5. 根据给定的姓名查找对应的电话号码和地址,并显示结果;若找不到则提示通讯录中无此人信息。
6. 通讯录的信息需保存到文件。
在上述任务的基础上,我的程序还增加了以下功能:
1. 使用链表的形式存储通讯录的数据;
2. 支持从文件读取先前已保存的通讯录数据;
3. 允许使用汉字作为人名输入;
文件说明:
- contacts.c:主程序文件
- hash.c:支持哈希表操作的相关函数
- hash.h:定义了用于实现哈希类型的接口文件
- list.c:提供列表相关操作的支持函数
- list.h:列出类型接口的声明文档
- menu.c: 菜单功能实现代码
- menu.h : 对菜单函数进行声明
- contacts.dat :数据存储文件(二进制格式)
- Contacts.cbp : CodeBlocks工程配置文件,若有CodeBlocks环境可直接打开使用