c++公司人员信息管理系统课程设计报告_第1页
c++公司人员信息管理系统课程设计报告_第2页
c++公司人员信息管理系统课程设计报告_第3页
c++公司人员信息管理系统课程设计报告_第4页
c++公司人员信息管理系统课程设计报告_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上目录1系统需求分析32总体设计43详细设计及实现74系统调试695结论736心得体会747参考书目75专心-专注-专业1系统需求分析1.1系统设计的目的与意义:现在的公司人员数量及职位种类较多,各样的人事管理活动也比较频繁,因此需要设计一个公司人员信息管理系统来对公司员工信息进行管理。1.2系统功能需求:本系统有五个类:基类:employee、派生类:manager、technician、salesman、salesmanager,储存经理、技术人员、销售人员、销售经理信息。(1) 添加功能程序能够任意添加上述四类人员的记录,可提供选择界面供用户选择所要添加的人员类别

2、,要求人员的编号要唯一,如果添加了重复编号的记录时,则提示用户数据添加重复并取消添加。(2) 查询功能可根据编号、姓名等信息对已添加的记录进行查询。如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。(3) 显示功能可显示当前系统中所有记录。(4) 修改功能可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。(5) 删除功能对已添加的人员记录进行删除。如果当前系统中没有相应的人员记录,则提示“记录为空!”并返回操作;否则输入要删除的人员的编号或姓名,根据所输入的信息删除该人员记录,如果没有找到该人员信息,则提示相应的记录不存在。(6) 统计功能能根据多种参数进行人员的统计。

3、例如:统计四类人员数量以及总数,统计男、女员工的数量,统计平均工资、最高工资、最低工资等。(7) 保存功能将当前系统中各类人员记录存入文件中。(8) 读取功能将保存在文件中的人员信息读入到当前系统中,以供用户使用。2总体设计2.1系统功能分析:系统通过调用函数来实现信息添加、信息查询、信息显示、信息修改、信息删除、以及数据读取保存文件等功能。add()函数用于录入信息;search()函数用来查询信息;show()函数用来显示信息;alter()函数用来修改信息;del()函数用来删除信息;stat()函数用来统计信息read()函数用于将文件中的数据读取到内存中;save()函数用于将内存中

4、的信息存入文件内;主函数main()用于调用这些函数。2.2系统功能模块划分与设计:系统定义了manger类、technician类、salesman类、salesmanger类这四个类,定义了add()、search()、show()、alter()、del()、stat()、read()、save()、input()、output()等函数来实现系统所需功能。2.3系统功能模块图:公司人员信息管理系统经理信息管理技术人员信息管理销售人员信息管理销售经理信息管理经理信息添加经理信息查询经理信息显示经理信息修改经理信息删除经理信息统计技术人员信息添加技术人员信息查询技术人员信息显示技术人员信息

5、修改技术人员信息删除技术人员信息统计销售人员信息添加销售人员信息查询销售人员信息显示销售人员信息修改销售人员信息删除销售人员信息统计销售经理信息添加销售经理信息查询销售经理信息显示销售经理信息修改销售经理信息删除销售经理信息统计2.4类的设计(1) employee类(抽象类)的设计employeevirtualvoidadd()=0;virtualvoidsearch()=0;virtualvoidshow()=0;virtualvoidalter()=0;virtualvoiddel()=0;virtualvoidstat()=0;virtualvoidsave()=0;virtualvo

6、idread()=0;virtualvoidinput()=0;virtualvoidoutput()=0;stringnumber;stringname;stringsex;stringdepartment;stringrank;floatsalary;图3.1employee类(2) 经理类的设计managervoidadd();voidsearch();voidshow();voidalter();voiddel();voidstat();voidsave();voidread();voidinput();voidoutput();图3.2经理类(3)技术人员类的设计technician

7、voidadd();voidsearch();voidshow();voidalter();voiddel();voidstat();voidsave();voidread();voidinput();voidoutput();floatwork_time;floattime_salary;图3.3技术人员类(4)销售人员类的设计salesmanvoidadd();voidsearch();voidshow();voidalter();voiddel();voidstat();voidsave();voidread();voidinput();voidoutput();floatsale;fl

8、oatrate;图3.4销售人员类(5) 成绩类的设计salesmanagervoidadd();voidsearch();voidshow();voidalter();voiddel();voidstat();voidsave();voidread();voidinput();voidoutput();floatsala;图3.5销售经理类(6) 各个类的关系描述employeemanagersalesmantechniciansalesmanager3详细设计及实现3.1employee类(抽象类)的实现#include<string>usingnamespacestd;cla

