[键入文字]1南阳理工学院本科生毕业设计(论文)学院:软件学院专业:软件工程学生:李明慧指导老师:陈珂完成日期:2016年6月[键入文字]2人事管理系统的设计与实现摘要此次课程设计为人事管理系统,由Devc编译器编译而成。通过本系统,在主界面老板可以通过提示的操作,对四类人员进行录入,查询,升级,修改,增加,删除等管理操作;一般人员可以进行查看四类人员信息的操作。系统主要包含了技术,业务,文秘,财务四类人员,每一类都包含人员的四项基本信息:姓名,编号,等级,薪水。本次程序设计共有六个类,一个包含四项基本信息和输入输出纯虚函数的基类,四个包含四类人员信息和操作派生类,还有一个管理各项人员的老板类,它公有继承了前边四个派生类。通过此系统用户可以简洁方便的查看公司各类人员四项基本信息,老板也可轻松进行人员各项管理,从而实现高效的管理模式,为公司企业商家等创造最大化的经济效益。关键字:管理系统基类继承纯虚函数[键入文字]3目录1软件需求分析说明书1.1需求分析1.2功能简介1.2.1人员录入功能1.2.2人员管理功能1.2.3统计功能1.2.4打印功能1.3界面介绍与要求1.4数据结构要求2系统分析与设计2.1系统分析2.1.1功能图2.1.2流程图3软件的实现3.1主系统头文件和基类的定义3.2购买商品代码解释3.3添加商品代码解释3.4删除商品代码解释3.5修改商品代码解释3.6查询商品代码解释3.7统计商品代码解释4系统功能实现4.1系统功能主菜单界面实现4.2人员录入信息界面实现4.3查询人员信息界面实现4.4修改人员信息界面实现4.5升级人员等级界面实现4.6增加人员信息界面实现4.7删除人员信息界面实现4.8显示人员信息界面实现4.9统计人员个数界面实现5软件测试6软件使用说明书6.1录入功能模块的使用说明6.2人事管理功能的使用说明6.3打印功能的使用说明6.4统计功能的使用说明参考文献结束语[键入文字]41软件需求分析说明书1.1需求分析人事管理系统就是对人力资源的取得,开发,保持和利用等方面进行计划、组织、指挥和控制活动。研究人与人之间的关系,细条人与事的配合,充分开发人力资源,挖掘人的潜能,调动人的积极性,实现组织的既定目标,使经济利益最大化。作为企业信息管理的一个子系统,人事管理系统应该具备MIS的各项特征,而且需要考虑人为的因素,在研发的过程中应该重视人的行为,需要领导的亲自参加。人事管理系统主要提供人事管理整体解决方案,在提高工作效率的同时,将人事管理同企业战略发展紧密结合,借此达到增强企业和单位整体竞争的目的。1.2功能简介1.2.1人员录入功能本功能主要是针对老板使用。老板通过主页面提示菜单键入相对应数字,一一将四类人员姓名,编号,等级,薪水输入到四个文件中保存。每类人员当输入姓名为”no”时,系统会结束对此类人员信息的输入。1.2.2人员管理功能人员管理功能主要是针对公司老板使用,对公司人员进行简单的管理。本功能当中主要可以实现各类人员的查询、修改、升级、增加和删除等功能。(1)查询信息通过主页面提示菜单键入相对应数字进入添查询人员选项,然后进入查询的小界面,再根据提示键选择要查询的那类人员,输入要查寻的此类人员的姓名,如果找到就显示此人员的四项基本信息;如果没有找到就显示“很抱歉,没有查到你想找的人员”。(2)修改信息通过主页面的提示菜单键入相应数字进入修改人员信息选项,然后选择修改哪类人员,再根据姓名查询要修改的人员信息,若查到就修改,查不到给出提示信息。[键入文字]5(3)人员升级通过主页面的提示菜单键入相应数字进入升级人员选项,然后进入小界面,选择要升级的那类人员。技术和业务b、c类人员根据薪水升级,即给b、c类中薪水最高的升级;文秘和财务人员根据编号升级,即给b类中编号最靠前的那个升为a级。(4)增加人员信息通过主页面的提示菜单键入相应数字进入增加人员信息选项,然后进入小界面,选择要增加哪类人员信息,再输入要添加人员的等级,利用数组增加成员的方式在此等级的末尾添加人员的姓名,薪水,编号。(5)删除人员信息通过主页面的提示菜单键入相应数字进入删除人员信息选项,然后进入小界面,选择要删除哪类人员信息,再输入要删除人员的姓名,若找到该人员,就利用数组删除成员的方式删除该人员信息,若未找到,给出提示信息。1.2.3人员显示功能此功能主要是提供显示功能。用户和老板可通过主页面的显示菜单键相应的数字输出文件中所存储的四类人员(技术,业务,文秘,财务)的姓名、编号、等级等基本信息。1.2.4人员统计功能此功能主要是统计四类人员的人数。老板可通过菜单键进入统计选项,然后打开各个文件读取文件中人员数并输出即可。1.3界面介绍与要求[键入文字]6图1-1管理员进入的功能界面本系统的软件界是使用C++编译生成的一个系统操作菜单。操作菜单界面总共有9个选项可以供老板操作选择,分别为录入信息,查询信息,修改信息,升级信息,增加信息,删除信息,显示信息,统计信息,退出系统。菜单页面下方有可供用户选择操作项目的指令,当用户选择并输入1-9中的任意数字,系统便会进入相应的功能操作。如果出现错误操作,系统会自动跳出回到主菜单界面。图1-2一般用户进入的功能界面操作菜单界面总共有2个选项可以供一般用户操作选择,分别为显示信息,退出系统。菜单页面下方有可供用户选择操作项目的指令,当用户选择并输入1-2中的任意数字,系统便会进入相应的功能操作。如果出现错误操作,系统会自动跳出回到主菜单界面。页面的组织和设计要求先构思好系统的功能模块和结构框架,分析系统中的各个实体以及它们间的具体联系关系,根据问题的描述先设计好系统的类层次,完成类层次中各个成员函数的定义,实现每一个模块层次之间的衔接,从而设计出工整漂亮的管理系统,要求整个系统的界面设计简洁、美观,让老板使用起来方便快捷。1.4数据结构要求在整个系统当中除了使用类层次结构、继承机制等,还使用的数据结构当中[键入文字]7的数组,用来进行人员信息的各项功能。包括人员增加、修改、删除、查询、升级等。可以通过文件进行存储、访问操作。2系统分析与设计2.1系统分析系统的主要工作流程图如下,当进入操作主菜单界面时,会有相应的不同的操作选项供用户选择,但操作完成后就返回到系统主菜单。2.1.1功能图图2-1管理员功能模块图图2-2一般用户功能模块图2.1.2流程图人事管理系统:管理员录入信息查询信息修改信息升级信息增加信息删除信息显示信息统计信息一般用户显示信息退出系统开始[键入文字]8管理员一般用户否是图2-3人事管理系统流程图输入身份输入密码密码是否正确?录入信息查询信息修改信息升级信息增加信息删除信息统计信息显示信息退出系统结束显示信息[键入文字]93软件的实现3.1主系统头文件和基类的定义#includeiostream#includecstdlib#includefstream#includewindows.husingnamespacestd;classbase{public:stringname;...........;virtualvoidinput()=0;virtualvoiddisplay()=0;};classskill:publicbase{public:......friendvoidimproverank1();friendvoidshow();};classtalk:publicbase[键入文字]10{public:.....;friendvoidimproverank2();friendvoidshow();};classsecretary:publicbase{public:......;friendvoidimproverank3();friendvoidshow();};classfinance:publicbase{public:......;friendvoidimproverank4();friendvoidshow();};classboss:publicskill,publictalk,publicsecretary,publicfinance{public:......;friendvoidshow();};3.2查询人员信息代码[键入文字]11voidboss::find(){inti,n,j,code1;stringemployee;cout'\t''\t'######################################endl;cout'\t''\t'###########1.查看技术方面###########endl;cout'\t''\t'###########2.查看业务方面###########endl;cout'\t''\t'###########3.查看文秘方面###########endl;cout'\t''\t'###########4.查看财务方面###########endl;cout'\t''\t'###########5.退出查询系统###########endl;cout'\t''\t'######################################endl;for(i=0;;i++){cout请输入选项endl;cinn;switch(n){case1:{ifstreaminfile(f1.text,ios::in);if(!infile){cerropenerror!endl;exit(1);}infilet;qt=a;cout请输入要查找的姓名endl;cinemployee;[键入文字]12for(j=0;j=t;j++){infilea[j].numa[j].namea[j].ranka[j].wage;if(a[j].name==employee){code1=1;cout编号姓名等级薪水endl;(qt+j)-display();break;}elsecode1=0;}if(code1==0){cout很抱歉,没有您要查找的名字endl;}infile.close();};break;case2:{};break;case3:{};break;case4:{};break;case5:bossmenu();break;default:couterror!!!endl;break;}}}[键入文字]133.3修改人员信息代码voidboss::revise(){inti,n,j,k,m,code2;stringemployee;cout'\t''\t'######################################endl;cout'\t''\t'###########1.修改技术方面###########endl;cout'\t''\t'###########2.修改业务方面###########endl;cout'\t''\t'###########3.修改文秘方面###########endl;cout'\t''\t'###########4.修改财务方面###########endl;cout'\t''\t'###########5.退出修改系统###########endl;cout'\t''\t'######################################endl;for(i=0;;i++){cout请输入选项endl;cinn;if(n==1){ifstreaminfile(f1.text,ios::in);if(!infile){cerropenerror!endl;exit(1);