c“加”“加”课程设计人事管理报告.docx

上传人:牧羊曲112 文档编号:1893749 上传时间:2022-12-24 格式:DOCX 页数:32 大小:158.47KB
返回 下载 相关 举报
c“加”“加”课程设计人事管理报告.docx_第1页
第1页 / 共32页
c“加”“加”课程设计人事管理报告.docx_第2页
第2页 / 共32页
c“加”“加”课程设计人事管理报告.docx_第3页
第3页 / 共32页
c“加”“加”课程设计人事管理报告.docx_第4页
第4页 / 共32页
c“加”“加”课程设计人事管理报告.docx_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《c“加”“加”课程设计人事管理报告.docx》由会员分享,可在线阅读,更多相关《c“加”“加”课程设计人事管理报告.docx(32页珍藏版)》请在三一办公上搜索。

1、键入文字南阳理工学院本科生毕业设计(论文)学 院: 软件学院专 业:软件工程 学 生:李明慧 指导 老师: 陈 珂 完成日期:2016 年 6月人事管理系统的设计与实现摘要此次课程设计为人事管理系统,由Dev c编译器编译而成。通过本系统,在主界面老板可以通过提示的操作,对四类人员进行录入,查询,升级,修改,增加,删除等管理操作;一般人员可以进行查看四类人员信息的操作。系统主要包含了技术,业务,文秘,财务四类人员,每一类都包含人员的四项基本信息:姓名,编号,等级,薪水。本次程序设计共有六个类,一个包含四项基本信息和输入输出纯虚函数的基类,四个包含四类人员信息和操作派生类,还有一个管理各项人员的

2、老板类,它公有继承了前边四个派生类。通过此系统用户可以简洁方便的查看公司各类人员四项基本信息,老板也可轻松进行人员各项管理,从而实现高效的管理模式,为公司企业商家等创造最大化的经济效益。关键字:管理系统 基类 继承 纯虚函数目录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、解释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 统计功能的使用说明参考文献结束语1 软件需求分析说明书1.1 需求分析人事管理系统就是对人力资源的取得,开发,保持和利用等方面

4、进行计划、组织、指挥和控制活动。研究人与人之间的关系,细条人与事的配合,充分开发人力资源,挖掘人的潜能,调动人的积极性,实现组织的既定目标,使经济利益最大化。作为企业信息管理的一个子系统,人事管理系统应该具备MIS的各项特征,而且需要考虑人为的因素,在研发的过程中应该重视人的行为,需要领导的亲自参加。人事管理系统主要提供人事管理整体解决方案,在提高工作效率的同时,将人事管理同企业战略发展紧密结合,借此达到增强企业和单位整体竞争的目的。1.2 功能简介1.2.1 人员录入功能本功能主要是针对老板使用。老板通过主页面提示菜单键入相对应数字,一一将四类人员姓名,编号,等级,薪水输入到四个文件中保存。

5、每类人员当输入姓名为”no”时,系统会结束对此类人员信息的输入。1.2.2 人员管理功能人员管理功能主要是针对公司老板使用,对公司人员进行简单的管理。本功能当中主要可以实现各类人员的查询、修改、升级、增加和删除等功能。(1)查询信息通过主页面提示菜单键入相对应数字进入添查询人员选项,然后进入查询的小界面,再根据提示键选择要查询的那类人员,输入要查寻的此类人员的姓名,如果找到就显示此人员的四项基本信息;如果没有找到就显示“很抱歉,没有查到你想找的人员”。(2)修改信息通过主页面的提示菜单键入相应数字进入修改人员信息选项,然后选择修改哪类人员,再根据姓名查询要修改的人员信息,若查到就修改,查不到给

6、出提示信息。(3)人员升级通过主页面的提示菜单键入相应数字进入升级人员选项,然后进入小界面,选择要升级的那类人员。技术和业务b、c类人员根据薪水升级,即给b、c类中薪水最高的升级;文秘和财务人员根据编号升级,即给b类中编号最靠前的那个升为a级。(4)增加人员信息 通过主页面的提示菜单键入相应数字进入增加人员信息选项,然后进入小界面,选择要增加哪类人员信息,再输入要添加人员的等级,利用数组增加成员的方式在此等级的末尾添加人员的姓名,薪水,编号。(5)删除人员信息通过主页面的提示菜单键入相应数字进入删除人员信息选项,然后进入小界面,选择要删除哪类人员信息,再输入要删除人员的姓名,若找到该人员,就利

