公司人事管理系统(共80页)_第1页
公司人事管理系统(共80页)_第2页
公司人事管理系统(共80页)_第3页
公司人事管理系统(共80页)_第4页
公司人事管理系统(共80页)_第5页
已阅读5页,还剩76页未读 继续免费阅读

下载本文档

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

文档简介

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

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

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

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

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

6、文书(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)salary

8、=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(cha

9、r 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=;sale_objectRate=;salary=sale_objectRate*sale_object+sale_num*sale_numRate; (4)销售经理(SalesManage)类class SalesManager: public Managerpublic:SalesManager(ch

10、ar 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);/等级 number=n

11、u;/编号 sex=se;/性别 flage=fla; sale_num=s_n; sale_object=s_ob; salary=salary+(sale_object+sale_num)*; (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(char nam20,cha

12、r 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 se,int fla,fl

13、oat 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) 老板(boss)类class bossp

14、ublic: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; 画出类图SalesManagerSalesman4 编 码头文件#include<iostream>#include<cstring>#include<fstream>#in

15、clude<>#include<>#include<>int n=;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/普通职工 protec

16、ted: char name20;/姓名 int number;/编号char 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 GetEm

17、pNo();/提取编号 char * Level();/提取级别 char Sex();/提取性别 int GetFla(); friend class boss; employee *next; ; void employee:show() cout<<name<<"tt"<<number<<"tt"<<level<<"tt"<<sex<<"tt"<<salary<<endl; employee

18、:employee(char nam20,char lev20,int nu,char se,int fla)/初始化编号,基本工资,级别 strcpy(name,nam);/姓名 strcpy(level,lev);/等级 number=nu;/编号 sex=se;/性别 salary=1500; flage=fla; char* employee:GetName()return name;int employee:GetEmpNo()return number;char* employee:Level()return level;char employee:Sex()return sex;

19、int employee:GetFla()return flage;float employee:Salary()return salary;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)salary=5000;flage=fla;c

20、lass 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(char nam20,char lev20,int nu,char se,

21、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=;sale_objectRate=;salary=sale_objectRate*sale_object+sale_num*sale_numRate; class SalesManager: public Managerpublic:SalesManager(char nam20,char lev20,int nu,char se,int fla,float s_n,fl

22、oat 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);/等级 number=nu;/编号 sex=se;/性别 flage=fla; sale_num=s_n; sale_object=s

23、_ob; salary=salary+(sale_object+sale_num)*; 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(char nam20,char lev20,int nu,char se,int fla,float C_n) strcpy(name,nam);/姓名 strcpy(level

24、,lev);/等级 number=nu;/编号 sex=se;/性别 flage=fla; code_price=1000; salary=C_n*code_price; class TechnicalManager: public Technical public:TechnicalManager(char nam20,char lev20,int nu,char se,int fla,float bon);protected:float bonus;TechnicalManager:TechnicalManager(char nam20,char lev20,int nu,char se,

25、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; class bosspublic:void creat_head();/增void creat();void delete_inf();/删void seach();void show();void sort(); void read_file();/

26、读文件int write_file();/写入文件*/void modify();void count();protected:employee *head;ba;统计函数void boss:count()system("cls");char choice;while(true)int all_num=0,SEX_W_num=0,SEX_M_num=0;float max_salary=0,min_salary;float ALL_Salary=0; int ws_num,jl_num; int employee_num,salesman_num,SalesManager_

27、num,Technical_num,TechnicalManager_num;employee_num=salesman_num=SalesManager_num=Technical_num=TechnicalManager_num=0; employee *p=head; employee *p1=head->next; if(p1!=NULL) min_salary = p1->Salary(); while(p1!=NULL)ALL_Salary=p1->Salary()+ALL_Salary; all_num+;if(p1->Sex()=119) SEX_W_n

28、um+;else SEX_M_num+; if(p1->Salary() > max_salary) max_salary = p1->Salary(); if(p1->Salary() < min_salary) min_salary = p1->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(

29、)=4) Technical_num+; else if(p1->GetFla()=5) TechnicalManager_num+; p=p1;p1=p1->next; p1=head->next; if(p1!=NULL) cout<<"ttt公司职员信息"<<endl; cout<<endl; cout<<"ttt职员一共:"<<all_num<<"人!"<<endl; cout<<"ttt其中男生人数:&

30、quot;<<SEX_M_num<<" 女生人数:"<<SEX_W_num<<endl; cout<<"ttt公司文书人数为:"<<employee_num<<endl; cout<<"ttt销售人员人数为:"<<salesman_num<<endl; cout<<"ttt销售经理人数为:"<<SalesManager_num<<endl; cout<&l

31、t;"ttt技术人员人数为:"<<Technical_num<<endl; cout<<"ttt技术经理人数为:" <<TechnicalManager_num<<endl; cout<<"ttt公司的人均月薪为:"<<ALL_Salary/all_num<<endl; cout<<"ttt最高工资:"<<max_salary<<endl; cout<<"ttt最

32、低工资:"<<min_salary<<endl<<endl; else cout<<"ttt员工信息暂时未统计"<<endl; cout<<"ttt是否离开本界面?y/n"<<endl; cin>>choice; if(choice='y') break;修改函数void boss:modify()/修改作用system("cls");while(true)int i=0;employee *p=head;empl

33、oyee *p1=head->next;char No; char name220,name120;/姓名 int number;/编号 char leve20;/等级 char sex;/性别 float salary;/工资 system("cls");cout<<"ttt 请输入修改的类型"<<endl;cout<<"ttt1 姓名 "<<endl;cout<<"ttt2 等级 "<<endl;cout<<"t

34、tt3 工资 "<<endl;cin>>No;switch(No)case'1':cout<<"ttt请输入编号:"<<endl;cin>>number;cout<<"ttt输入修改后的姓名:"<<endl;cin>>name1;while(p1!=NULL)if(p1->GetEmpNo()=number)strcpy(p1->name,name1);i=1;p1=p1->next;break;case'2

35、':cout<<"ttt输入调整人员编号:"<<endl;cin>>number;cout<<"ttt输入调整岗位(文书,技术工,业务员,业务经理):"<<endl;cin>>leve;while(p1!=NULL)if(p1->GetEmpNo()=number)i=1; strcpy(p1->level,leve);p1=p1->next;break;case'3':cout<<"ttt输入调整编号:"&l

36、t;<endl;cin>>number;cout<<"ttt修改后的薪水 :"<<endl;cin>>salary;while(p1!=NULL)if(p1->GetEmpNo()=number)i=1;p1->salary=salary;p1=p1->next;break;default:cout<<"无此选项"<<endl;break;if(i=0)cout<<"ttt无此人员,请核对后再调整信息!"<<endl

37、; if(i=1)cout<<"ttt修改成功!"<<endl;cout<<"ttt是否退出y/n"<<endl; char choice;cin>>choice;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=

38、p1,p=p1;p->next!=NULL;p=p->next) if(p->next->Salary() < min->Salary()p_min=p;min=p->next; if(first=NULL) first=min; tail=min; else tail->next=min; tail=min; if(p1=min) p1=p1->next; else p_min->next=min->next; if (first != NULL) tail->next = NULL; head->next = f

39、irst; show();保存函数int boss:write_file()if(head->next=NULL)cout<<"空信息,请添加后保存"<<endl;elseemployee *p=head->next;ofstream myfile("");ofstream number("");if(!myfile|!number )cout<<"文件打开失败 !"<<endl;return 0;int l;do int size; l=p->Ge

40、tFla(); switch(l) 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; (char *)&l,sizeof(int); (char *)p,size); p=p->next; while(p!=NULL) ;();();cout<<

41、"ttt员工信息更新成功!"<<endl;删除函数void boss:delete_inf()system("cls");int num;employee *p=head;employee *p1=head->next;cout<<"ttt请输入要删除员工的编号:"<<endl;cin>>num; while(p1!=NULL)if(p1->GetEmpNo()=num)p->next=p1->next;delete p1;cout<<"tt

42、t该员工已删除"<<endl; write_file(); break;p=p1;p1=p1->next;if(p1=NULL)cout<<"ttt无编号为"<<num<<"的员工!"<<endl; system("PAUSE");查找函数void boss:seach()system("cls");int number;employee *p=head;employee *p1=head->next;cout<<&quo

43、t;ttt请输入要查找员工的编号"<<endl;cin>>number;system("cls");while(p1!=NULL)if(p1->GetEmpNo()=number)cout<<"姓名 tt 编号 tt 职务ttt性别 tt工资 "<<endl;p1->show();p1=head->next;break;p=p1;p1=p1->next;if(p1=NULL)cout<<"ttt查无此人"<<endl;system

44、("PAUSE");读取函数void boss:read_file() employee *p1,*p2; char name20;/姓名 int number;/编号 char level20;/等级 char sex;/性别 float salary;/工资 int flage;float x,y; ifstream infile(""); ifstream in(""); if(!infile|!in) cout << "尚未存入信息,请创建后再进行操作。" << endl; p1=n

45、ew employee(name,level,number,sex,flage); head=p1; int size; int i=0; do cout<<"*"<<endl; if(i>0) p1->next=p2; p1=p2; int flage; (char *)(&flage),sizeof(int); switch(flage) case 1:size=sizeof(employee(name,level,number,sex,flage); p2=new employee(name,level,number,sex

46、,1); break; case 2:size=sizeof(salesman(name,level,number,sex,flage,x,y); p2=new salesman(name,level,number,sex,2,x,y); break; case 3:size=sizeof(SalesManager(name,level,number,sex,flage,x,y); p2=new SalesManager(name,level,number,sex,3,y,x); break; case 4:size=sizeof(Technical(name,level,number,sex

47、,flage,x); p2=new Technical(name,level,number,sex,4,y); break; case 5:size=sizeof(TechnicalManager(name,level,number,sex,flage,x); p2=new TechnicalManager(name,level,number,sex,5,y); break; +i; while(char *)p2,size); (); ();创建空头函数void boss:creat_head()head=new employee;head->next=NULL;添加职员函数void

48、boss:creat()while(true)system("cls");ifstream w("",ios:binary);(char *)&n,sizeof(int);();employee *p1,*p2;p1=head;int i=0;while(p1->next!=NULL)p1=p1->next;char type;char name20;char lev20;char sex;cout<<"ttt请输入你所建立的信息:"<<endl;cout<<"tt1

49、公司文书 2 销售人员 3 销售经理 4 技术人员 5 技术经理"<<endl;cin>>type;system("cls");float sale_num,sale_object;switch(type)case '1':cout<<"ttt输入姓名:"<<endl;cin>>name;cout<<"ttt输入性别:"<<endl;cin>>sex;strcpy(lev,"公司文书");p2=

50、new employee(name,lev,n+,sex,1);break;case '2':cout<<"ttt输入姓名:"<<endl;cin>>name;cout<<"ttt输入性别:"<<endl;cin>>sex;cout<<"ttt请输入销售额:"<<endl;cin>>sale_num;cout<<"ttt请输入项目额:"<<endl;cin>>sale_object;strcpy(lev,"销售人员");p2=new salesman(name,lev,n+,sex,2,sale_num,sale_object);break;case '3':cout<<"ttt输入姓名:"<<endl;cin>>name;cout<<"ttt输入性别:"<<endl;c

温馨提示

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

评论

0/150

提交评论