9、ssemployeepublic:employee(void);employee(void);virtualvoidadd()=0;virtualvoidsearch()=0;virtualvoidshow()=0;virtualvoidalter()=0;virtualvoiddel()=0;virtualvoidstat()=0;virtualvoidsave()=0;virtualvoidread()=0;virtualvoidinput()=0;virtualvoidoutput()=0;protected:stringnumber;stringname;stringsex;strin

10、gdepartment;stringrank;floatsalary;3.2经理类的实现manager.h#include"employee.h"classmanager:virtualpublicemployeepublic:manager(void);manager(void);voidadd();voidsearch();voidshow();voidalter();voiddel();voidstat();voidsave();voidread();voidinput();voidoutput();manager.cpp#include"StdAfx.h&

11、quot;#include"manager.h"#include<iostream>#include<fstream>#include<string>#include<iomanip>usingnamespacestd;constintMAX=100;managerMMAX;intstatictop1=0;manager:manager(void)manager:manager(void)voidmanager:input()cout<<"输入编号:"<<endl;cin>&g

12、t;number;cout<<"输入姓名:"<<endl;cin>>name;cout<<"输入性别:"<<endl;cin>>sex;cout<<"输入部门:"<<endl;cin>>department;cout<<"输入级别:"<<endl;cin>>rank;cout<<"输入固定月薪:"<<endl;cin>>

13、;salary;voidmanager:output()cout<<number<<"t"<<name<<"t"<<sex<<"t"<<department<<"t"<<rank<<"t"<<salary<<endl;voidmanager:read()top1=0;system("cls");ifstreaminflie("

14、;经理.txt",ios:in);if(!inflie)cout<<"打开失败!"<<endl;return;inti=0;while(inflie>>Mi.number>>M>>Mi.sex>>Mi.department>>Mi.rank>>Mi.salary)i+;top1=i;inflie.close();voidmanager:save()ofstreamoutflie("经理.txt",ios:out);if(!outflie)

15、cout<<"打开失败!"<<endl;return;inti;for(i=0;i<top1;i+)outflie<<Mi.number<<"t"<<M<<"t"<<Mi.sex<<"t"<<Mi.department<<"t"<<Mi.rank<<"t"<<Mi.salary<<endl;c

16、out<<"保存成功!"<<endl;outflie.close();voidmanager:add()system("cls");read();if(top1>=MAX)cout<<"人员已满"<<endl;return;cout<<"输入要添加的编号:"<<endl;stringn;cin>>n;for(inti=0;i<top1;i+)if(n=Mi.number)cout<<"该编号的人员已

17、存在"<<endl;return;managerm;cout<<"请再次输入新添加人员的信息"<<endl;m.input();cout<<"是否确认添加?1、是2、否"<<endl;inta;cin>>a;if(a=1)Mtop1=m;top1=top1+1;save();elsecout<<"放弃添加"<<endl;return;voidmanager:search()system("cls");read(

18、);if(top1=0)cout<<"当前系统没有储存记录!"<<endl;return;intchoice;cout<<"请选择查找方式:1、按编号查找2、按姓名查找0、退出"<<endl;cin>>choice;switch(choice)case1:cout<<"请输入要查找的编号:"<<endl;stringnum;cin>>num;for(inti=0;i<top1;i+)if(Mi.number=num)cout<&

19、lt;"编号"<<"t"<<"姓名"<<"t"<<"性别"<<"t"<<"部门"<<"t"<<"级别"<<"t"<<"月薪"<<endl;Mi.output();return;cout<<"查无此人!"<<

20、;endl;break;case2:cout<<"请输入要查找的姓名"<<endl;stringname;cin>>name;for(inti=0;i<top1;i+)if(M=name)cout<<"编号"<<"t"<<"姓名"<<"t"<<"性别"<<"t"<<"部门"<<"

21、t"<<"级别"<<"t"<<"月薪"<<endl;Mi.output();cout<<"查无此人!"<<endl;break;case0:break;default:cout<<"输入错误!请输入03的数字"<<endl;system("pause");search();break;voidmanager:show()system("cls");re

22、ad();if(top1=0)cout<<"无数据!"<<endl;return;cout<<"编号"<<"t"<<"姓名"<<"t"<<"性别"<<"t"<<"部门"<<"t"<<"级别"<<"t"<<"月薪&q

