




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、编号: 数据结构与算法课程设计说明书题 目: 人事档案管理系统 学 院: 计算机科学与工程学院 专 业: 计算机科学与技术 学生姓名: 学 号: 指导教师: 唐麟 2013年 9月26号 摘 要电脑已经深入到我们日常工作和生活的方方面面,比如文字处理、信息管理、辅助设计、图形图像处理、教育培训以及游戏娱乐等。Windows系统的推出使电脑从高雅的学术殿堂走入了寻常百姓家,各行各业的人们无须经过特别的训练就能够使用电脑完成许许多多复杂的工作。然而,虽然现在世界上已经充满了多如牛毛的各种软件,但它们依然不能满足用户的各种特殊需要,人们还不得不开发适合自己特殊需求的软件。 随着企事业单位的发展,人员
2、会越来越多,少则几十人、多则上万人。例如一个企业分很多部门,每个部门又分为许多科或室等,而其下又分为各级领导和员工。用笔和纸传统的手工管理档案,这中管理方式存在着不易更新、不易存放、不安全、容易丢失、难以备份等重大缺陷,管理起来效率低下而且很可能造成管理上的混乱。而自己建立简单的电子文档对信息管理进行管理虽然克服了以上的缺点,但查询效率较低,特别是当数据量十分庞大时,劣势尤其明显。因此开发一个既可以存储信息,又可以进行更新、查询、管理等功能,同时价格又能为广大消费者接受的多功能电子人事信息管理系统就显得十分必要。 关键词:Visual C+;算法;人事管理;类面向对象;链表 目 录3详细设计
3、4类的设计及分析 4各功能的设计 64 所遇到的问题和分析解决 105 系统特色及关键技术 11成员函数添加的分析 11直接选择排序 146 用户使用 157 结论18参考文献19 引 言随着全球对知识和人才的重视,企业对人力资源管理重要性的认识逐渐深化,人才的全球化竞争使企业的人力资源管理面临前所未有的挑战。在新形势下,人事档案管理系统是一个企业单位不可缺少的部分,是适应现代企业制度,推动企业人力资源管理走向科学化、规范化、自动化的必要条件;是应对挑战、适应环境变化、提高企业管理效率、提升核心竞争力的关键措施。它所包含内容对于企业的决策者和管理者来说至关重要。目前市场上的人事管理系统很多,但
4、要找到一款真正称心、符合企业实际情况的并不容易。由于存在这样那样的不足,使企业浪费了大量的人力、物力等大量资源,难以真正提升企业人力资源的管理水平,提高工作效率及降低管理成本的效果也不明显。因此,为了加快公司信息化的步伐,提高公司的管理水平,并在激烈的社会竞争中立于不败之地,建立及完善人力资源管理系统已变得十分必要和迫切。在社会中,人力资源是企事业单位的核心,而对它的管理及管理软件的选用则是评价管理者管理水平的一个重要标志。因此人力资源管理工作是企事业单位工作的一项重要任务,是提高管理质量和保障企事业单位生产目标实现的一个重要保证。因此,人力资源管理的内容对企事业单位的决策者和管理者来说都具有
5、重要意义。当规模扩大以后,企事业单位人员部门增加,给人力资源管理带来困难。根据需求,本人事档案管理系统主要分系统管理、信息登记、信息删除、信息查询、信息修改、信息按顺序输出、报表信息输出、系统简介等八大部分。具体要求实现:对业务模块相关信息的添加,修改,删除以及对人员调动的管理;对考勤信息设置、管理和查询;对工资信息设置;部门,员工工资统计查询等等。1 系统概述 本人事档案管理系统主要分系统管理、信息登记、信息删除、信息查询、信息修改、信息按顺序输出、报表信息输出、系统简介等八大部分。具体要求实现:对业务模块相关信息的添加,修改,删除以及对人员调动的管理;对考勤信息设置、管理和查询;对工资信息
6、设置;部门,员工工资统计查询等等。2 需求分析 系统需求在信息技术高速发展的今天,传统的数据统计方式在处理庞大繁杂的信息量时显得力不从心,于是,人们对于运用计算机来辅助和管理工作的需求正在逐步提高。随着各个企业业务的逐步扩展,企业的员工人数也在迅速增加,由于管理人员水平有限,导致某些员工纪录管理并不完善,特别是繁杂的员工工资管理纪录,不易查询、修改,极易导致错误,而落后的员工管理方法随着社会的日益竞争,必将被淘汰。由计算机来管理庞大而繁杂的企业员工纪录是非常合适的,不仅查询和修改方便,并且效率高,速度快,完全能够满足现代化企业管理的需要,同时也更利于实现全面办公自动化。因此开发一套企业员工工资
7、管理系统软件势在必行。企业员工工资管理系统是企业管理系统中的一个重要组成部分,它为企业合理的员工调配与编制,以及有关问题的决策能够提供各种必要的基础数据,是公司管理现代化的一个重要方面。利用微机对庞杂而繁锁的员工工资系统实现自动化管理,是计算机公司信息管理系统的重要内容。我在陈勇老师指导下开发了企业员工工资管理系统。企业员工工资管理系统旨在为商业人士及在社会团体、机构中负责管理关系的人士提供一个功能全面、使用方便的工资管理系统,以替代传统的手工管理工资纪录,同时利用先进信息技术为用户提供一些更为方便实用的功能。 本系统实现五种基本功能:输入员工工资信息、删除员工工资信息、修改员工工资信息、查找
8、员工工资信息、列出所有员工工资信息。所以该工资管理系统可以分为5个模块,分别为输入模块、删除模块、修改模块、查找模块、列表模块,每个模块都有其对应的功能以及其设计。(1)输入模块输入模块的功能是创建存储职工工资信息的存储系统以及添加某职工的工资信息。为实现输入的功能,有两个方面的任务:定义结构体以及建立链表。(2)删除模块删除模块的功能是删除某职工的工资信息。(3)修改模块修改模块的功能是修改某职工的部分工资信息。(4)查找模块查找模块的功能就是:输出指定编号职工的工资信息;输出姓名和部门联合查询的职工工资信息。(5)统计模块统计模块的功能是:统计全企业总人数及各部门的人数;统计企业的平均工资
9、及部门的平均工资。(6)排序模块排序的模块的功能是:对全企业的信息表按受教育年限及工资进行递增排序。(7)列表模块列表模块的功能是输出全体职工的工资信息。程序具体功能介绍: 功能介绍现在,需要存储这些人员的人事档案信息:员工编号, 员工姓名 ,年龄 ,性别 ,部门 ,职务, 受教育年限 ,工资 ,缺勤(天) ,罚金, 个税 ,实发数。其中,人员编号唯一,不能重复。添加删除功能:能根据学企业人事的变动情况,添加删除记录;查询功能:能根据编号及姓名和部门的复合查询进行查询;编辑功能(高级):根据查询对相应的记录进行修改,并存储;统计功能:能根据多种参数进行人员的统计及平均工资,统计要求同时显示被统
10、计者的信息;排序功能:按照受教育年限、工资进行排序;保存功能:能对输入的数据进行相应的存储;2 .2 系统框图系统框架图在本设计中,将主要实现以下功能:增加记录功能,修改记录功能,删除记录功能,以及筛选记录功能等。主菜单主菜单输入员工工资信息删除指定员工工资信息修改指定员工工资信息查找指定员工工资信息输出全体员工工资信息退出 图1 系统框架图 开发环境 本系统是在Visual C+平台上运行的,主要运行C及C+等语言。3 详细设计具体系统设计 结构体及类的设计与分析 :员工结构体的建立struct Worker_payint num; 用户选择要修改的数据输入编号是否有此编号找到调用修改函数提
11、示没有找到询问用户是否继续修改返回主菜单StartIF !head员工工资信息赋给headReturn*t=headWhile t&t-num!= num1t=t-nextIF t操作失败Return*p-headWhilep-nextp-next员工工资信息赋给pReturnEnd结:用户选择要修改的数据输入编号是否有此编号找到调用修改函数提示没有找到询问用户是否继续修改返回主菜单StartIF !head员工工资信息赋给headReturn*t=headWhile t&t-num!= num1t=t-nextIF t操作失败Return*p-headWhilep-nextp-next员工工
12、资信息赋给pReturnEnd成功之处:此系统程序虽然简单,却集结了基本的管理功能。删除,存储,统计等功能还是较为成功的。特别是人事档案的统计管理功能,使烦琐的工作变得简单轻松。不足之处:由于我们水平和时间有限,难免有不足和差强人意的地方。尤其是对于系统应该配以保密性的设置,可是由于我知识积累不够,做不出来。还请迟老师海涵。两周的数据结构与算法课程设计结束了,在这几天的时间里,我自己独立完成了一个程序从构思结构,到编写代码,然后上机调试运行的过程,感觉自己收获很大。通过解决一个又一个的问题,熟悉了C+语言的应用。在设计过程中,在编程时条理清晰是至关重要的。主函数,函数,成员函数之间的层次关系,
13、调用关系一定要有一个全面的把握,尤其要体会类的封装性。另外很重要的一点就是一定要对链表的五种操作熟练的掌握。我理解了对于一个较大的程序,不可能一次编写出一个较大的系统,通常要采取自顶向下的设计思想,先设计主函数,再通过完善一个个的功能模块来完成程序的设计过程,在设计过程中要充分理解整个程序的设计思路,采用逐步细化的方式来完成整个程序。在编译,链接,调试的过程中一定要有耐心。因为一个程序中会有很多小的错误,甚至有的问题要几个小时才能解决。遇到问题,一定要全面分析,有时候还要向同学请教。总得来说,编程时极需要耐心的。 参考文献C语言大学实用教程 电子工业出版社、C+程序设计教程(第二版)高等教育出
14、版社 3、C语言程序设计教程 北京大学出版社4、C语言程序设计实例精粹 电子工业出版社 5、陈天华编.面向对象程序设计与Visual C+教程M.北京:清华大学出版社,2006程序清单:#include#include#include#includeusing namespace std;/*/*定义一个员工信息的结构体Worker_pay*/struct Worker_payint num; .endl;Worker_pay * p =Find(num);if(p)cout员工编号为num的员工工资信息:endl;cout员工编号 员工姓名 年龄 性别 部门 职务 学历 工资 缺勤(天) 罚
15、金 个税 实发数endl;Display(p);coutendl;return;/*/.endl;Worker_pay * p=Find(name,department); if(p)cout员工姓名为name部门为department的员工工资信息:endl;cout员工编号 员工姓名 年龄 性别 部门 职务 学历 工资 缺勤(天) 罚金 个税 实发数endl;Display(p);coutendl;return;/*void Worker:Search(string department)coutSearch.endl;Worker_pay * p=Find(department); if
16、(p)入员工信息 ttendl;couttt n+.删除指定员工编号信息 ttendl;couttt n+.修改指定员工编号信息 ttendl;couttt n+.查找指定员工编号信息 ttendl; couttt n+.姓名和部门复合查询信息ttendl; couttt n+.输出全体员工信息 ttendl; couttt n+.某部门平均工资及信息 ttendl; couttt n+.某部门员工工资排序 ttendl; couttt n+.读入文件 ttendl; couttt n+.员工不同条件下的排序 ttendl;couttt 0.退出ttttendl;coutttttendl;co
17、utselect;return select;/*/功能/功能:用于统计某部门平均工资void Worker:Listavg(string department)float sum=0;float avg=0;if(!head) return ;Worker_pay * p=head;int n=0; cout员工编号 员工姓名 年龄 性别 部门 职务 学历 工资 缺勤(天) 罚金 个税 实发数department=department)/cout员工编号 员工姓名 年龄 性别 部门 职务 学历 工资 缺勤(天) 罚金 个税 实发数real_wage;n+;p=p-next;if(n!=0)a
18、vg=sum/n; cout平均工资(实得):avg元endl;else cout信息错误!endl;void Findavg() string department;cout当输入的部门为-1是表示结束输入endl;docoutdepartment;if(department=-1)continue;/*Worker_pay * p=head;while(p)if(p-department=department) break;p=p-next;if(!p)cout错误,没有该部门!endl;coutcindepartment;if(department=-1)continue;*/ /Wor
19、ker_pay * p=search(department);(department);while(department!=-1);return;/*/部门内部排序/*void Worker:paixu(string department)/if(!head) /return ;Worker_pay * p,*temp,*t,*g; / Worker_pay * q,*small;g=NULL;temp= new Worker_pay ;p=head;g-next=t; /t= new Worker_pay;while(p!=NULL) t= new Worker_pay;if (p-depa
20、rtment=department) cout员工编号 员工姓名 年龄 性别 部门 职务 学历 工资 缺勤(天) 罚金 个税 实发数num=p-num ;t-name=p-name; t-age=p-age; t-sex=p-sex;t-department=p-department; t-title=p-title; t-wage=p-wage; t-eduage=p-eduage; t-day=p-day; t-allowance=p-allowance; t-real_wage=p-real_wage; t=t-next;p=p-next;if(g-next=NULL)return;el
21、se/*for(t=g-next;t-next!=NULL;t=t-next)small=t;for(q=t-next ;q!=NULL;q=q-next)if(q-wagewage)small=q;if(small!=t) temp-eduage=t-eduage;t-eduage=small-eduage;small-eduage=temp-eduage;temp-num=t-num;t-num=small-num;small-num=temp-num; temp-name=t-name;t-name=small-name;small-name=temp-name; temp-age=t-
22、age;t-age=small-age;small-age=temp-age; temp-sex=t-sex;t-sex=small-sex;small-sex=temp-sex; temp-department=t-department;t-department=small-department;small-department=temp-department;temp-title=t-title;t-title=small-title;small-title=temp-title; temp-wage=t-wage;t-wage=small-wage;small-wage=temp-wag
23、e; temp-day=t-day;t-day=small-day;small-day=temp-day; temp-allowance=t-allowance;t-allowance=small-allowance;small-allowance=temp-allowance; temp-tax=t-tax;t-tax=small-tax;small-tax=temp-tax; temp-real_wage=t-real_wage;t-real_wage=small-real_wage;small-real_wage=temp-real_wage; while(!g)g-next=t;t=t
24、-next; cout员工编号 员工姓名 年龄 性别 部门 职务 学历 工资 缺勤(天) 罚金 个税 实发数next; */ /cout员工编号 员工姓名 年龄 性别 部门 职务 学历 工资 缺勤(天) 罚金 个税 实发数next; /*/*void order()string department;cout当输入的部门为-1是表示结束输入endl;docoutdepartment;if(department=-1)continue;(department);while(department!=-1);return;*/*/排序void Worker: sort_data()cout请输入您需
25、要排序的项目: 1学历,2工资choice;Worker_pay * p,*q,*small,*temp;temp= new Worker_pay ; /head-next=p;switch (choice)case 1 :for(p=head;p-next!=NULL;p=p-next)small=p;for(q=p-next ;q!=NULL;q=q-next)if(q-eduageeduage)small=q;if(small!=p) temp-eduage=p-eduage;p-eduage=small-eduage;small-eduage=temp-eduage;temp-num=
26、p-num;p-num=small-num;small-num=temp-num; temp-name=p-name;p-name=small-name;small-name=temp-name; temp-age=p-age;p-age=small-age;small-age=temp-age; temp-sex=p-sex;p-sex=small-sex;small-sex=temp-sex; temp-department=p-department;p-department=small-department;small-department=temp-department;temp-ti
27、tle=p-title;p-title=small-title;small-title=temp-title; temp-wage=p-wage;p-wage=small-wage;small-wage=temp-wage; temp-day=p-day;p-day=small-day;small-day=temp-day; temp-allowance=p-allowance;p-allowance=small-allowance;small-allowance=temp-allowance; temp-tax=p-tax;p-tax=small-tax;small-tax=temp-tax
28、; temp-real_wage=p-real_wage;p-real_wage=small-real_wage;small-real_wage=temp-real_wage; cout员工编号 员工姓名 年龄 性别 部门 职务 学历 工资 缺勤(天) 罚金 个税 实发数next;/cout员工编号 员工姓名 年龄 性别 部门 职务 学历 工资 缺勤(天) 罚金 个税 实发数next=p;p=p-next;p-next;*/*while(!p)Display(p);p=p-next;*/ break;case 2 :for(p=head;p-next!=NULL;p=p-next)small=
29、p;for(q=p-next ;q!=NULL;q=q-next)if(q-wagewage)small=q;if(small!=p) temp-eduage=p-eduage;p-eduage=small-eduage;small-eduage=temp-eduage;temp-num=p-num;p-num=small-num;small-num=temp-num; temp-name=p-name;p-name=small-name;small-name=temp-name; temp-age=p-age;p-age=small-age;small-age=temp-age; temp-sex=p-sex;p-sex=small-sex;small-sex=temp-sex; temp-department=p-department;p-department=small-department;small-department=temp-department;temp-title=p-title;p-title=small-title;small-title=temp-title; temp-wage=p-wage;p-wage=small-wage;small-wage=temp-wage; temp-day=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安全与教育课件
- 医学统计应用试题及答案解读
- 小学生春游安全教育
- 2025年文化概论考试的题型与答案分析
- 传统文化对现代行政影响的探讨试题及答案
- 劳动教育与素质培养体系构建
- 护理教育实践中的创新实践与2025年试题与答案
- 行政法学考试重要性试题及答案
- 经济法概论应试技巧分享试题及答案
- 小学生班会课课件
- 2022年同等学力人员申请硕士学位日语水平统一考试真题
- 文学欣赏电子教案(全)完整版课件整套教学课件
- DBJ51∕T 153-2020 四川省附着式脚手架安全技术标准
- 游泳池设备操作培训课件
- 城轨道交通人因事故分析及评价研究
- (完整版)羊水栓塞应急预案演练记录
- ZYWL-4000型履带式钻机
- (高清版)建筑防护栏杆技术标准JGJ_T 470-2019
- 脑梗死标准病历、病程记录、出院记录模板
- 50MPa路面抗折混凝土配合比
- 油阀座加工工艺与夹具设计说明
评论
0/150
提交评论