职工信息管理系统

上传人:M****1 文档编号:486378856 上传时间:2024-02-22 格式:DOC 页数:37 大小:306.92KB
返回 下载 相关 举报
职工信息管理系统_第1页
第1页 / 共37页
职工信息管理系统_第2页
第2页 / 共37页
职工信息管理系统_第3页
第3页 / 共37页
职工信息管理系统_第4页
第4页 / 共37页
职工信息管理系统_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《职工信息管理系统》由会员分享,可在线阅读,更多相关《职工信息管理系统(37页珍藏版)》请在金锄头文库上搜索。

1、数据结构课程设计报告设计题目 职工信息管理系统 专 业 班 级 姓 名 学 号 完成日期 目 录1. 问题描述(3)2. 系统设计(3)3. 数据结构与算法描述(5)4. 测试结果与分析(15)5. 总 结(20)6. 参考文献(20)附录 程序源代码(20) 职工信息管理系统1. 问题描述试设计一个职工信息管理系统。要求可对职工信息进行插入、删除、查找、排序、输出等功能,职工对象包括编号、姓名、性别、出生年月、学历、工作年月、基本工资、电话、家庭住址等等。2. 系统设计2.1 设计目标随着计算机产业的不断发展和信息时代的到来,各个企业和部门对员工的信息管理也已经走上了数字化的阶段,尤其是利用

2、微机对工资的管理已经在各个企业单位起着越来越多的作用。以前的财会人员完全是靠手写来完成员工的各种记录,每天都忙碌于各种繁多的票据之间,这种工作繁重复杂,容易出错,不易修改,所以使用一个好的管理系统对减轻管理人员的工作量是很有帮助的,也是一个企业发展不可缺少的基础,它的开发应用简单而不失一般性,操作方便,功能强大,系统化,规范化,自动化,而且经济使用的职工管理系统已经成为了各个企业和部门离不开的电脑软件。本系统实现的操作和功能如下:1)职工信息表的建立:根据职工提供的信息,按单链表的方法建立职工信息表;2)职工信息的添加:根据公司的需要,增加新的职工,必须把职工的基本信息写入职工信息表,方便公司

3、管理;3)职工信息的查询:根据公司需要,查找某一个职工的信息,可以按姓名或编号查找,将都显示职工的全部信息。4)职工信息的修改:根据公司或职工需要,如果信息需要修改,可对职工的人一个信息进行更改。5)职工信息的排序:根据公司需要,可对职工进行排序;6)职工信息的删除:根据公司需要,若职工不在公司工作,可对其信息删除,以及时更新职工信息表;7)职工信息的输出:根据公司需要,若要浏览职工信息,可对职工的全部信息输出,方便观看。2.2 设计思想职工信息表用单链表作为存储结构,且为了查找方便,职工信息应有序。为了查找方便,职工的线性表按职工编号有序,并且,为了插入和删除方便,应以链表作为存储结构。通过

4、c+,使系统实现建表、增加信息、删除信息、查找信息、排序、输出等功能,而且提供一个界面来调用各个功能,并使界面尽可能清晰美观。2.3 系统模块划分菜单界面建立职工信息表职工信息的添加职工信息的查询职工信息的排序职工信息的删除职工信息的输出退出职工管理系统职工信息的修改插入新的结点删除结点无记录按菜单选项结束程序运行输出记录冒泡排序法实现按编号查询按姓名查询尾插法建立职工信息表3. 数据结构与算法描述3.2 职工信息表的建立,将一个职工结点按其编号的次序插入有序职工链表的相应位置,以保持链表的有序性。基本思想是使用尾插法建立新的结点。建表算法如下描述:/用尾插法建立职工链表函数void Crea

5、teList(NodePtr& head)/尾插法建立带头结点的职工链表算法 NodePtr rear; rear=new ListNode; int flag=0;/结束标志置0 rear=head;/尾指针初始指向头结点 while(flag=0) NodePtr p; p=new ListNode; p-link=NULL; cout请输入:; cout编号 姓名 性别 出生日期 学历 工作年月 职务 基本工资 电话 地址n; coutp-nump-namep-sexp-birthdayp-educationp-working_day; cinp-postp-base_payp-phon

6、ep-addr; rear-link=p;/新结点连接到尾结点之后 rear=p;/尾结点指向新结点 coutflag; filesave(head);3.2 职工信息的输出void PrintList(NodePtr head) NodePtr p; p=new ListNode; p=head-link;/因为链表带头结点,使p指向链表开始接点 cout编号 姓名 性别 出生年月 学历 工作年月 职务 基本工资 电话 地址n; cout-n; while(p!=NULL) coutnum name sex birthday ; couteducation working_day post

7、; coutbase_pay phone addrlink;/后移一个结点 3.2 职工信息的查询,如果结点为空,输出:没有查到要查询的职工;若结点不为空,可按姓名和编号进行查询。void ListFind(NodePtr& head)/有序职工链表上的查找 NodePtr p; p=new ListNode; p=head-link;/假定职工表带头结点 char num10,name20; int xz; cout=n; cout 1.按编号查询 n; cout 2.按姓名查询 n; cout=n; coutxz; if(xz=1) coutnum; do if(strcmp(p-num,

8、num)=0) cout编号 姓名 性别 出生年月 学历 工作年月 职务 基本工资 电话 地址n; cout-n; coutnum name sex birthday ; couteducation working_day post ; coutbase_pay phone addrendl; coutlink; if(p=NULL) cout没有查到要查询的职工!n; while(p!=NULL); if(xz=2) coutname; do if(strcmp(p-name,name)=0) cout编号 姓名 性别 出生年月 学历 工作年月 职务 基本工资 电话 地址n; cout-n; coutnum name sex birthday ; couteducation working_day post ; coutbase_pay phone addrendl; coutlink; if(p=NULL) coutlink=head-link; head-link=p; cinp-nump-namep-sexp-birthdayp-educationp-working_day; cinp-postp-base_payp-phonep-addr;3.2 职工信息的修改,先输入职工的姓名,若没有该职工,输出:该系统没有该姓名的

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 试题/考题 > 初中试题/考题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号