23、uot;<<endl;for(inti=0;i<top1;i+)Mi.output();voidmanager:alter()system("cls");read();if(top1=0)cout<<"当前系统没有储存记录"<<endl;return;stringnum;cout<<"请输入要修改的经理编号:"<<endl;cin>>num;for(inti=0;i<top1;i+)if(Mi.number=num)cout<<"

24、编号"<<"t"<<"姓名"<<"t"<<"性别"<<"t"<<"部门"<<"t"<<"级别"<<"t"<<"月薪"<<endl;Mi.output();cout<<"请选择修改范围:1、全部修改2、修改编号3、修改姓名4、修改性别&q

25、uot;<<endl;cout<<"5、修改部门6、修改级别7、修改月薪"<<endl;cout<<"0、退出修改"<<endl;intchoice;cin>>choice;switch(choice)case1:cout<<"输入修改后的编号:"<<endl;stringn;cin>>n;for(intj=0;j<top1;j+)if(n=Mj.number)cout<<"该编号的人员已存在&quo

26、t;<<endl;return;cout<<"输入修改后的姓名:"<<endl;stringna;cin>>na;cout<<"输入修改后的性别:"<<endl;strings;cin>>s;cout<<"输入修改后的部门:"<<endl;stringd;cin>>d;cout<<"输入修改后的级别:"<<endl;stringr;cin>>r;cout<

27、<"输入修改后的月薪:"<<endl;floatsa;cin>>sa;cout<<"是否确认修改?1、是2、否"<<endl;inta;cin>>a;if(a=1)Mi.number=n;M=na;Mi.sex=s;Mi.department=d;Mi.rank=r;Mi.salary=sa;elsecout<<"放弃修改"<<endl;return;save();break;case2:cout<<"请输入修改

28、后的编号"<<endl;stringn;cin>>n;for(inti=0;i<top1;i+)if(n=Mi.number)cout<<"该编号的人员已存在"<<endl;return;cout<<"是否确认修改?1、是2、否"<<endl;inta;cin>>a;if(a=1)Mi.number=n;elsecout<<"放弃修改"<<endl;return;save();break;case3:cout&l

29、t;<"请输入修改后的姓名"<<endl;stringna;cin>>na;M=na;cout<<"是否确认修改?1、是2、否"<<endl;inta;cin>>a;if(a=1)M=na;elsecout<<"放弃修改"<<endl;return;save();break;case4:cout<<"请输入修改后的性别"<<endl;strings;cin>>s;Mi

30、.sex=s;cout<<"是否确认修改?1、是2、否"<<endl;inta;cin>>a;if(a=1)Mi.sex=s;elsecout<<"放弃修改"<<endl;return;save();break;case5:cout<<"请输入修改后的部门"<<endl;stringd;cin>>d;Mi.department=d;cout<<"是否确认修改?1、是2、否"<<endl;inta;

31、cin>>a;if(a=1)Mi.department=d;elsecout<<"放弃修改"<<endl;return;save();break;case6:cout<<"请输入修改后级别"<<endl;stringr;cin>>r;Mi.rank=r;cout<<"是否确认修改?1、是2、否"<<endl;inta;cin>>a;if(a=1)Mi.rank=r;elsecout<<"放弃修改"

32、<<endl;return;save();break;case7:cout<<"请输入修改后的月薪"<<endl;floatsa;cin>>sa;Mi.salary=sa;cout<<"是否确认修改?1、是2、否"<<endl;inta;cin>>a;if(a=1)Mi.salary=sa;elsecout<<"放弃修改"<<endl;return;save();break;case0:cout<<"退出修

33、改"<<endl;return;break;default:cout<<"无此选项!请输入07的数字"<<endl;system("pause");break;cout<<"修改完成"<<endl;return;cout<<"查无此人"<<endl;voidmanager:del()system("cls");read();if(top1=0)cout<<"当前系统没有储存记录&q

34、uot;<<endl;return;intchoice;cout<<"请删除查找方式:1、按编号删除2、按姓名删除0、退出"<<endl;cin>>choice;switch(choice)case1:cout<<"请输入所要删除人员的编号:"<<endl;stringnum;cin>>num;for(inti=0;i<top1;i+)if(Mi.number=num)cout<<"编号"<<"t"&l

