C公司人员信息管理系统-课程设计报告.docx

上传人:scccc 文档编号:12976835 上传时间:2021-12-09 格式:DOCX 页数:74 大小:326.87KB
返回 下载 相关 举报
C公司人员信息管理系统-课程设计报告.docx_第1页
第1页 / 共74页
C公司人员信息管理系统-课程设计报告.docx_第2页
第2页 / 共74页
C公司人员信息管理系统-课程设计报告.docx_第3页
第3页 / 共74页
C公司人员信息管理系统-课程设计报告.docx_第4页
第4页 / 共74页
C公司人员信息管理系统-课程设计报告.docx_第5页
第5页 / 共74页
点击查看更多>>
资源描述

《C公司人员信息管理系统-课程设计报告.docx》由会员分享,可在线阅读,更多相关《C公司人员信息管理系统-课程设计报告.docx(74页珍藏版)》请在三一文库上搜索。

1、 知行合一 行胜于言目 录1 系统需求分析32 总体设计43 详细设计及实现74 系统调试695 结论736 心得体会747参考书目75第 1 页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类(抽象类)的设计employee virtual void add()=0; virtual void search()=0; virtual void show()=0; virtual void alter()=0; virtual void del()=0; virtual void stat()

6、=0; virtual void save()=0; virtual void read()=0; virtual void input()=0; virtual void output()=0; string number;string name;string sex;string department;string rank;float salary; 图 3.1 employee类(2) 经理类的设计manager void add(); void search(); void show(); void alter(); void del(); void stat(); void sav

7、e(); void read(); void input(); void output(); 图 3.2经理类 (3)技术人员类的设计 technician void add(); void search(); void show(); void alter(); void del(); void stat(); void save(); void read(); void input(); void output(); float work_time; float time_salary; 图 3.3技术人员类 (4)销售人员类的设计salesman void add(); void sea

8、rch(); void show(); void alter(); void del(); void stat(); void save(); void read(); void input(); void output(); float sale; float rate; 图 3.4 销售人员类(5) 成绩类的设计 salesmanager void add(); void search(); void show(); void alter(); void del(); void stat(); void save(); void read(); void input(); void out

9、put(); float sala; 图 3.5销售经理类(6) 各个类的关系描述 employee manager salesman technician salesmanager3 详细设计及实现3.1 employee类(抽象类)的实现 #include<string> using namespace std; class employee public: employee(void); employee(void); virtual void add()=0; virtual void search()=0; virtual void show()=0; virtual v

10、oid alter()=0; virtual void del()=0; virtual void stat()=0; virtual void save()=0; virtual void read()=0; virtual void input()=0; virtual void output()=0; protected: string number; string name; string sex; string department; string rank; float salary; ;3.2 经理类的实现manager.h#include "employee.h&qu

11、ot;class manager :virtual public employeepublic:manager(void);manager(void);void add();void search();void show();void alter(); void del();void stat();void save();void read();void input();void output();manager.cpp#include "StdAfx.h"#include "manager.h"#include<iostream>#incl

12、ude<fstream>#include<string>#include<iomanip>using namespace std;const int MAX=100;manager MMAX;int static top1=0;manager:manager(void)manager:manager(void)void manager:input() cout<<"输入编号:"<<endl; cin>>number; cout<<"输入姓名:"<<endl;

13、cin>>name; cout<<"输入性别:"<<endl; cin>>sex; cout<<"输入部门:"<<endl; cin>>department; cout<<"输入级别:"<<endl; cin>>rank; cout<<"输入固定月薪:"<<endl; cin>>salary;void manager:output() cout<<n

14、umber<<"t"<<name<<"t"<<sex<<"t"<<department<<"t"<<rank<<"t"<<salary<<endl;void manager:read()top1=0;system("cls");ifstream inflie("经理.txt",ios:in);if(!inflie)cout&l

15、t;<"打开失败!"<<endl;return;int i=0;while(inflie>>Mi.number>>Mi.name>>Mi.sex>>Mi.department>>Mi.rank>>Mi.salary)i+;top1=i;inflie.close();void manager:save()ofstream outflie("经理.txt",ios:out);if(!outflie)cout<<"打开失败!"<<

16、;endl;return;int i;for(i=0;i<top1;i+)outflie<<Mi.number<<"t"<<Mi.name<<"t"<<Mi.sex<<"t"<<Mi.department<<"t"<<Mi.rank<<"t"<<Mi.salary<<endl;cout<<"保存成功!"<<

