数据结构课程设计-职工管理系统.doc

数据结构课程设计-职工管理系统.doc

ID:56922142

大小:371.50 KB

页数:36页

时间:2020-07-24

数据结构课程设计-职工管理系统.doc_第1页
数据结构课程设计-职工管理系统.doc_第2页
数据结构课程设计-职工管理系统.doc_第3页
数据结构课程设计-职工管理系统.doc_第4页
数据结构课程设计-职工管理系统.doc_第5页
资源描述:

《数据结构课程设计-职工管理系统.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、仲恺农业工程学院课程设计报告(题目)员工管理系统课程名称:数据结构与算法院(系):信息科学与技术学院专业班级:学号:姓名:目录综合设计题目5一、问题所需要处理的数据的逻辑结构5二、问题所需要处理的数据的存储结构设计6三、主要算法设计(程序流程图)10四、调试分析12五、课程设计总结17附录:详细设计(关键代码)27题目:员工管理程序一、问题分析和任务定义1、要求和任务:解决这个问题,要编写一个员工管理系统程序。要求每个员工信息包括:编号、姓名、性别、年龄、生日、工龄、学历、职务、电话、住址。系统能够完成员工信息的查询、更新、插入、删除、

2、排序功能。要求:(1)排序:按其关键字,对所有员工的信息进行排序。(2)查询:按指定条件查找员工。(3)修改:按编号对某个员工的某项信息进行修改。(4)插入:加入新员工的信息。(5)删除:按编号删除已离职的员工的信息。2、原始数据的输入及输出格式:原始数据要求输入员工的个人信息情况,包括编号、姓名、性别、年龄、生日、工龄、学历、职务、电话及住址。编号、年龄的输入为整型,其它输入均为字符数组。输出的是对员工信息进行的排序、查询、更新、插入、删除等的具体情况。员工信息如表一编号姓名性别年龄生日工龄学历职务电话住址1李永男2108061年本科

3、程序员1593广州2王浩男2404063年研究生管理员1882深圳3淑琳女2211542年博士开发1353茂名4江凌女2109210年本科调试1821广州将上述信息全都保存到employee.txt文件中,然后在从文件中读取信息进行相应操作并将操作结果存放于employee1.txt文件中。3、设计算法的测试用例(1)输入四名员工信息。显示四名员工的八种信息如下:(2)查询:①按编号查询:输入要查找员工编号为1,输出员工信息为1李永男2108061年本科程序员1593广州②按姓名查询:输入员工姓名为王浩,输出员工信息为2王浩男24040

4、63年研究生管理员1882深圳输入员工姓名李三,输出没有此员工。③按电话查询:输入员工电话为1353,输出为(3淑琳女2211542年博士开发1353茂名(3)排序:①按编号排序;②按姓名排序;③按年龄排序。(4)按编号修改员工信息,输入修改编号4,输入修改信息4黄凌女2109210年调试调试1821茂名(5)按编号删除员工信息:输入要删除员工的编号2002,输出删除成功。(6)输入新员工的信息:输入员工信息为4阿妹女2108042年调试调试1821茂名(7)退出员工管理系统,将链表信息保存到文件中。二、数据结构的选择和概要设计1、数据

5、结构员工管理系统要求实现许多功能,要求要循环可遵循结构化程序设计思想来进行本系统的设计——自顶向下,逐步细化,也就是将软件设计任务划分成许多容易解决的小的子任务,即分解出许多子功能模块进行设计。(1)链表:链表存储是最常用的存储方法之一,它用一组任意的存储单元来存放组成数据的数据元素。当用若干个任意的存储单元来分别存放若干个同类型的数据、便保持它们之间线性逻辑关系时,就构成链表。本程序员工信息都是同种类型。只要确定链表的首结点地址,其它员工信息可以通过首结点查找到,然后进行相关操作。(2)链表算法:A、查找:从链表的首结点元素出发,顺着

6、链表逐个地将结点的值与给定的值x进行比较。若有结点值等于给定值x,则输出首次找到的其值为x的结点的存储位置。B、删除:从链表的首结点元素出发,以本程序为例:头结点p=head;首结点q=head->next,用q作while循环的判断条件,判断q是否为真(判断链表是否为空),然后按编号查找到要删除的员工信息p->next=q->next;break;跳出while循环;员工信息指针后移p=p->next;q=q->next;若找不到则输出没有该员工。C、排序:本程序是链表的排序,用两层循环进行比较,第一次比较的首结点与链表的后续结点一一

7、进行比较,将最大的值(或最小的值)放在首结点位置,第二次比较链表首结点后的第一个结点与后续结点一一进行比较,将最大的值(或最小的值)放在首结点后的第一个结点。依此类推直到成为有序序列为止。以本程序中按编号排序为例:定义结构体指针Workman*r,*p,*q,头结点head;将r=head->next;用两层循环进行排序:外层循环while(r),将p,q赋值,p=r;q=r->next;内层循环while(q),若q->num>p->num,则交换员工信息;内层信息指针q=q->next;外层信息指针后移r=r->next;该函数具体

8、实现如下:voidArrangebynumber()//按编号进行排序{Workmanexchange,*r,*p,*q;r=head->next;if(r==NULL){printf("现在还没有员工信息

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。