问题描述:
为某个单位建立一个员工通讯录管理系统,可以方便查询每一个员工的电话与地址。设计散列表存储,设计并实现通讯录查找系统。
1.基本要求
(1)每个记录有下列数据项:电话号码、用户名、地址;
(2)从键盘输入各记录数据结构课程设计电话号码查询系统-课程设计:员工通讯录管理系统!重难点分析以其源码示例,分别以电话号码为关键字建立散列表;
(3)采用二次探测再散列法解决冲突;
(4)查找并显示给定电话号码的记录;
(5)通讯录信息文件保存。
2.重点、难点
重点:
(1)通过实验深入理解哈希表既是一种存储形式,又是一种查找方法;
(2)哈希表的构造;
(3)哈希冲突方案的设计。
难点:哈希表的构造与哈希冲突方案的设计
3.作业及课外学习要求:
按照题意要求独立进行设计,设计结束后要按要求写出课程设计报告。
本知识点的讲授和学习,可以支撑“毕业要求4研究”中的“指标点4.1能够运用科学的研究方法对复杂软件工程问题进行需求分析研究;指标点4.2熟悉复杂软件系统的开发和应用环境,研究制定合理的软件设计与开发方案。指标点4.3能够对原型验证方法进行研究与分析,合理验证软件系统”的指标达成度进行评估。使学生在解决具体问题的过程中数据结构课程设计电话号码查询系统,能够灵活熟练地选择合适的数据结构及设计有效的算法数据结构课程设计电话号码查询系统,从而加深对常用数据结构的理解,强化学生的逻辑思维能力和动手能力,巩固良好的编程习惯,掌握工程软件设计的基本方法,为后续课程的学习打下坚实基础。
4.代码:
<p><pre>#include
include
include
include
include
define MAXSIZE 300
define L 300
using namespace std;
class individual
{
public:
char tel[12];
char name[15];
char addr[20];
int key;
};
class population
{
public:
individual addr_list[MAXSIZE+1];
individual hash_list[L];
void info_input();
void init_hash_list();
void hash_list_do();
void search_tel();
void hash_out();
int m,n;
int individuals;
};
population all;
int max_prime(int m)//m>2
{
int i;
if(m%2==0)
m--;
while(m>=3){
for(i=3;isqrt(m))
break;
m-=2;
}
return m;
}
void population::info_input()
{
printf("输入通讯录最大长度(