17、;endl;outflie.close();void manager:add() system("cls");read();if(top1>=MAX)cout<<"人员已满"<<endl;return;cout<<"输入要添加的编号:"<<endl;string n;cin>>n;for(int i=0;i<top1;i+)if(n=Mi.number) cout<<"该编号的人员已存在"<<endl; return;m

18、anager m;cout<<"请再次输入新添加人员的信息"<<endl;m.input();cout<<"是否确认添加? 1、是 2、否"<<endl;int a;cin>>a;if(a=1)Mtop1=m; top1=top1+1; save();else cout<<"放弃添加"<<endl;return;void manager:search()system("cls");read();if(top1=0)cout<&

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

20、t;<<"t"<<"姓名"<<"t"<<"性别"<<"t"<<"部门"<<"t"<<"级别"<<"t"<<"月薪"<<endl;Mi.output();return;cout<<"查无此人!"<<endl;break;cas

21、e 2:cout<<"请输入要查找的姓名"<<endl;string name;cin>>name;for(int i=0;i<top1;i+)if(Mi.name=name)cout<<"编号"<<"t"<<"姓名"<<"t"<<"性别"<<"t"<<"部门"<<"t"<&

22、lt;"级别"<<"t"<<"月薪"<<endl;Mi.output();cout<<"查无此人!"<<endl;break;case 0:break; default:cout<<"输入错误!请输入03的数字"<<endl;system("pause");search();break;void manager:show()system("cls");read();if(t

23、op1=0)cout<<"无数据!"<<endl;return;cout<<"编号"<<"t"<<"姓名"<<"t"<<"性别"<<"t"<<"部门"<<"t"<<"级别"<<"t"<<"月薪"<&

24、lt;endl;for(int i=0;i<top1;i+)Mi.output();void manager:alter()system("cls");read();if(top1=0)cout<<"当前系统没有储存记录"<<endl;return;string num;cout<<"请输入要修改的经理编号:"<<endl;cin>>num;for(int i=0;i<top1;i+)if(Mi.number=num)cout<<"编号&qu

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

26、t;<<endl;cout<<" 5、修改部门 6、修改级别 7、修改月薪 "<<endl;cout<<" 0、退出修改"<<endl;int choice;cin>>choice;switch(choice) case 1: cout<<"输入修改后的编号:"<<endl; string n; cin>>n; for(int j=0;j<top1;j+) if(n=Mj.number) cout<<"

27、;该编号的人员已存在"<<endl; return; cout<<"输入修改后的姓名:"<<endl; string na; cin>>na; cout<<"输入修改后的性别:"<<endl; string s; cin>>s; cout<<"输入修改后的部门:"<<endl; string d; cin>>d; cout<<"输入修改后的级别:"<<endl;

28、string r; cin>>r; cout<<"输入修改后的月薪:"<<endl; float sa; cin>>sa; cout<<"是否确认修改? 1、是 2、否"<<endl;int a;cin>>a;if(a=1) Mi.number=n;Mi.name=na;Mi.sex=s;Mi.department=d;Mi.rank=r;Mi.salary=sa;elsecout<<"放弃修改"<<endl;return; s

29、ave();break; case 2:cout<<"请输入修改后的编号"<<endl;string n;cin>>n;for(int i=0;i<top1;i+) if(n=Mi.number) cout<<"该编号的人员已存在"<<endl; return; cout<<"是否确认修改? 1、是 2、否"<<endl;int a;cin>>a;if(a=1) Mi.number=n;elsecout<<"放弃

30、修改"<<endl;return; save();break; case 3:cout<<"请输入修改后的姓名"<<endl;string na;cin>>na;Mi.name=na;cout<<"是否确认修改? 1、是 2、否"<<endl;int a;cin>>a;if(a=1) Mi.name=na;elsecout<<"放弃修改"<<endl;return;save();break; case 4:cout&l

31、t;<"请输入修改后的性别"<<endl;string s;cin>>s;Mi.sex=s;cout<<"是否确认修改? 1、是 2、否"<<endl;int a;cin>>a;if(a=1) Mi.sex=s;elsecout<<"放弃修改"<<endl;return;save();break;case 5:cout<<"请输入修改后的部门"<<endl;string d;cin>>d;M

32、i.department=d;cout<<"是否确认修改? 1、是 2、否"<<endl;int a;cin>>a;if(a=1) Mi.department=d;elsecout<<"放弃修改"<<endl;return;save();break; case 6:cout<<"请输入修改后级别"<<endl;string r;cin>>r;Mi.rank=r;cout<<"是否确认修改? 1、是 2、否"&

