1、 课课 程程 设设 计计 说说 明明 书书 课程名称 数据结构 设计课题 员工管理系统 专 业 计算机科学与技术 课课 程程 设设 计计 任任 务务 书书 设计题目:设计题目: 员工管理系统 _ 设计内容与要求:设计内容与要求: 设计一员工管理系统,可储存若干名员工的基本信息,并能对员工的信息进 行一些基本的操作,其中应具有基本功能: (1) 创建:创建员工信息库。 (2) 输出:可以输出所有已输入的员工的所有信息。 (2) 排序:按不同关键字,对所有员工的信息进行排序。 (3) 查询:按特定条件查找员工。 (4) 更新:按编号对某个员工的某项信息进行修改。 (5) 插入:加入新员工的信息。
2、(6) 删除:按编号删除已离职的员工的信息。 (8) 退出:进行完所有需要的操作后可以退出该系统,完成操作。 指导教师:张 红 霞 年 月 日 课课 程程 设设 计计 评评 语语 成绩:成绩: 指导教师:张 红 霞 年 月 日 1 【问题描述】 该员工管理系统应能实现一些简单的操作,其中每个员工的信息应包括:编 号、姓名、性别、出生年月、学历、职务、电话、住址等。系统能够完成员工信 息的查询、更新、插入、删除、排序等功能。 【基本要求】 (1) 排序:按不同关键字,对所有员工的信息进行排序。 (2) 查询:按特定条件查找员工。 (3) 更新:按编号对某个员工的某项信息进行修改。 (4) 插入:
3、加入新员工的信息。 (5) 删除:按编号删除已离职的员工的信息。 【测试数据】 1.创建员工信息数据: b11050516 李满意 男 1996.3.2 本科 学生 18238816299 p3.240 b11050517 钟金言 男 1995.2.4 本科 学生 18238816303 p3.240 b11050518 魏良雷 男 1998.5.6 本科 学生 18238818310 p3.240 2. 输出员工信息数据:2,2 3对员工排序数据:3,2 4. 查询员工信息数据:4,1,b11050516 5. 更新员工信息数据:5,2,钟金言 6. 插入新员工信息数据: 6, b11050
4、520 郑亚振 男 1998.5.7 本科 学生 18238816307 p3.240 7. 删除离职员工信息数据:7,b11050518 【算法思想】 1、输出函数:输出部分为查看方便共用三种输出方式,分别将员工的编号、 姓名、电话号码放在第一个位置输出,算法很简单,就是用一个 for 语句将所有 员工信息输出。 2、排序函数(排序部分按三种关键字使用了三种排序方法) : (1)按编号快速排序:从待排序员工记录中选取第一个员工为枢轴,其编号 设为 K1,然后将其余员工编号小于 K1 的记录移到 K1 的记录的前面,而将编号大 于 K1 的记录移到后面,结果将待排序员工记录序列分成两个子表,最
5、后将编号为 K1 的记录插到其分界线的位置处。 这个过程称为一趟快速排序。 通过一次划分后, 就以编号为 K1 的记录为界,将待排序序列分成了两个子表,且前面子表中所有记 录的编号均不大于 K1,而后面子表中的所有记录的编号均不小于 K1。对分割后的 子表继续按上述原则进行分割,直到所有子表的表长不超过 1 为止,此时待排序 记录序列就变成了一个有序表。 (2)按姓名折半排序:从记录的第二个姓名开始折半插入,令 low=1, high=i-1(i 为未排序时的第 i 个记录,也是当前需要折半插入排序的记录),并 令 mid=(low+high)/2,然后比较第 i 个记录的姓名与第 mid 个
6、记录的姓名,如 果第 i 个记录的姓名小于第 mid 个记录的姓名则 high=mid-1,否则 low=mid+1, 2 继续进行第 i 个记录的姓名与第 mid 个记录的姓名的比较直到 lowhigh,如此便 找到插入第 i 个记录的插入位置。如此逐个插入所有待排序的记录。 (3)按电话号码堆排序:先建一个“大顶堆” ,即先选得一个关键字为最大的 记录, 然后与序列中最后一个记录 交换, 之后继续对序列中前 n-1 记录进行 “筛 选” ,重新将它调整为一个“大顶堆”再 将堆顶记录和第 n-1 个记录交换,如此 反复直至排序结束。所谓“筛选”指的是对一棵 左/右子树均为堆的完全二叉树, “调整”根结点使整个二叉树为堆。 3、查询函数:此员工管理系统的查询可按照编号和姓名进行折半查询,在进 行折半查询前,已进行按照所选关键字进行排序,首先将记录序列中间位置