7、用数组删除成员的方式删除该人员信息,若未找到,给出提示信息。1.2.3 人员显示功能此功能主要是提供显示功能。用户和老板可通过主页面的显示菜单键相应的数字输出文件中所存储的四类人员(技术,业务,文秘,财务)的姓名、编号、等级等基本信息。1.2.4人员统计功能 此功能主要是统计四类人员的人数。老板可通过菜单键进入统计选项,然后打开各个文件读取文件中人员数并输出即可。1.3 界面介绍与要求 图1-1 管理员进入的功能界面本系统的软件界是使用C+编译生成的一个系统操作菜单。操作菜单界面总共有9个选项可以供老板操作选择,分别为录入信息,查询信息,修改信息,升级信息,增加信息,删除信息,显示信息,统计信

8、息,退出系统。菜单页面下方有可供用户选择操作项目的指令,当用户选择并输入1-9中的任意数字,系统便会进入相应的功能操作。如果出现错误操作,系统会自动跳出回到主菜单界面。 图1-2 一般用户进入的功能界面操作菜单界面总共有2个选项可以供一般用户操作选择,分别为显示信息,退出系统。菜单页面下方有可供用户选择操作项目的指令,当用户选择并输入1-2中的任意数字,系统便会进入相应的功能操作。如果出现错误操作,系统会自动跳出回到主菜单界面。页面的组织和设计要求先构思好系统的功能模块和结构框架,分析系统中的各个实体以及它们间的具体联系关系,根据问题的描述先设计好系统的类层次,完成类层次中各个成员函数的定义,

9、实现每一个模块层次之间的衔接,从而设计出工整漂亮的管理系统,要求整个系统的界面设计简洁、美观,让老板使用起来方便快捷。1.4 数据结构要求在整个系统当中除了使用类层次结构、继承机制等,还使用的数据结构当中的数组,用来进行人员信息的各项功能。包括人员增加、修改、删除、查询、升级等。可以通过文件进行存储、访问操作。2 系统分析与设计2.1 系统分析系统的主要工作流程图如下,当进入操作主菜单界面时,会有相应的不同的操作选项供用户选择,但操作完成后就返回到系统主菜单。2.1.1 功能图 管理员统计信息显示信息删除信息增加信息升级信息修改信息查询信息录入信息图2-1 管理员功能模块图 一般用户显示信息退

10、出系统 图2-2 一般用户功能模块图2.1.2流程图人事管理系统:开始管理员 输入身份一般用户输入密码密码是否正确?显示信息否是显示信息统计信息升级信息查询信息删除信息修改信息增加信息录入信息退出系统结 束 图2-3 人事管理系统流程图3 软件的实现3.1 主系统头文件和基类的定义#include#include#include#includeusing namespace std;class basepublic:string name;. . . . . . . . . . ; virtual void input()=0; virtual void display()=0; class

11、skill:public basepublic: . . . . . . friendvoid improverank1();friend void show();class talk:public basepublic:. . . . .; friend void improverank2();friend void show();class secretary:public basepublic:. . . . . .;friend void improverank3(); friend void show();class finance:public basepublic:. . . .

12、 . .;friend void improverank4(); friend void show();class boss:public skill,public talk,public secretary,public financepublic:. . . . . . ;friend void show(); ;3.2 查询人员信息代码void boss : find()int i,n,j,code1;string employee;couttt#endl; couttt# 1.查看技术方面 #endl; couttt# 2.查看业务方面 #endl; couttt# 3.查看文秘方面

13、#endl; couttt# 4.查看财务方面 #endl; couttt# 5.退出查询系统 #endl; couttt#endl; for(i=0;i+) cout请输入选项n;switch(n)case 1: ifstream infile(f1.text,ios:in);if(!infile) cerropen error!t;qt=a;cout请输入要查找的姓名employee; for(j=0;jaj.numaj.nameaj.rankaj.wage;if(aj.name=employee)code1=1;cout编号 姓名 等级 薪水display();break;else co

14、de1=0;if(code1=0)cout很抱歉,没有您要查找的名字endl;infile.close();break;case 2: ;break;case 3: ;break;case 4: ;break;case 5: bossmenu();break;default:couterror!endl;break;3.3 修改人员信息代码void boss : revise()int i,n,j,k,m,code2;string employee;couttt#endl; couttt# 1.修改技术方面 #endl; couttt# 2.修改业务方面 #endl; couttt# 3.修改