33、lt;<endl;int a;cin>>a;if(a=1) Mi.rank=r;elsecout<<"放弃修改"<<endl;return;save();break; case 7:cout<<"请输入修改后的月薪"<<endl;float sa;cin>>sa;Mi.salary=sa;cout<<"是否确认修改? 1、是 2、否"<<endl;int a;cin>>a;if(a=1) Mi.salary=sa;else

34、cout<<"放弃修改"<<endl;return;save();break; case 0:cout<<"退出修改"<<endl;return;break; default:cout<<"无此选项!请输入07的数字"<<endl;system("pause");break; cout<<"修改完成"<<endl;return;cout<<"查无此人"<<e

35、ndl;void manager:del()system("cls");read();if(top1=0)cout<<"当前系统没有储存记录"<<endl;return;int choice;cout<<"请删除查找方式:1、按编号删除 2、按姓名删除 0、退出"<<endl;cin>>choice;switch(choice)case 1:cout<<"请输入所要删除人员的编号:"<<endl;string num;cin>

36、>num;for(int i=0;i<top1;i+)if(Mi.number=num)cout<<"编号"<<"t"<<"姓名"<<"t"<<"性别"<<"t"<<"部门"<<"t"<<"级别"<<"t"<<"月薪"<<e

37、ndl;Mi.output();cout<<"是否确认删除? 1、是 2、否"<<endl;int choice;cin>>choice;switch(choice)case 1:for(int j=i;j<top1;j+)Mj=Mj+1;cout<<"删除成功!"<<endl;top1=top1-1;save();break;case 2:return;default:cout<<"没有此选项!"<<endl;return;cout<&l

38、t;"无此人!"<<endl;system("pause");del();break;case 2:cout<<"请输入所要删除人员的姓名:"<<endl;string name;cin>>name;for(int i=0;i<top1;i+)if(Mi.name=name)cout<<"编号"<<"t"<<"姓名"<<"t"<<"性

39、别"<<"t"<<"部门"<<"t"<<"级别"<<"t"<<"月薪"<<endl;Mi.output();cout<<"是否确认删除? 1、是 2、否"<<endl;int choice;cin>>choice;switch(choice)case 1:for(int j=i;j<top1;j+)Mj=Mj+1;cout

40、<<"删除成功!"<<endl;top1=top1-1;save();break;case 2:return;default:cout<<"没有此选项!"<<endl;return;cout<<"无此人!"<<endl;break; case 0:break; default:cout<<"输入错误!请输入03的数字"<<endl;system("pause");del();break;save();

41、void manager:stat()system("cls");read();int choice;cout<<"1、人数统计 2、性别统计 3、平均工资 4、最高工资 5、最低工资 0、退出"<<endl; cout<<"请输入所要执行的编号:"<<endl;cin>>choice;switch(choice) case 1:cout<<"经理的人数为:"<<top1<<endl;system("pause

42、");stat();break;case 2:int a=0,b=0;string Y="男"string X="女"for(int i=0;i<top1;i+)if(Mi.sex=Y)a+;if(Mi.sex=X) b+;cout<<"男性人数:"<<a<<endl; cout<<"女性人数:"<<b<<endl; ;system("pause");stat();break; case 3: float a

43、ve_salary=0; float all_salary=0; for(int i=0;i<top1;i+) all_salary=Mi.salary+all_salary; ave_salary=all_salary/top1; cout<<"平均工资:"<<ave_salary; ;system("pause");stat();break; case 4: float max_salary=0; for(int i=0;i<top1-1;i+) if(Mi.salary>Mi+1.salary) max_s

44、alary=Mi.salary; Mi+1.salary=max_salary; else max_salary=Mi+1.salary; cout<<"最高工资:"<<max_salary; ;system("pause");stat();break; case 5: float min_salary=0; for(int i=0;i<top1-1;i+) if(Mi.salary<Mi+1.salary) min_salary=Mi.salary; Mi+1.salary=min_salary; else min_

45、salary=Mi+1.salary; cout<<"最低工资:"<<min_salary; ;system("pause");stat();break; case 0:break; default: cout<<"无此选项!请输入05的数字"<<endl;system("pause");stat();break; 3.3 技术人员类的实现technician.h#include "employee.h"class technician :public employeepublic:technician(void);technician(void);void add();void search();void show();void alter(); void del();void stat();void save();void read();void input();void output();protected:float work_time;float time_salary;technician.cpp#include "StdAfx.h"#include "technician

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

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1