企业人事资源管理系统.docx
《企业人事资源管理系统.docx》由会员分享,可在线阅读,更多相关《企业人事资源管理系统.docx(21页珍藏版)》请在冰豆网上搜索。
企业人事资源管理系统
郑州工业应用技术学院
课程设计说明书
题目:
企业人事资源管理系统
姓名:
院(系):
信息工程学院
专业班级:
14级计算机科学与技术1班
学号:
指导教师:
成绩:
时间:
2015年11月14日至2015年12月4日
郑州工业应用技术学院
课程设计任务书
题目企业人事资源管理系统
专业、班级14级计算机科学与技术1班
学号1401110128姓名
摘要:
人力资源信息系统的内容包括企业战略、经营目标及常规经营计划信息,企业外部的人力资源供求信息及对这些信息的影响因素,企业现有人力资源的信息。
高度集成化的HRIS总是需要实现一些基本的HR任务:
福利管理、培训管理和招聘、人员基本信息、轮班计划、岗位管理、能力评估和一些常规的报表。
而更加智能的HRIS应该支持员工自助服务,互动的语音服务(IVR),自动邮件系统和简单的报表设计。
关键字:
c++MFC编程
完成期限:
指导教师签名:
课程负责人签名:
年月日
绪论
由于企业规模的扩大和市场竞争的更加激烈,各类企业都愈来愈认识到人力资源管理的重要性及提升企业自身人力资源管理水平的迫切性,而人力资源管理水平的提升不仅需要高素质的管理人员,而且也需要信息化工具进行辅助。
人力资源管理软件也就应运而生了传统的企业人力资源管理采用人工方式,记录量大,易出错,旧式的用纸介质材料来记录的人工管理方式已不适合现代企业公司的发展了。
要应对高强度的竞争无疑需要优秀的管理人才,而科学管理的实施在信息化的今天是离不开数字化工具做辅助的。
特别在组织规模不断扩大的今天,作为管理人员和组织领导者要想对组织进行有效的管理和正确的决策就必须借助于数字化工具的帮助。
作为计算机应用的一部分,使用计算机对人力资源信息进行管理,具有手工管理所无法比拟的优点。
例如:
检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高人力资源信息的效率,也是企业的科学化、正规化管理、以及与世界接轨的重要条件。
基于上述分析,可见,企业人力资源信息管理系统是一个企业单位不可缺少的部分,它的内容对于企业的决策者和管理者来说都是至关重要的。
人力资源信息管理就是把分散在企业单位的职工信息实行统一、集中、规范的收集管理,建立分类编号管理、电脑存储查询等现代化、专业化的管理系统。
如果引入现代管理的思想,使企业拥有一套集人员、考勤、工资、评价、系统功能等于一体的较为完善的人力资源管理系统,将能够为它提供充足的信息和快捷的查询手段。
系统的创建与实施可以为企业人力资源管理的系统化、自动化和规范化提供较为有效的支持手段。
这不但有利于企业的统一性管理,而且还较大地提高了企业的全体员工的工作效率和积极性。
目录
第1章选题2
1.1题目背景2
1.2系统实现的具体分工2
1.2.1标题2
1.2.2题目要求2
1.3开发环境2
第2章设计内容.............................................................................................3
2.1实现功能3
2.2概要设计(涉及类的框图)3
2.3界面设计4
第3章系统实现5
3.1涉及知识点5
3.2系统运行(主要运行界面抓图)5
3.3源程序代码9
第4章结束语(心得体会)24
第1章选题
1.1题目背景
企业人事管理系统是企业管理中的一个重要内容,随着时代的进步,企业人员数量也不断增加、分工的不断细化、各个行业间联系的不断密切,对人事管理的要求也不断提高。
早期的人工方式的管理系统已不适合现代企业的公司的发展,实现企业人事管理的系统化、规范化、自动化,是现代企业管理的首选。
1.2系统实现的具体分工
系统分为职工类、职工数据类、权限设置类以及主函数等几大模块,其中职工类实现对公司职工个人基本信息的描述,职工数据类实现公司对职工的维护,权限设置类实现对使用者的操作权限设置功能,main()函数实现对程序主界面的引导。
1.2.1标题
企业人事管理系统
1.2.2题目要求
设计一个小型人事管理系统,假设公司只有经理、业务经理、普通职工,需要描述他们的信息,如职工编号、姓名、电话、住址等信息,且需要设置系统操作权限,实现界面的转换,增、删、查、改、显示功能。
1.3开发环境
VisualC++6.0
机型:
方正电脑
处理器名称:
Intel(R)Core(TM)2DuoCPUE7200@2.53GHz
硬盘驱动器:
WDCWD1600AAJS-22WAAO
系统内存:
金士顿内存2GB
显示卡:
NVIDIAGeFORCE9400GT
显示器:
方正科技FG981-W9
操作系统:
MicrosoftWindowsXPProfessional
第2章设计内容
2.1实现功能
系统主要包括企业系统管理人员对企业职工信息的增、删、查、改等功能和普通职工对职工信息的查看功能。
用户只需在进入操作界面后选择相应的登陆身份就可以进行相应的操作。
2.2概要设计(涉及类的框图)
2.3界面设计
界面设计在工作流程上分为结构设计、交互设计、视觉设计三个部分。
结构设计StructureDesign
结构设计也称概念设计(ConceptualDesign),是界面设计的骨架。
该人事管理系统运行时界面上的目录体系和词语定义易于用户理解和操作,例如主界面的目录体系包括1操作、0返回。
选择1操作又会进入登陆界面,其目录体系包括1系统管理员、2职工。
选择1系统管理员会进入管理员操作界面,其目录体系包括1增加2更改3删除4查找5显示6全删7帮助0退出,选择2会进入职工操作界面,其目录包括1查找2退出,然后选择相应的操作进行操作。
这些都充分体现了结构化的界面设计理念。
交互设计InteractiveDesign
交互设计的目的是使产品让用户明白、清楚,且能简单使用。
任何产品功能的实现都是通过人和机器的交互来完成的。
该人事管理系统中包含1)清楚的错误提示,误操作后,系统提供有针对性的提示。
例如管理员输入的帐号或密码错误时,系统会给出相应的提示,以指导管理员进行正确的操作。
以及增、删、查、改等功能实现中的提示信息。
2)使用用户的语言,而非技术的语言。
3)方便退出。
4)导航功能。
随时转移功能,很容易从一个功能跳到另外一个功能。
例如操作者所需各服务间功能转换。
人的因素被作为设计的核心体现出来。
视觉设计VisualDesign
该管理系统界面清晰明了,在结构设计的基础上,参照目标群体的心理模型和任务达成进行了视觉设计。
第3章系统实现
3.1涉及知识点
类封装、面向对象程序设计、字符串的应用、条件语句、循环语句的使用、库函数(屏幕清零函数)的应用、过程化设计的思想等。
3.2系统运行(主要运行界面抓图)
主界面
图3.2-1(主界面)
身份验证界面
图3.2-2(身份验证)
职工操作界面
图3.2-6(职工进入系统)
图3.2-7(职工进行查找)
图3.2-8(职工查找)
退出界面
第4章结束语(心得体会)
这次课程设计历经一个星期左右,通过这一个星期的学习,发现了自己的很多不足,自己知识的很多漏洞,也有很多闻所未闻的东西,从而更加明白知识扎实的重要性,理解实践能力的重要性!
因为基础知识的不扎实让我在这次课程设计中走了许多弯路,不过我认为是值得的,它大大的补充了我知识不足的那一面,我始终相信付出必有收获。
这次的课程设计,可以说是苦乐交加。
在程序设计过程中,不仅检验、巩固了我所学的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。
在设计过程中,作为组长,如何分配任务,协调各种事宜,与同学分工设计,和同学们相互探讨,相互学习,相互监督。
学会了合作,明白了团结的力量是强大的,学会了运筹帷幄,学会了宽容,学会了理解,也学会了做人与处世。
课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。
它为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。
提高学生运用所学知识解决实际问题的能力。
课程设计这类实践训练是我们迈向社会,从事职业工作前一个必不少的过程。
“千里之行始于足下”,通过这次课程设计,我深深体会到这句千古名言的真正含义。
我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础。
通过这次人事管理系统的设计,我在多方面都有所提高。
首先,整体与局部的把握,在系统设计前,需要整体思考人事管理系统所包含的信息及其实现的功能,在设计过程中,再思考局部功能实现的完整性与整个程序的结合。
其次,在实现用户权限设置这个功能时,通过查阅课本、资料,实践,对字符串的使用更加熟悉、了解,能够熟练运用字符串,而且加强了对类中参数传值的使用,巩固了类定义,函数成员使用等知识,并通过条件语句实现不同的人设置不同的操作。
再者,实现删除功能时,通过查询资料、借鉴前人的经验,明白由于使用的是文件链表操作,可以使用标记实现删除功能,且保证删除和全删的标记不同。
然后,在实现查找功能时,更熟练了指针对象的使用。
最后,在整个程序运行时,考虑到屏幕出现的效果,查阅资料及其前人的登录系统代码,了解了库函数中的屏幕清零函数,并能正确使用。
课程设计使我对c++课程又进行了系统的复习,独立思考的能力也有了提高。
在程序设计运行过程中遇到错误,就全组的人一起讨论、研究,集思广益,更改代码,不断的尝试实践运行各种方法……虽然在这个过程中遇到了很多问题,但程序编辑成功后那种激动,问题解决中遇到挑战自己亲自动手,终于解决那种成就感,几个人一起讨论,一起分析,同悲同喜那种患难与共的感觉,都使我们深深地体会到了感到学习的快乐和团结的力量,也让我们真正学习到了一些的知识,使我们感到前途是光明的、充满挑战与趣味的。
通过这次编程使我们认识到在以后的学习中要多做练习增加自己的知识面才能更好的适应自己的工作,在其中由最初的沮丧中出来,充满信心地去解决问题。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
而且这次课程设计也让我受益匪浅,真切感觉到任何事情都需要细心和耐心,二者缺一不可。
没有细心,做事情永远都是事倍功半,一旦某个细节错了,就会导致某个部分应用不了额,甚至可能导致整个系统都运行不了。
没了耐心,可能就会导致这件事不能够完成,经常半途而废。
在此感谢我们的张老师对我们细心的指导,同时也非常感谢对我帮助过的同学们,谢谢你们对我的帮助和支持,让我感受到同学的友谊。
本次课程设计在默契、愉快的氛围中落下帷幕,这是一次快乐充实的实习。
参考文献
[1]皮德常.C++程序设计教程(第一版).清华大学出版社
[2]钱能.C++程序设计教程(第二版).清华大学出版社
[3]C++入门经典(清华大学出版)
[4]谭浩强.C++程序设计教程清华大学出版社
[5]数据结构(C++版)清华大学出版社
附录:
部分程序(带有详细解释)
#include
#include
#include
#include
#include
usingstd:
:
map;
constintMaxr=100;
classJusrition//身份验证类
{
private:
charzh[11];//用户帐号
charmm[21];//用户密码
intmi;
public:
voidsetData(chara[],charb[]){
strcpy(zh,a);
strcpy(mm,b);
}
*————————权限函数(如上图3.2-2)————————————*
intjudge()//用户权限判断函数
{
ints,t,i=1;
do
{
cout<";
cin>>zh;
cout<";
cin>>mm;
s=strcmp(zh,"abc");
t=strcmp(mm,"1234");
if(s||t)
cout<<"您输入的信息错误,请重新输入!
\n";
else
return0;
i++;
}while(i);
};
classEmployee//职工类
{
inttag;//删除标记
intno;//职工编号
charname[20];//职工姓名
charzw[20];//职务
intsalary;//职工工资
charcellphone[20];//职工电话
charaddress[50];//家庭住址
public:
Employee(){}
char*getname(){returnname;}//获取名字
intgettag(){returntag;}//获取标记
intgetno(){returnno;}//获取编号
intgetsalary(){returnsalary;}
char*getaddress(){returnaddress;}
char*getcellphone(){returncellphone;}
voidsetzw(charq[])//设置职务
{
strcpy(zw,q);
}
voidsetname(charna[])//设置名字
{
strcpy(name,na);
}
voidsetaddress(chara[])
{strcpy(address,a);}
voidsetcellphone(charc[])
{strcpy(cellphone,c);}
voidgetsalary(intsa){salary=sa;}
voiddelna(){tag=1;cout<<"删除成功!
"<voidaddemp(intn,intsa,char*na,char*q,char*a,char*c)//增加
{
tag=0;
no=n;
salary=sa;
strcpy(name,na);
strcpy(zw,q);
strcpy(address,a);
strcpy(cellphone,c);
}
voiddisp()//显示职工信息
{
cout<<}
}
classDatabase//职工数据类
{
inttop;
Employeeread[Maxr];
Jusritionuser;//用户权限对象定义
public:
Database()//将职工信息从employee.txt读取到read[]中
{
Employees;
top=-1;
fstreamfile("employee.txt",ios:
:
in);
while
(1)
{
file.read((char*)&s,sizeof(s));
if(!
file)break;
top++;
read[top]=s;
}
file.close();
}
voidclear()//删除所有
{
top=-1;
}
intaddemp(intn,intsa,char*na,char*q,char*a,char*c)//增加职工
{
Employee*p=query(n);
if(p==NULL)
{
top++;
read[top].addemp(n,sa,na,q,a,c);
return1;
}
return0;
}
Employee*query(intempid)
{
for(inti=0;i<=top;i++)
if(read[i].getno()==empid&&read[i].gettag()==0)
return&read[i];
returnNULL;
}
Employee*query1(charempna[20])
{
for(inti=0;i<=top;i++)
if((read[i].getname()==empna)&&read[i].gettag()==0)
return&read[i];
returnNULL;
}
Employee*query2(charempa[50])
{for(inti=0;i<=top;i++)
if(read[i].getaddress()==empa&&read[i].gettag()==0)
return&read[i];
returnNULL;}
Employee*query3(charempc[20])
{
for(inti=0;i<=top;i++)
if(read[i].getcellphone()==empc&&read[i].gettag()==0)
return&read[i];
returnNULL;}
voiddisp()//职工信息显示
{
for(inti=0;i<=top;i++)
if(read[i].gettag()==0)
read[i].disp();
}
voidempdata();
~Database()//将read[]中的信息读入到employee.txt中
{
fstreamfile("employee.txt",ios:
:
out);//文件操作
for(inti=0;i<=top;i++)
if(read[i].gettag()==0)
file.write((char*)&read[i],sizeof(read[i]));
file.close();
}
};
voidDatabase:
:
empdata()//职工维护
{
intchoice=1;
intm=1;intb=1;intk;
charrname[20];
charraddress[50],rcellphone[20];
intempid;intempsa;intq;
Employee*r;
cin>>k;
if(k==1)
{
user.setData("abc","1234");
user.judge();
}
system("cls");//屏幕清零
while(choice!
=0)
{
if(k==1)
{
cout<<"职工维护1:
新增2:
更改5:
显示6:
全删0:
退出=>";
cin>>choice;
system("cls");//屏幕清零
switch(choice)
{
case1:
…………………………….(新增)break;
case2:
…………………………………(修改)break;
case3:
*——————————————主函数———————————————————*
voidmain()
{
intchoice=1;DatabaseEmpDB;
while(choice!
=0)
{
*———————————主界面显示信息(如上图3.2-1)———————————*
cout<<"****************************************************"<cout<cout<cout<cout<cout<cout<cout<cout<cout<cout<cout<cout<cout<cout<cout<cout<cout<cin>>choice;
system("cls");//屏幕清零
switch(choice)
{
case1:
while
(1)
{
*——————————————如上图(3.2-2)———————————————*
cout<cout<并以回车结束*\n";
cout<cout<cout<cout<cout<cout<EmpDB.empdata();break;
case0:
cout<*—————————退出界面显示信息(如上图3.2-10)———————*
cout<<"********************************************"<cout<