15、文秘方面 #endl; couttt# 4.修改财务方面 #endl; couttt# 5.退出修改系统 #endl; couttt#endl; for(i=0;i+)cout请输入选项n;if(n=1)ifstream infile(f1.text,ios:in);if(!infile)cerropen error!t;for(j=0;jaj.numaj.nameaj.rankaj.wage;cout请输入要修改的技术成员姓名employee;for(k=0;k=t;k+)if(ak.name=employee)code2=1;cout请输入正确的名字:ak.name;cout修改成功!en

16、dl; break;else code2=0;if(code2=0)cout很抱歉,没有找到你想修改的名字!endl;infile.close();ofstream outfile(f1.text,ios:out);if(!outfile)cerropen error!endl;exit(1);outfiletendl;for(j=0;j=t;j+)outfileaj.numtaj.nametaj.ranktaj.wageendl;outfile.close();if(n=2) if(n=3) if(n=4) if(n=5) bossmenu();3.4 升级人员代码void boss : i

17、mprove()int i,n,j;string employee;couttt#endl; couttt# 1.升级技术方面 #endl; couttt# 2.升级业务方面 #endl; couttt# 3.升级文秘方面 #endl; couttt# 4.升级财务方面 #endl; couttt# 5.退出升级系统 #endl; couttt#endl; for(i=0;i+)cout请输入选项n;if(n=1)ifstream infile(f1.text,ios:in);if(!infile)cerropen error!t;for(j=0;jaj.numaj.nameaj.rankaj

18、.wage;improverank1();cout升级成功!endl;infile.close();ofstream outfile(f1.text,ios:out);if(!outfile)cerropen error!endl;exit(1);outfiletendl;for(j=0;j=t;j+)outfileaj.numtaj.nametaj.ranktaj.wageendl;outfile.close(); if(n=2) if(n=3) if(n=4) if(n=5) bossmenu(); 3.6增加人员信息代码void boss : add() int i,j,n,f; flo

19、at pro,sell; char r; couttt#endl; couttt# 1.增加技术方面 #endl; couttt# 2.增加业务方面 #endl; couttt# 3.增加文秘方面 #endl; couttt# 4.增加财务方面 #endl; couttt# 5.退出增加系统 #endl; couttt#endl; for(i=0;i+)cout请输入选项:n;if(n=1)ifstream infile(f1.text,ios:in);if(!infile)cerropen error!t;for(j=0;jaj.numaj.nameaj.rankaj.wage; infil

20、e.close(); cout请输入技术增加成员的等级r;for(j=0;j=f+1;j-)aj+1.num=j+1; aj+1.name=aj.name; aj+1.rank=aj.rank; aj+1.wage=aj.wage;af+1.num=f+1;af+1.rank=r;cout请输入技术增加成员的姓名 代码量 af+1.nameaf+1.wage;cout添加成功!endl;ofstream outfile(f1.text,ios:out);if(!outfile)cerropen error!endl;exit(1);outfilet+1endl;for(j=0;j=t+1;j+

21、)outfileaj.numtaj.nametaj.ranktaj.wageendl;outfile.close();if(n=2) if(n=3) if(n=4) if(n=5) bossmenu(); 3.7 删除人员信息代码void boss : del()int i,j,n,f,code3;string employee;couttt#endl; couttt# 1.删除技术方面 #endl; couttt# 2.删除业务方面 #endl; couttt# 3.删除文秘方面 #endl; couttt# 4.删除财务方面 #endl; couttt# 5.退出增加系统 #endl; c

22、outtt#endl;for(i=0;i+)cout请输入选项n;if(n=1) ifstream infile(f1.text,ios:in);if(!infile)cerropen error!t;for(j=0;jaj.numaj.nameaj.rankaj.wage; infile.close();cout请输入技术方面要删除的人员姓名employee;for(j=0;j=t;j+)if(aj.name=employee)code3=1;f=j;cout删除成功!endl;break; else code3=0;if(code3=0)cout很抱歉,没有找到你要删除的技术成员!endl

23、;for(j=f;jt;j+)aj.num=f;aj.name=aj+1.name;aj.rank=aj+1.rank;aj.wage=aj+1.wage;ofstream outfile(f1.text,ios:out);if(!outfile)cerropen error!endl;exit(1);t=t-1;outfiletendl;for(j=0;j=t;j+)outfileaj.numtaj.nametaj.ranktaj.wageendl;outfile.close();if(n=2) if(n=3) if(n=4) if(n=5) bossmenu();3.8显示人员信息代码vo

