公司人事管理系統(tǒng)(共80頁)_第1頁
公司人事管理系統(tǒng)(共80頁)_第2頁
公司人事管理系統(tǒng)(共80頁)_第3頁
公司人事管理系統(tǒng)(共80頁)_第4頁
公司人事管理系統(tǒng)(共80頁)_第5頁
已閱讀5頁,還剩76頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上軟件學(xué)院課程設(shè)計(jì)報(bào)告設(shè)計(jì)名稱:C+課程設(shè)計(jì)選題名稱:人事管理系統(tǒng)姓名: 學(xué)號:1515專業(yè)班級:系(院):設(shè)計(jì)時(shí)間:設(shè)計(jì)地點(diǎn):1需求分析需求概述設(shè)計(jì)一個(gè)公司人事管理系統(tǒng),該系統(tǒng)主要實(shí)現(xiàn)了對老板和普通員工(游客)不同的操作?!?】 老板身份的功能:(1) 增加職員信息(2) 顯示職員信息(3) 刪除職員信息(4) 保存職員信息(5) 讀取職員信息(6) 修改職員信息(7) 排序職員信息(8) 統(tǒng)計(jì)員工信息(9) 查找員工信息(10) 退出系統(tǒng)【2】 普通員工的功能(1)顯示職員信息(2)公司職員狀況(3) 查找職員信息(4) 退出系統(tǒng)需求說明(1 隨著現(xiàn)代社會的發(fā)展,公

2、司的人員信息資料變化較大。在這個(gè)信息爆炸的時(shí)代再像曾經(jīng)用筆那樣記錄人員信息效率較低,工作量較大。與此相對應(yīng)的信息登記電子化則很好的解決此問題。故推出本人事管理系統(tǒng)令你擺脫往日與筆墨為伴的歲月。(2 本系統(tǒng)能記錄常見的姓名,性別,編號,職務(wù),月薪等基本工資。對于錄入的人員的信息都能用文件保存起來,并且可以任意對其進(jìn)行刪除,瀏覽,修改,增加等常見操作。(3顯示所有人員信息有一定規(guī)范的格式,以便老板以及其他員工的查看,分析等應(yīng)用。(4該管理系統(tǒng)是以大菜單下細(xì)分小菜單的方式進(jìn)行工作,為不同用戶提供清晰且不同菜單功能的使用提示,依據(jù)不同用戶的不同選擇進(jìn)行不同操作任意切換2 總體設(shè)計(jì)功能模塊圖該系統(tǒng)按功能

3、模塊劃分如下:公司人事管理系統(tǒng)普通員工老板公司職員狀況統(tǒng)計(jì)員工信息查找職員信息查找員工信息統(tǒng)計(jì)員工信息排序職員信息修改職員信息讀取職員信息保存職員信息刪除職員信息顯示職員信息增加職員信息退出系統(tǒng)按照員工的編號按照員工的編號修改工資修改職務(wù)修改姓名功能描述(1)身份選擇模塊是公司人事管理系統(tǒng)的入口,是用來完成用戶操作命令的接口,用戶可以根據(jù)提示進(jìn)入不同的身份的功能界面,進(jìn)而實(shí)現(xiàn)不同用戶的不同需求(2)進(jìn)入公司人員管理界面開始選擇功能,如果系統(tǒng)讀取到之前的保存的信息可以增刪查改等常見功能,如沒有則可初始化人員,然后進(jìn)行相應(yīng)操作。(3)對人員信息的查詢可以運(yùn)用獨(dú)一無二的編號快速查找職工。(4)在刪除

4、商品信息模塊中僅允許老板身份人員對職員信息進(jìn)行刪除操作(5)修改職員信息中老板可以根據(jù)需要對某些職員進(jìn)行提拔,調(diào)整工資等功能。·(6)在統(tǒng)計(jì)職員信息功能中,統(tǒng)計(jì)出當(dāng)前所有職員的一些信息。如男女職員的數(shù)目,某一職務(wù)的人數(shù),所有職員數(shù)目等等功能。(7)在普通職員身份僅僅能查看公司特定信息,任何具有修改信息的功能模塊,考慮到安全性均不能實(shí)現(xiàn)。數(shù)據(jù)結(jié)構(gòu)在公司人事管理系統(tǒng)中主要的數(shù)據(jù)結(jié)構(gòu)是職員的信息,包含職員姓名,職員性別,職員編號,職員工資,職員職務(wù),等在處理過程中可以作為一個(gè)員工的不同類別進(jìn)行處理,其中員工類別包括文書類,技術(shù)人員類,技術(shù)經(jīng)理類,業(yè)務(wù)員類,業(yè)務(wù)員經(jīng)理類等等。用戶可以根據(jù)菜單

5、提示對信息進(jìn)行不同處理系統(tǒng)流程圖老板功能流程圖開始功能選擇增加職工否 否刪除職工否查詢職工否 否修改職工否 否 否 結(jié)束退出老板身份否 是 開始員工功能流程圖功能選擇執(zhí)行完畢顯示所有職工信息查看公司信息 是 否 是 否 查詢員工信息 退出員工身份 是 否 否 是 退出3 詳細(xì)設(shè)計(jì) 類的設(shè)計(jì)在;人事管理系統(tǒng)中共設(shè)計(jì)了六個(gè)類,分別是: 文書(employee)類,銷售員(salesman)類,銷售經(jīng)理(SalesManager)類,技術(shù)員(Technical)類,技術(shù)經(jīng)理(TechnicalManager)類,老板(boss)類,employee類作為基類,其他類均由employee類派生。(1)

6、文書(employee)類class employee/普通職工 protected: char name20;/姓名 int number;/編號char level20;/職務(wù) char sex;/性別 float salary;/工資 int flage;/標(biāo)記 public: employee(char nam20,char lev20,int nu,char se,int fla); employee() void show(); float Salary(); char * GetName();/提取姓名函數(shù) int GetEmpNo();/提取編號 char * Level();

7、/提取級別 char Sex();/提取性別 int GetFla(); friend class boss; employee *next; ;(2)經(jīng)理(Manager)類class Manager:public employee/經(jīng)理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;/項(xiàng)目額float sale_numRate;/銷售額提成率float sale_objectRate;/項(xiàng)目額提成率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;/標(biāo)記sale_num=s_n;sale_object=s_ob;sale_numRate=;sale_objectRate=;salary=sale_objectRate*sale_object+sale_num*sale_numRate; (4)銷售經(jīng)理(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;/項(xiàng)目額;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) 技術(shù)人員(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) 技術(shù)經(jīng)理(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();光標(biāo)位置函數(shù) 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類型 文件讀到職位這個(gè)數(shù)據(jù)時(shí)會出現(xiàn)錯誤或者亂碼,若是改成char level20,文件的讀寫能實(shí)現(xiàn)但是會有警告。*/ char sex;/性別 float salary;/工資 int flage;/標(biāo)記 public: employee(char nam20,char lev20,int nu,char se,int fla); employee() void show(); float Salary(); char * GetName();/提取姓名函數(shù) 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/經(jīng)理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;/項(xiàng)目額float sale_numRate;/銷售額提成率float sale_objectRate;/項(xiàng)目額提成率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;/標(biāo)記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;/項(xiàng)目額;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;統(tǒng)計(jì)函數(shù)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其中男生人數(shù):&

30、quot;<<SEX_M_num<<" 女生人數(shù):"<<SEX_W_num<<endl; cout<<"ttt公司文書人數(shù)為:"<<employee_num<<endl; cout<<"ttt銷售人員人數(shù)為:"<<salesman_num<<endl; cout<<"ttt銷售經(jīng)理人數(shù)為:"<<SalesManager_num<<endl; cout<&l

31、t;"ttt技術(shù)人員人數(shù)為:"<<Technical_num<<endl; cout<<"ttt技術(shù)經(jīng)理人數(shù)為:" <<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員工信息暫時(shí)未統(tǒng)計(jì)"<<endl; cout<<"ttt是否離開本界面?y/n"<<endl; cin>>choice; if(choice='y') break;修改函數(shù)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輸入調(diào)整人員編號:"<<endl;cin>>number;cout<<"ttt輸入調(diào)整崗位(文書,技術(shù)工,業(yè)務(wù)員,業(yè)務(wù)經(jīng)理):"<<endl;cin>>leve;while(p1!=NULL)if(p1->GetEmpNo()=number)i=1; strcpy(p1->level,leve);p1=p1->next;break;case'3':cout<<"ttt輸入調(diào)整編號:"&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<<"無此選項(xiàng)"<<endl;break;if(i=0)cout<<"ttt無此人員,請核對后再調(diào)整信息!"<<endl

37、; if(i=1)cout<<"ttt修改成功!"<<endl;cout<<"ttt是否退出y/n"<<endl; char choice;cin>>choice;if(choice='y')break;排序函數(shù)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();保存函數(shù)int boss:write_file()if(head->next=NULL)cout<<"空信息,請?zhí)砑雍蟊4?quot;<<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;刪除函數(shù)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");查找函數(shù)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 職務(wù)ttt性別 tt工資 "<<endl;p1->show();p1=head->next;break;p=p1;p1=p1->next;if(p1=NULL)cout<<"ttt查無此人"<<endl;system

44、("PAUSE");讀取函數(shù)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 << "尚未存入信息,請創(chuàng)建后再進(jìn)行操作。" << 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); (); ();創(chuàng)建空頭函數(shù)void boss:creat_head()head=new employee;head->next=NULL;添加職員函數(shù)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 銷售經(jīng)理 4 技術(shù)人員 5 技術(shù)經(jīng)理"<<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請輸入項(xiàng)目額:"<<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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論