C++公司人员信息管理系统-课程设计报告.pdf
《C++公司人员信息管理系统-课程设计报告.pdf》由会员分享,可在线阅读,更多相关《C++公司人员信息管理系统-课程设计报告.pdf(73页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 第 0 页 目 录 1 系统需求分析 1 2 总体设计 2 3 详细设计及实现 5 4 系统调试 67 5 结论 73 6 心得体会 71 7 参考书目 75 知行合一 行胜于言 第 1 页 1 系统需求分析 1.1 系统设计的目的与意义:现在的公司人员数量及职位种类较多,各样的人事管理活动也比较频繁,因此需要设计一个公司人员信息管理系统来对公司员工信息进行管理。1。2 系统功能需求:本系统有五个类:基类:employee、派生类:manager、technician、salesman、salesmanager,储存经理、技术人员、销售人员、销售经理信息。(1)添加功能 程序能够任意添加上述
2、四类人员的记录,可提供选择界面供用户选择所要添加的人员类别,要求人员的编号要唯一,如果添加了重复编号的记录时,则提示用户数据添加重复并取消添加。(2)查询功能 可根据编号、姓名等信息对已添加的记录进行查询.如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。(3)显示功能 可显示当前系统中所有记录。(4)修改功能 可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。(5)删除功能 对已添加的人员记录进行删除.如果当前系统中没有相应的人员记录,则提示“记录为空!”并返回操作;否则输入要删除的人员的编号或姓名,根据所输入的信息删除该人员记录,如果没有找到该人员信息,则提示相应的
3、记录不存在。(6)统计功能 能根据多种参数进行人员的统计。例如:统计四类人员数量以及总数,统计男、女员工的数量,统计平均工资、最高工资、最低工资等。(7)保存功能 将当前系统中各类人员记录存入文件中。(8)读取功能 将保存在文件中的人员信息读入到当前系统中,以供用户使用。知行合一 行胜于言 第 2 页 2 总体设计 2.1 系统功能分析:系统通过调用函数来实现信息添加、信息查询、信息显示、信息修改、信息删除、以及数据读取保存文件等功能.add()函数用于录入信息;search()函数用来查询信息;show()函数用来显示信息;alter()函数用来修改信息;del()函数用来删除信息;stat
4、()函数用来统计信息 read()函数用于将文件中的数据读取到内存中;save()函数用于将内存中的信息存入文件内;主函数 main()用于调用这些函数。2.2 系统功能模块划分与设计:系统定义了 manger 类、technician 类、salesman 类、salesmanger 类这四个类,定义了 add()、search()、show()、alter()、del()、stat()、read()、save()、input()、output()等函数来实现系统所需功能。2.3 系统功能模块图:公司人员信息管理系经理信息管理 技术人员信息管理 销售人员信息管理 销售经理信息管理 经理信息添
5、加 经理信息查询 经理信息显示 经理信息修改 经理信息删除 经理信息统计 技术人员信息添加 技术人员信息查询 技术人员信息显示 技术人员信息修改 技术人员信息删除 技术人员信息统计 销售人员信息添加 销售人员信息查询 销售人员信息显示 销售人员信息修改 销售人员信息删除 销售人员信息统计 销售经理信息添加 销售经理信息查询 销售经理信息显示 销售经理信息修改 销售经理信息删除 销售经理信息统计 知行合一 行胜于言 第 3 页 2.4 类的设计(1)employee 类(抽象类)的设计 图 3.1 employee类 (2)经理类的设计 图 3。2 经理类 manager void add();
6、void search();void show();void alter();void del();void stat();void save();void read();void input();employee virtual void add()=0;virtual void search()=0;virtual void show()=0;virtual void alter()=0;virtual void del()=0;virtual void stat()=0;virtual void save()=0;virtual void read()=0;virtual void in
7、put()=0;virtual void output()=0;string number;string name;string sex;知行合一 行胜于言 第 4 页(3)技术人员类的设计 图 3。3 技术人员类 (4)销售人员类的设计 图 3.4 销售人员类 salesman void add();void search();void show();void alter();void del();void stat();void save();void read();void input();void output();float sale;float rate;technician vo
8、id 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;知行合一 行胜于言 第 5 页(5)成绩类的设计 图 3.5 销售经理类 (6)各个类的关系描述 3 详细设计及实现 3。1employee 类(抽象类)的实现#includestring using namespace std;class employee public:employe
9、e(void);salesmanager void add();void search();void show();void alter();void del();void stat();void save();void read();void input();void output();float sala;employee manager salesman technician salesmanager 知行合一 行胜于言 第 6 页 employee(void);virtual void add()=0;virtual void search()=0;virtual void show(
10、)=0;virtual void 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 class man
11、ager:virtual public employee public:manager(void);manager(void);void add();void search();void show();void alter();void del();void stat();void save();知行合一 行胜于言 第 7 页 void read();void input();void output();manager。cpp#include”StdAfx.h”include manager.h includeiostream includefstream include using name
12、space std;const int MAX=100;manager MMAX;int static top1=0;manager:manager(void)manager:manager(void)void manager:input()coutnumber;cout”输入姓名:”endl;cinname;cout输入性别:”sex;coutdepartment;cout”输入级别:endl;cinrank;cout输入固定月薪:salary;void manager:output()cout numbert”name”t”sextdepartment ”trankt”salaryendl
13、;void manager::read()知行合一 行胜于言 第 8 页 top1=0;system(cls”);ifstream inflie(经理。txt,ios::in);if(!inflie)cout”打开失败!Mi.numberMi.nameMi.sexMi.departmentMi.rankMi.salary)i+;top1=i;inflie。close();void manager::save()ofstream outflie(”经理。txt”,ios::out);if(!outflie)cout打开失败!”endl;return;int i;for(i=0;itop1;i+)
14、outflieMi.numbert”Mi.nametMi.sext”Mi。department”t”Mi.ranktMi.salaryendl;cout=MAX)cout人员已满endl;知行合一 行胜于言 第 9 页 return;cout”输入要添加的编号:”n;for(int i=0;itop1;i+)if(n=Mi。number)cout该编号的人员已存在endl;return;manager m;cout请再次输入新添加人员的信息”endl;m。input();couta;if(a=1)Mtop1=m;top1=top1+1;save();else cout放弃添加”endl;ret
15、urn;void manager:search()system(”cls”);read();if(top1=0)cout当前系统没有储存记录!”endl;return;int choice;coutnum;for(int i=0;itop1;i+)if(Mi。number=num)cout编号”t”姓名”t性别”t”部门t”级别t月薪”endl;Mi。output();return;cout查无此人!endl;;break;case 2:cout”请输入要查找的姓名name;for(int i=0;itop1;i+)if(Mi.name=name)cout”编号t姓名t”性别”t”部门”t”级
16、别”t”月薪endl;Mi.output();cout查无此人!endl;;break;case 0:break;default:cout 输入错误!请输入 03 的数字endl;system(pause”);search();break;void manager::show()system(cls”);知行合一 行胜于言 第 11 页 read();if(top1=0)cout无数据!”endl;return;cout编号t”姓名”t”性别”t”部门”t”级别”t月薪endl;for(int i=0;itop1;i+)Mi。output();void manager:alter()syste
17、m(cls);read();if(top1=0)cout”当前系统没有储存记录”endl;return;string num;cout请输入要修改的经理编号:”num;for(int i=0;itop1;i+)if(Mi.number=num)cout”编号t”姓名t性别”t”部门t”级别”t月薪endl;Mi。output();cout请选择修改范围:1、全部修改 2、修改编号 3、修改姓名 4、修改性别”endl;cout”5、修改部门 6、修改级别 7、修改月薪”endl;cout 0、退出修改endl;int choice;cinchoice;switch(choice)case 1:
18、cout”输入修改后的编号:n;for(int j=0;jtop1;j+)if(n=Mj。number)cout该编号的人员已存在”endl;return;cout”输入修改后的姓名:”na;cout输入修改后的性别:s;cout”输入修改后的部门:”d;cout输入修改后的级别:r;coutsa;cout”是否确认修改?1、是 2、否a;if(a=1)Mi.number=n;Mi。name=na;Mi。sex=s;Mi.department=d;Mi.rank=r;Mi。salary=sa;else cout放弃修改endl;return;save();;break;case 2:知行合一
19、行胜于言 第 13 页 cout”请输入修改后的编号”n;for(int i=0;itop1;i+)if(n=Mi。number)cout该编号的人员已存在endl;return;cout”是否确认修改?1、是 2、否”endl;int a;cina;if(a=1)Mi。number=n;else cout”放弃修改endl;return;save();break;case 3:cout请输入修改后的姓名na;Mi。name=na;cout”是否确认修改?1、是 2、否a;if(a=1)Mi.name=na;else cout放弃修改endl;return;save();;break;case
20、 4:cout”请输入修改后的性别s;Mi.sex=s;cout”是否确认修改?1、是 2、否”endl;int a;cina;if(a=1)Mi。sex=s;else cout放弃修改”endl;return;save();break;case 5:cout”请输入修改后的部门d;Mi。department=d;couta;if(a=1)Mi。department=d;else cout”放弃修改endl;return;save();break;case 6:cout请输入修改后级别r;Mi。rank=r;cout”是否确认修改?1、是 2、否”a;if(a=1)Mi。rank=r;else
21、 知行合一 行胜于言 第 15 页 cout”放弃修改endl;return;save();;break;case 7:cout”请输入修改后的月薪sa;Mi.salary=sa;cout”是否确认修改?1、是 2、否”a;if(a=1)Mi。salary=sa;else cout”放弃修改”endl;return;save();;break;case 0:cout退出修改”endl;return;break;default:cout”无此选项!请输入 07 的数字endl;system(”pause”);break;cout”修改完成endl;return;cout”查无此人endl;voi
22、d manager:del()system(cls);read();if(top1=0)cout”当前系统没有储存记录”endl;return;知行合一 行胜于言 第 16 页 int choice;cout”请删除查找方式:1、按编号删除 2、按姓名删除 0、退出”endl;cinchoice;switch(choice)case 1:cout请输入所要删除人员的编号:num;for(int i=0;itop1;i+)if(Mi.number=num)cout”编号”t”姓名t”性别”t”部门”t级别t”月薪endl;Mi。output();coutchoice;switch(choice)
23、case 1:for(int j=i;jtop1;j+)Mj=Mj+1;cout删除成功!endl;top1=top1-1;save();break;case 2:return;default:cout”没有此选项!endl;return;cout无此人!”endl;system(”pause”);del();break;case 2:cout请输入所要删除人员的姓名:endl;string name;cinname;for(int i=0;itop1;i+)if(Mi。name=name)知行合一 行胜于言 第 17 页 cout编号t”姓名”t”性别”t”部门”t”级别”t”月薪endl;
24、Mi.output();cout是否确认删除?1、是 2、否choice;switch(choice)case 1:for(int j=i;jtop1;j+)Mj=Mj+1;cout”删除成功!”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();void manager:stat()system(cls
25、”);read();int choice;cout1、人数统计 2、性别统计 3、平均工资 4、最高工资 5、最低工资 0、退出endl;cout”请输入所要执行的编号:endl;cinchoice;switch(choice)case 1:cout经理的人数为:top1endl;system(pause);stat();break;case 2:知行合一 行胜于言 第 18 页 int a=0,b=0;string Y=男;string X=”女”;for(int i=0;itop1;i+)if(Mi.sex=Y)a+;if(Mi.sex=X)b+;cout男性人数:”aendl;cout女
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 公司 人员 信息管理 系统 课程设计 报告
限制150内