35、t;<"姓名"<<"t"<<"性别"<<"t"<<"部门"<<"t"<<"级别"<<"t"<<"月薪"<<endl;Mi.output();cout<<"是否确认删除?1、是2、否"<<endl;intchoice;cin>>choice;switc

36、h(choice)case1:for(intj=i;j<top1;j+)Mj=Mj+1;cout<<"删除成功!"<<endl;top1=top1-1;save();break;case2:return;default:cout<<"没有此选项!"<<endl;return;cout<<"无此人!"<<endl;system("pause");del();break;case2:cout<<"请输入所要删除人员的姓名

37、:"<<endl;stringname;cin>>name;for(inti=0;i<top1;i+)if(M=name)cout<<"编号"<<"t"<<"姓名"<<"t"<<"性别"<<"t"<<"部门"<<"t"<<"级别"<<"t

38、"<<"月薪"<<endl;Mi.output();cout<<"是否确认删除?1、是2、否"<<endl;intchoice;cin>>choice;switch(choice)case1:for(intj=i;j<top1;j+)Mj=Mj+1;cout<<"删除成功!"<<endl;top1=top1-1;save();break;case2:return;default:cout<<"没有此选项!"

39、;<<endl;return;cout<<"无此人!"<<endl;break;case0:break;default:cout<<"输入错误!请输入03的数字"<<endl;system("pause");del();break;save();voidmanager:stat()system("cls");read();intchoice;cout<<"1、人数统计2、性别统计3、平均工资4、最高工资5、最低工资0、退出"

40、<<endl;cout<<"请输入所要执行的编号:"<<endl;cin>>choice;switch(choice)case1:cout<<"经理的人数为:"<<top1<<endl;system("pause");stat();break;case2:inta=0,b=0;stringY="男"stringX="女"for(inti=0;i<top1;i+)if(Mi.sex=Y)a+;if(Mi.se

41、x=X)b+;cout<<"男性人数:"<<a<<endl;cout<<"女性人数:"<<b<<endl;system("pause");stat();break;case3:floatave_salary=0;floatall_salary=0;for(inti=0;i<top1;i+)all_salary=Mi.salary+all_salary;ave_salary=all_salary/top1;cout<<"平均工资:&quo

42、t;<<ave_salary;system("pause");stat();break;case4:floatmax_salary=0;for(inti=0;i<top1-1;i+)if(Mi.salary>Mi+1.salary)max_salary=Mi.salary;Mi+1.salary=max_salary;elsemax_salary=Mi+1.salary;cout<<"最高工资:"<<max_salary;system("pause");stat();break;case

43、5:floatmin_salary=0;for(inti=0;i<top1-1;i+)if(Mi.salary<Mi+1.salary)min_salary=Mi.salary;Mi+1.salary=min_salary;elsemin_salary=Mi+1.salary;cout<<"最低工资:"<<min_salary;system("pause");stat();break;case0:break;default:cout<<"无此选项!请输入05的数字"<<end

44、l;system("pause");stat();break;3.3技术人员类的实现technician.h#include"employee.h"classtechnician:publicemployeepublic:technician(void);technician(void);voidadd();voidsearch();voidshow();voidalter();voiddel();voidstat();voidsave();voidread();voidinput();voidoutput();protected:floatwork_t

45、ime;floattime_salary;technician.cpp#include"StdAfx.h"#include"technician.h"#include<iostream>#include<fstream>#include<string>#include<iomanip>usingnamespacestd;constintMAX=100;technicianTMAX;intstatictop2=0;technician:technician(void)technician:technician

46、(void)voidtechnician:input()cout<<"请输入输入编号:"<<endl;cin>>number;cout<<"请输入输入姓名:"<<endl;cin>>name;cout<<"请输入输入性别:"<<endl;cin>>sex;cout<<"请输入输入部门:"<<endl;cin>>department;cout<<"请输入

47、输入级别:"<<endl;cin>>rank;cout<<"请输入输入工时:"<<endl;cin>>work_time;cout<<"请输入输入时薪:"<<endl;cin>>time_salary;salary=time_salary*work_time;voidtechnician:output()cout<<number<<"t"<<name<<"t"&l