24、id show()int i;ifstream infile1(f1.text,ios:in);if(!infile1)cerropen error!endl;exit(1);cout技术endl; cout编号 姓名 等级 薪水t;qt=a;for(i=0;iai.numai.nameai.rankai.wage;(qt+i)-display();infile1.close(); .3.9统计人员信息代码void tongji()ifstream infile1(f1.text,ios:in);if(!infile1)cerropen error!t;cout技术人员共t+1名endl;in

25、file1.close(); . . . cout公司人事总人数:t+t2+t3+t4+4endl;4 系统功能实现4.1 系统功能主菜单界面实现图4-1 系统管理员开始界面4.2 人员录入信息界面实现图4-2 管理员录入操作4.3 查询人员信息界面实现 图4-3 管理员查询操作4.4 修改人员信息界面实现图4-4 管理员修改操作4.5 升级人员等级界面实现 图4-5 管理员升级操作4.6增加人员信息界面实现 图4-6 管理员添加操作4.7删除人员你信息界面实现图4-7 管理员删除操作4.8显示人员信息界面实现 图4-8 管理员打印操作4.9统计人员信息 图4-9 管理员统计操作6 软件使用说

26、明书6.1 录入功能模块的使用说明在使用本系统首先会进入系统首页面上面有相应数字操作提示,请选择要进行的操作项目,用户键入1便进入录入人员信息功能。根据相关提示输入各类人员的基本信息,录入完毕后,返回主页面。6.2 人员管理功能的使用说明在本管理模块主要有个功能,即人员添加功能、删除功能、修改功能、查询功能,升级功能,主要适用于公司老板对公司人员进行管理。根据首页面的提示信息进入相依的操作。键入2 进入查询功能,在不同的类中根据姓名进行查询然后自动保存。键入3 进入修改功能,在不同的类中,根据姓名查询到要修改的人员,然后输入正确的名字,然后自动保存。键入4 进入升级功能,通过数字选择要升级的那

27、类人员,然后自动保存。键入5 进入增加功能,先输入人员等级,再输入人员基本信息即可,然后自动保存。键入6 进入删除功能,在不同的类中根据姓名查找要删除的人员,然后系统自动保存到对应文件中6.3 打印功能的使用说明 管理员中键入7 (或一般用户键入1)进入显示功能,打开不同的文件输出不同类人员的基本信息,然后回到主页面。6.4 商品统计功能的使用说明键入8 进入统计功能。通过打开不同的文件读取不同的类的人员个数输出各类人员人数和公司人事的总人数。管理员键入9(或一般用户键入2) 退出人事管理系统。参考文献1 谭浩强. C+程序设计M. 北京:清华大学出版社,2004.2 邓文新. C+语言程序设

28、计方法M. 北京:清华大学出版社,2010.3 刘维富. C+程序设计实验与编程实践M. 北京:高等教育出版社,2007.4 谭浩强. C+语言程序设计题解与上机指导M. 北京:清华大学出版社,2010.5 孟宪福. C+语言程序设计教程M. 北京:清华大学出版社,2008.总结为期一周多的C+课程设计终于结束,最初从指导老师讲解个任务相关的基础知识,下来自己查阅相关资料熟悉任务要求,接下来一天进行构思系统模块和层次结构,当有了具体的想法之后便开始进行系统程序代码的的编程、测试,最终实现整个系统的功能和要求。在整个实践过程当中,遇到了一些困难,因为这个课程设计基本上包括整个学期所学的知识点,然

29、而有些知识点用起来并不是很顺手,比如说对文件的处理、以及通过对虚函数使用实现多态。刚开始写时,因为写得少,所以对各个类人员的一些操作都能顺利实现。但是当把所有的层次结构统筹规划关联起来时就出问题,不知该从何下手。通过自己的反复思考及同学指点,最终才完成了此任务书。这一学期C+程序设计的学习,我收获了不少新的知识,懂得面向对象和面向过程的区别,知道了运算符重载,明白了继承与派生机制,了解了虚函数及多态等。通过努力,终于将一个程序从头到尾一步步完成,解决一个个错误,顺便对一个个相关知识点的回顾。 在此,感谢指导老师的细心解释,朋友同学的热情帮助,在你们的帮助下,我不仅收获知识,也深刻体会到学海无涯,用正确的态度面对学习的挑战,通过联系实际,进一步熟练掌握专业知识,为今后学习打下坚实的基础。32

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号