公司人事管理系统.docx

上传人:牧羊曲112 文档编号:1852211 上传时间:2022-12-21 格式:DOCX 页数:42 大小:473.03KB
返回 下载 相关 举报
公司人事管理系统.docx_第1页
第1页 / 共42页
公司人事管理系统.docx_第2页
第2页 / 共42页
公司人事管理系统.docx_第3页
第3页 / 共42页
公司人事管理系统.docx_第4页
第4页 / 共42页
公司人事管理系统.docx_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《公司人事管理系统.docx》由会员分享,可在线阅读,更多相关《公司人事管理系统.docx(42页珍藏版)》请在三一办公上搜索。

1、软件学院课程设计报告设计名称:C+课程设计选题名称:人事管理系统姓名: 学号:1515专业班级:系(院):设计时间:设计地点:1需求分析1.1需求概述设计一个公司人事管理系统,该系统主要实现了对老板和普通员工(游客)不同的操作。【1】 老板身份的功能:(1) 增加职员信息(2) 显示职员信息(3) 删除职员信息(4) 保存职员信息(5) 读取职员信息(6) 修改职员信息(7) 排序职员信息(8) 统计员工信息(9) 查找员工信息(10) 退出系统【2】 普通员工的功能(1)显示职员信息(2)公司职员状况(3) 查找职员信息(4) 退出系统1.2需求说明(1 随着现代社会的发展,公司的人员信息资

2、料变化较大。在这个信息爆炸的时代再像曾经用笔那样记录人员信息效率较低,工作量较大。与此相对应的信息登记电子化则很好的解决此问题。故推出本人事管理系统令你摆脱往日与笔墨为伴的岁月。(2 本系统能记录常见的姓名,性别,编号,职务,月薪等基本工资。对于录入的人员的信息都能用文件保存起来,并且可以任意对其进行删除,浏览,修改,增加等常见操作。(3显示所有人员信息有一定规范的格式,以便老板以及其他员工的查看,分析等应用。(4该管理系统是以大菜单下细分小菜单的方式进行工作,为不同用户提供清晰且不同菜单功能的使用提示,依据不同用户的不同选择进行不同操作任意切换2 总体设计2.1功能模块图该系统按功能模块划分

3、如下:公司人事管理系统普通员工老板公司职员状况统计员工信息查找职员信息查找员工信息统计员工信息排序职员信息修改职员信息读取职员信息保存职员信息删除职员信息显示职员信息增加职员信息退出系统按照员工的编号按照员工的编号修改工资修改职务修改姓名2.2功能描述(1)身份选择模块是公司人事管理系统的入口,是用来完成用户操作命令的接口,用户可以根据提示进入不同的身份的功能界面,进而实现不同用户的不同需求(2)进入公司人员管理界面开始选择功能,如果系统读取到之前的保存的信息可以增删查改等常见功能,如没有则可初始化人员,然后进行相应操作。(3)对人员信息的查询可以运用独一无二的编号快速查找职工。(4)在删除商

4、品信息模块中仅允许老板身份人员对职员信息进行删除操作(5)修改职员信息中老板可以根据需要对某些职员进行提拔,调整工资等功能。(6)在统计职员信息功能中,统计出当前所有职员的一些信息。如男女职员的数目,某一职务的人数,所有职员数目等等功能。(7)在普通职员身份仅仅能查看公司特定信息,任何具有修改信息的功能模块,考虑到安全性均不能实现。2.3数据结构在公司人事管理系统中主要的数据结构是职员的信息,包含职员姓名,职员性别,职员编号,职员工资,职员职务,等在处理过程中可以作为一个员工的不同类别进行处理,其中员工类别包括文书类,技术人员类,技术经理类,业务员类,业务员经理类等等。用户可以根据菜单提示对信

5、息进行不同处理2.4系统流程图老板功能流程图开始功能选择增加职工否 否删除职工否查询职工否 否修改职工否 否 否 结束退出老板身份否 是 开始员工功能流程图功能选择执行完毕显示所有职工信息查看公司信息 是 否 是 否 查询员工信息 退出员工身份 是 否 否 是 退出3 详细设计3.1 类的设计在;人事管理系统中共设计了六个类,分别是: 文书(employee)类,销售员(salesman)类,销售经理(SalesManager)类,技术员(Technical)类,技术经理(TechnicalManager)类,老板(boss)类,employee类作为基类,其他类均由employee类派生。(

6、1)文书(employee)类class employee/普通职工 protected: char name20;/姓名 int number;/编号char level20;/职务 char sex;/性别 float salary;/工资 int flage;/标记 public: employee(char nam20,char lev20,int nu,char se,int fla); employee() void show(); float Salary(); char * GetName();/提取姓名函数 int GetEmpNo();/提取编号 char * Level(

7、);/提取级别 char Sex();/提取性别 int GetFla(); friend class boss; employee *next; ;(2)经理(Manager)类class Manager:public employee/经理public:Manager(char nam20,char lev20,int nu,char se,int fla);void pay();void show();Manager:Manager(char nam20,char lev20,int nu,char se,int fla): employee(nam,lev,nu,se,fla)sala

8、ry=5000;flage=fla;(3)销售员(salesman)类class salesman: public employee/销售员protected:float sale_num;/销售额float sale_object;/项目额float sale_numRate;/销售额提成率float sale_objectRate;/项目额提成率public:salesman()salesman(char nam20,char lev20,int nu,char se,int fla,float s_n,float s_ob);void show();salesman:salesman(c

9、har nam20,char lev20,int nu,char se,int fla,float s_n,float s_ob):employee(nam,lev,nu,se,fla)flage=fla;/标记sale_num=s_n;sale_object=s_ob;sale_numRate=0.15;sale_objectRate=0.10;salary=sale_objectRate*sale_object+sale_num*sale_numRate; (4)销售经理(SalesManage)类class SalesManager: public Managerpublic:Sales

10、Manager(char nam20,char lev20,int nu,char se,int fla,float s_n,float s_ob);void show();protected:float sale_num;/销售额float sale_object;/项目额;SalesManager:SalesManager(char nam20,char lev20,int nu,char se,int fla,float s_n,float s_ob):Manager(nam,lev,nu,se,fla) strcpy(name,nam);/姓名 strcpy(level,lev);/等

11、级 number=nu;/编号 sex=se;/性别 flage=fla; sale_num=s_n; sale_object=s_ob; salary=salary+(sale_object+sale_num)*0.35; (5) 技术人员(Technical)类class Technical: public employeeprotected:float code_num;float code_price;public:Technical(char nam20,char lev20,int nu,char se,int fla,float C_n);Technical:Technical(

12、char nam20,char lev20,int nu,char se,int fla,float C_n) strcpy(name,nam);/姓名 strcpy(level,lev);/等级 number=nu;/编号 sex=se;/性别 flage=fla; code_price=1000; salary=C_n*code_price; (6) 技术经理(TechnicalManager)类class TechnicalManager: public Technical public:TechnicalManager(char nam20,char lev20,int nu,char

13、 se,int fla,float bon);protected:float bonus;TechnicalManager:TechnicalManager(char nam20,char lev20,int nu,char se,int fla,float bon):Technical(nam,lev,nu,se,fla,1) strcpy(name,nam);/姓名 strcpy(level,lev);/等级 number=nu;/编号 sex=se;/性别 flage=fla; salary=5000; bonus=bon; salary=salary+bonus; (7) 老板(bos

14、s)类class bosspublic:void creat_head();/增void creat();void delete_inf();/删void seach();void show();void sort(); void read_file();/读文件int write_file();/写入文件*/void modify();void count();protected:employee *head;3.2 画出类图EmployeeSalesManagerSalesman4 编 码头文件#include#include#include#include#include#include

15、int n=1515900;using namespace std;/姓名,编号,级别,低薪,工资总额void Register();void Login();void Correct();光标位置函数 extern void gotoxy(int x, int y) COORD pos = x,y; HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleCursorPosition(hOut, pos); class employee/普通职工 protected: char name20;/姓名 int number;/编号cha

16、r level20;/*如果用string类型 文件读到职位这个数据时会出现错误或者乱码,若是改成char level20,文件的读写能实现但是会有警告。*/ char sex;/性别 float salary;/工资 int flage;/标记 public: employee(char nam20,char lev20,int nu,char se,int fla); employee() void show(); float Salary(); char * GetName();/提取姓名函数 int GetEmpNo();/提取编号 char * Level();/提取级别 char

17、Sex();/提取性别 int GetFla(); friend class boss; employee *next; ; void employee:show() coutnamettnumberttlevelttsexttsalarynext; if(p1!=NULL) min_salary = p1-Salary(); while(p1!=NULL)ALL_Salary=p1-Salary()+ALL_Salary; all_num+;if(p1-Sex()=119) SEX_W_num+;else SEX_M_num+; if(p1-Salary() max_salary) max_

18、salary = p1-Salary(); if(p1-Salary() Salary(); if(p1-GetFla()=1) employee_num+; else if(p1-GetFla()=2) salesman_num+; else if(p1-GetFla()=3) SalesManager_num+; else if(p1-GetFla()=4) Technical_num+; else if(p1-GetFla()=5) TechnicalManager_num+; p=p1;p1=p1-next; p1=head-next; if(p1!=NULL) coutttt公司职员

19、信息endl; coutendl; coutttt职员一共:all_num人!endl; coutttt其中男生人数:SEX_M_num 女生人数:SEX_W_numendl; coutttt公司文书人数为:employee_numendl; coutttt销售人员人数为:salesman_numendl; coutttt销售经理人数为:SalesManager_numendl; coutttt技术人员人数为:Technical_numendl; coutttt技术经理人数为: TechnicalManager_numendl; coutttt公司的人均月薪为:ALL_Salary/all_n

20、umendl; coutttt最高工资:max_salaryendl; coutttt最低工资:min_salaryendlendl; else coutttt员工信息暂时未统计endl; coutttt是否离开本界面?y/nchoice; if(choice=y) break; 修改函数void boss:modify()/修改作用system(cls);while(true)int i=0;employee *p=head;employee *p1=head-next;char No; char name220,name120;/姓名 int number;/编号 char leve20;

21、/等级 char sex;/性别 float salary;/工资 system(cls);coutttt 请输入修改的类型endl;coutttt1 姓名 endl;coutttt2 等级 endl;coutttt3 工资 No;switch(No)case1:coutttt请输入编号:number;coutttt输入修改后的姓名:name1;while(p1!=NULL)if(p1-GetEmpNo()=number)strcpy(p1-name,name1);i=1;p1=p1-next;break;case2:coutttt输入调整人员编号:number;coutttt输入调整岗位(文

22、书,技术工,业务员,业务经理):leve;while(p1!=NULL)if(p1-GetEmpNo()=number)i=1; strcpy(p1-level,leve);p1=p1-next;break;case3:coutttt输入调整编号:number;coutttt修改后的薪水 :salary;while(p1!=NULL)if(p1-GetEmpNo()=number)i=1;p1-salary=salary;p1=p1-next;break;default:cout无此选项endl;break;if(i=0)coutttt无此人员,请核对后再调整信息!endl; if(i=1)c

23、outttt修改成功!endl;coutttt是否退出y/nchoice;if(choice=y)break;排序函数void boss:sort() system(cls); employee *p,*min,*p_min,*first=NULL,*tail; employee *p1=head-next;while(p1!=NULL) for(min=p1,p=p1;p-next!=NULL;p=p-next) if(p-next-Salary() Salary()p_min=p;min=p-next; if(first=NULL) first=min; tail=min; else ta

24、il-next=min; tail=min; if(p1=min) p1=p1-next; else p_min-next=min-next; if (first != NULL) tail-next = NULL; head-next = first; show();保存函数int boss:write_file()if(head-next=NULL)cout空信息,请添加后保存next;ofstream myfile(file.txt);ofstream number(file1.txt);if(!myfile|!number )cout文件打开失败 !GetFla(); switch(l

25、) case 1:size=sizeof(employee);break;case 2:size=sizeof(salesman);break;case 3:size=sizeof(SalesManager);break;case 4:size=sizeof(Technical);break;case 5:size=sizeof(TechnicalManager);break; number.write(char *)&l,sizeof(int); myfile.write(char *)p,size); p=p-next; while(p!=NULL) ;myfile.close();number.close();coutttt员工信息更新成功!next;coutttt请输入要删除员工的编号:num; while(p1!=NULL)if(p1-GetEmpNo()=num)p-next=p1-next;delete p1

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号