48、t;<sex<<"t"<<department<<"t"<<rank<<"t"<<work_time<<"t"<<time_salary<<"t"<<salary<<endl;voidtechnician:read()top2=0;system("cls");ifstreaminflie("技术人员.txt",ios:i

49、n);if(!inflie)cout<<"打开失败!"<<endl;return;inti=0;while(inflie>>Ti.number>>T>>Ti.sex>>Ti.department>>Ti.rank>>Ti.work_time>>Ti.time_salary>>Ti.salary)i+;top2=i;inflie.close();voidtechnician:save()ofstreamoutflie("技术人员.txt

50、",ios:out);if(!outflie)cout<<"打开失败!"<<endl;return;inti;for(i=0;i<top2;i+)outflie<<Ti.number<<"t"<<T<<"t"<<Ti.sex<<"t"<<Ti.department<<"t"<<Ti.rank<<"t"<

51、;<Ti.work_time<<"t"<<Ti.time_salary<<"t"<<Ti.salary<<endl;cout<<"保存成功!"<<endl;outflie.close();voidtechnician:add()system("cls");read();if(top2>=MAX)cout<<"人员已满"<<endl;return;cout<<&quo

52、t;输入要添加的编号:"<<endl;stringn;cin>>n;for(inti=0;i<top2;i+)if(n=Ti.number)cout<<"该编号的人员已存在"<<endl;return;techniciant;cout<<"请再次输入新添加人员的信息"<<endl;t.input();cout<<"是否确认添加?1、是2、否"<<endl;inta;cin>>a;if(a=1)Ttop2=t;to

53、p2=top2+1;save();elsecout<<"放弃添加"<<endl;return;voidtechnician:search()system("cls");read();if(top2=0)cout<<"当前系统没有储存记录!"<<endl;return;intchoice;cout<<"请选择查找方式:1、按编号查找2、按姓名查找0、退出"<<endl;cin>>choice;switch(choice)case1:c

54、out<<"请输入要查找的编号:"<<endl;stringnum;cin>>num;for(inti=0;i<top2;i+)if(Ti.number=num)cout<<"编号"<<"t"<<"姓名"<<"t"<<"性别"<<"t"<<"部门"<<"t"<<&quo

55、t;级别"<<"t"<<"工时"<<"t"<<"时薪"<<"t"<<"月薪"<<endl;Ti.output();return;cout<<"查无此人!"<<endl;break;case2:cout<<"请输入要查找的姓名"<<endl;stringname;cin>>name;fo

56、r(inti=0;i<top2;i+)if(T=name)cout<<"编号"<<"t"<<"姓名"<<"t"<<"性别"<<"t"<<"部门"<<"t"<<"级别"<<"t"<<"工时"<<"t"

57、<<"时薪"<<"t"<<"月薪"<<endl;Ti.output();return;cout<<"查无此人!"<<endl;break;case0:break;default:cout<<"输入错误!请输入03的数字"<<endl;system("pause");search();break;voidtechnician:show()system("cls")

58、;read();if(top2=0)cout<<"无数据!"<<endl;return;cout<<"编号"<<"t"<<"姓名"<<"t"<<"性别"<<"t"<<"部门"<<"t"<<"级别"<<"t"<<"工

59、时"<<"t"<<"时薪"<<"t"<<"月薪"<<endl;for(inti=0;i<top2;i+)Ti.output();voidtechnician:alter()system("cls");read();if(top2=0)cout<<"当前系统没有储存记录"<<endl;return;stringnum;cout<<"请输入要修改的技术人员编号

60、:"<<endl;cin>>num;for(inti=0;i<top2;i+)if(Ti.number=num)cout<<"编号"<<"t"<<"姓名"<<"t"<<"性别"<<"t"<<"部门"<<"t"<<"级别"<<"t"<&

61、lt;"工时"<<"t"<<"时薪"<<"t"<<"月薪"<<endl;Ti.output();cout<<"请选择修改范围:1、全部修改2、修改编号3、修改姓名4、修改性别"<<endl;cout<<"5、修改部门6、修改级别7、修改工时8、修改时薪"<<endl;cout<<"0、退出修改"<<endl

62、;intchoice;cin>>choice;switch(choice)case1:cout<<"输入修改后的编号:"<<endl;stringn;cin>>n;for(intj=0;j<top2;j+)if(n=Tj.number)cout<<"该编号的人员已存在"<<endl;return;cout<<"输入修改后的姓名:"<<endl;stringna;cin>>na;cout<<"输入修改后的性别:"<<endl;strings;cin>>s;cout<<"输入修改后的部门:"<<endl;stringd;cin>>d;cout<<"输入修改后的级别:"<<endl;stringr;cin>>r;cout<<"输入修改后的工时:"<<

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论