c++公司人事管理_第1頁(yè)
c++公司人事管理_第2頁(yè)
c++公司人事管理_第3頁(yè)
已閱讀5頁(yè),還剩9頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、/ 852369.cpp : 定義控制臺(tái)應(yīng)用程序的入口點(diǎn)。/#include "stdafx.h"#include <iostream>#include <fstream>#include <iomanip>#include <string>#include <string.h>#include <stdlib.h>#include<time.h>#include<windows.h>#include<conio.h>using namespace std; clas

2、s Staff / 聲明員工類(lèi)protected:int num,post;char name20;float income;public:friend class Boss;/ 在一個(gè)非成員函數(shù)中,要想訪(fǎng)問(wèn)類(lèi)的私有數(shù)據(jù)成員/ ,該函數(shù)必須聲明為該類(lèi)的友元函數(shù)Staff() / 聲明一個(gè)無(wú)參的構(gòu)造函數(shù) StaffStaff (int id,char *Name,int post,double pay);/ 定義一個(gè)有參的構(gòu)造函數(shù),用 參數(shù)的初始化表對(duì)數(shù)據(jù)成員初始化virtual double Pay()return 0;Staff :Staff (int id,char *Name,int P

3、ost,double pay)/ 在類(lèi)外定義有參構(gòu)造函數(shù)num=id;post=Post;income= pay; strcpy(name,Name);class TechniqueManager:public Staff / 聲明技術(shù)經(jīng)理類(lèi)public:TechniqueManager(int id,char *Name,int post,double pay):Staff (id,Name,post,pay)double Pay()return income=5000; void display();TechniqueManager();void TechniqueManager:disp

4、lay()/ 構(gòu)造函數(shù)"<<name<<" 技 術(shù) 經(jīng) 理Pay();cout<<num<<" "<<income<<endl;class BusinessManager:public Staff / 聲明業(yè)務(wù)經(jīng)理類(lèi)public:double Amount, Programe;amount,doubleamount,doubleBusinessManager(int id,char *Name,int post,double programe,double pay);void Set

5、Amount(double s,double d);double Pay(); BusinessManager();BusinessManager:BusinessManager(int id,char *Name,int post,double programe,double pay):Staff (id,Name,post,pay) / 構(gòu)造函數(shù)Amount=amount;Programe=programe;void BusinessManager:SetAmount(double s,double d)Amount=s;Programe=d;double BusinessManager:

6、Pay()return income=2000+Amount*15 /100+Programe*10/100;class Secretary:public Staff / 聲明文秘類(lèi)public:Secretary(int id,char *Name,int post,double pay):Staff (id,Name,post,pay)double Pay()return income=1500;void display();Secretary();void Secretary:display() / 構(gòu)造函數(shù)"<<name<<"文秘Pay();

7、cout<<num<<" "<<income<<endl;class Financial:public Staff / 聲明財(cái)務(wù)人員類(lèi)public:Financial(int id,char *Name,int post,double pay):Staff (id,Name,post,pay)double Pay()return income=2000;void display();Financial();void Financial:display() / 構(gòu)造函數(shù)Pay();cout<<num<<&

8、quot; "<<name<<" 財(cái) 務(wù)"<<income<<endl; class Sales:public Staff / 聲明業(yè)務(wù)人員類(lèi)public:double Amount,Programe;Sales(int id,char *Name,int post,double amount,double programe,double pay);void SetAmount(double s,double d);virtual double Pay();Sales();Sales:Sales(int id,cha

9、r *Name,int post,double amount,double programe,double pay):Staff (id,Name,post,pay)/ 在類(lèi)外定義有參構(gòu)造函數(shù)Amount=Amount;/ 銷(xiāo)售額 Programe=programe;/ 項(xiàng)目額double Sales:Pay()return income=Amount*15 /100+Programe*10/100;void Sales:SetAmount(double s,double d)Amount=s;Programe=d;class Technician:public Staff / 聲明技術(shù)員類(lèi)p

10、ublic:double Line;Technician(int id,char *Name,int post,double line,double (id,Name,post,pay) Line=line;double Pay();void display(); Technician();double Technician:Pay() / 在類(lèi)外定義無(wú)參構(gòu)造函數(shù)return income=Line;void Technician:display()Pay();cout<<num<<" "<<name<<" 技 &q

11、uot;<<income<<endl; class Boss / 聲明老板類(lèi)public:Boss();void Add();void Search();void Delete();void Modify();void DisPlay();Boss() ;void Boss:Add()time_t t = time(0);char tmp64;pay):Staff術(shù)人員strftime( tmp, sizeof(tmp), "%Y/%m/%d %X %A 本年第 %j 天 %z",localtime(&t) ); puts( tmp );St

12、aff p,*p1;int post,id;char Name20,ch;double pay,Amount,sell,programe;cout<<endl;cout<<endl;cout<<"nnnnttt"<<" 添加職工信息 "<<endl;cout<<"ttt"<<"1 技術(shù)經(jīng)理"<<endl;cout<<"ttt"<<"2 業(yè)務(wù)經(jīng)理"<&l

13、t;endl;cout<<"ttt"<<"3 文秘 "<<endl;cout<<"ttt"<<"4 業(yè)務(wù)人員"<<endl;cout<<"ttt"<<"5 技術(shù)人員"<<endl;cout<<"ttt"<<"6 財(cái)務(wù)人員"<<endl;do fstream file("company.

14、dat",ios:out|ios:app|ios:binary);/以寫(xiě) ,追加 ,二進(jìn)制形式打開(kāi)文件if(file.fail()cout<<"can not open file!"<<endl;cout<<endl<<" 輸入崗位 :" cin>>post;cout<<"編號(hào):";cin>>id;cout<<" 輸入姓名 :";cin>>Name; switch(post) case 1:p1=n

15、ew TechniqueManager(id,Name,post,0); / 聲明一個(gè)基類(lèi)的指針指向派生類(lèi), 用 new 創(chuàng)建了派生類(lèi)的對(duì)象pay=(*p1).Pay();p=TechniqueManager(id,Name,post,pay); break;case 2: cout<<"本月銷(xiāo)售額:"cin>>sell;cout<<"本月產(chǎn)品額:"cin>>programe;cout<<endl;p1=new BusinessManager(id,Name,post,sell,programe

16、,0); pay=(*p1).Pay();p=BusinessManager(id,Name,post,sell,programe,pay); break; case 3:p1=new Secretary(id,Name,post,0);pay=(*p1).Pay();p=Secretary(id,Name,post,pay); break;case 4:cout<<"本月銷(xiāo)售額:"cin>>sell;cout<<" 本月產(chǎn)品額 :"cin>>programe;cout<<endl;p1=new

17、 Sales(id,Name, post,sell,programe,0);pay=(*p1).Pay();p=Sales(id,Name, post,sell,programe,pay);break;case 5: cout<<" 代碼行數(shù) :"cin>>Amount;p1=new Technician(id,Name,post,Amount,0);pay=(*p1).Pay(); p=Technician(id,Name,post,Amount,pay);break;case 6:p1=new Financial(id,Name,post,0);

18、 pay=(*p1).Pay();p=Financial(id,Name,post,pay); break;file.write(char *)(&p),sizeof(p);/ 以寫(xiě)的方式讀入文件中file.close();cout<<"是否繼續(xù)添加?y或Y:繼續(xù) n或N:結(jié)束并返回主菜單bb"cin>>ch;if(ch = 'n'|ch = 'N')break;while(ch='y'|ch='Y');system(" cls");void Boss:Sea

19、rch() / 查找員工信息time_t t = time(0);char tmp64;strftime( tmp, sizeof(tmp), "%Y/%m/%d %X %A 本年第 %j 天 %z",localtime(&t) );puts( tmp );int d;Staff p; char ch;cout<<"nnnnnncout<<"ttt"<<"1cout<<"ttt"<<"2cout<<"ttt"

20、;<<"3查找員工信息 "<<endl; 技術(shù)經(jīng)理 "<<endl; 業(yè)務(wù)經(jīng)理 "<<endl;文秘 "<<endl;cout<<"ttt"<<"4cout<<"ttt"<<"5cout<<"ttt"<<"6業(yè)務(wù)人員 "<<endl; 技術(shù)人員 "<<endl; 財(cái)務(wù)人員 "

21、;<<endl;docout<<" 請(qǐng)輸入崗位 :" cin>>d;cout<<endl;fstream file("company.dat",ios:in|ios:binary);/ 以讀的方式打開(kāi)文件, if(file.fail()cout<<"can not open the file!"<<endl;while(file.read(char *)&p,sizeof(p)/ 文件中的內(nèi)容一個(gè)一個(gè)的讀出來(lái),不停止,直 到文件尾if(d=1&&a

22、mp;p.post=1)cout<<p.num<<""<<p.income<<endl;else if(d=2&&p.post=2)cout<<p.num<<""<<p.income<<endl;else if(d=3&&p.post=3)cout<<p.num<<""<<p.income<<endl;else if(d=4&&p.post=4)

23、cout<<p.num<<""<<p.income<<endl;else if(d=5&&p.post=5)cout<<p.num<<""<<p.income<<endl;else if(d=6&&p.post=6)cout<<p.num<<"t"<<<<""<<<<""&l

24、t;<<<""<<<<""<<<<""<<<<""<<" 技 術(shù) 經(jīng) 理 "<<""<<" 財(cái) 務(wù) 經(jīng) 理 "<<""<<" 文 秘 "<<""<<" 業(yè) 務(wù) 人 員

25、"<<""<<" 技 術(shù) 人 員 "<<""<<" 財(cái) 務(wù) 人 員 "<<""<<p.income<<endl;file.close();n或N :結(jié)束并返回主菜單bb"cout<<" 是否繼續(xù)添加? y 或 Y: 繼續(xù) cin>>ch;if(ch = 'n'|ch = 'N')break;while(ch='y'

26、;|ch='Y');system(" cls");void Boss:Modify() / 修改信息time_t t = time(0);char tmp64;strftime( tmp, sizeof(tmp), "%Y/%m/%d %X %A 本年第 %j 天 %z",localtime(&t) ); puts( tmp );char Name20;Staff p310;Staff *p1;Staff p;int post,id,i=0,j=0;double pay,Amount,sell,programe;修改員工信息 &q

27、uot;<<endl;cout<<"ttt"<<"1技術(shù)經(jīng)理 "<<endl;cout<<"ttt"<<"2cout<<"ttt"<<"3cout<<"ttt"<<"4cout<<"ttt"<<"5cout<<"ttt"<<"6業(yè)務(wù)經(jīng)理 &q

28、uot;<<endl; 文 秘 "<<endl; 業(yè)務(wù)人員 "<<endl; 技術(shù)人員 "<<endl; 財(cái)務(wù)人員 "<<endl;cout<<"nnnnnncout<<"輸入所要修改員工的編號(hào):cin>>id;fstream file("company.dat",ios:in|ios:binary); if(file.fail()cout<<"can not open the file!"

29、;<<endl;file.seekg(0,ios:beg);/ 把文件指針?lè)旁谖募拈_(kāi)始while(file.read(char *)&p,sizeof(p)p3i=p;if(p3i.num=id)cout<<" 修改崗位為 :"cin>>post;cout<<" 修改名字為 :"cin>>Name; cout<<endl;switch(post) case 1:p1=new TechniqueManager(id,Name,post,0); pay=(*p1).Pay();

30、p3i=TechniqueManager(id,Name,post,pay); break;case 2:cout<<" 銷(xiāo)售額 : " cin>>sell; cout<<" 產(chǎn)品額: " cin>>programe; cout<<endl;p1=new BusinessManager(id,Name, post,sell,programe,0); pay=(*p1).Pay();p3i=BusinessManager(id,Name, post,sell,programe,pay); brea

31、k;case3:p1=newSecretary(id,Name,post,0);pay=(*p1).Pay();p3i=Secretary(id,Name,post,pay);break;case 4:cout<<" 銷(xiāo)售額 : " cin>>sell; cout<<" 產(chǎn)品額: " cin>>programe; cout<<endl; p1=new Sales(id,Name, post,sell,programe,0); pay=(*p1).Pay();p3i=Sales(id,Name,

32、post,sell,programe,pay); break; case 5:cout<<" 代碼行數(shù) :"cin>>Amount; cout<<endl; p1=new Technician(id,Name,post,Amount,0); pay=(*p1).Pay();p3i=Technician(id,Name,post,Amount,pay);case6:p1=newFinancial(id,Name,post,0);pay=(*p1).Pay();p3i=Financial(id,Name,post,pay);break; i+

33、;file.close();ofstream file1("company.dat",ios:out|ios:binary); if(file1.fail()cout<<"can not open the file!"<<endl; for(j=0;j<i;j+) / 把修改后的信息存入文件中 file1.write(char *)&p3j,sizeof(p3j); file1.close();system(" cls");void Boss:Delete() / 刪除人員 time_t t =

34、time(0);char tmp64;strftime( tmp, sizeof(tmp), "%Y/%m/%d %X %A 本年第 %j 天 %z",localtime(&t) ); puts( tmp );int num,i,j=0;Staff p110;Staff p;char ch;doi=0;cout<<" 刪除員工信息 "cout<<" 編號(hào): "cin>>num;fstream file("company.dat",ios:in|ios:binary); /

35、 輸入文件流類(lèi)if(file.fail()cout<<"can not open the file!"<<endl;while(file.read(char *)&p,sizeof(p)if(p.num=num)switch(p.post)case 1:cout<<p.num<<" "<<<<" "<<" 技 術(shù) 經(jīng) 理 "<<" "<<p.income<<

36、endl;break;case 2:cout<<p.num<<" "<<<<" "<<" 財(cái) 務(wù) 經(jīng) 理 "<<" "<<p.income<<endl;break;case 3:cout<<p.num<<""<<<<""<<" 文秘"<<""<

37、;<p.income<<endl; break;case 4:cout<<p.num<<" "<<p.income<<endl;break;case 5:"<<<<""<<" 業(yè) 務(wù)人員"<<"cout<<p.num<<" "<<p.income<<endl;break;case 6:"<<

38、<<""<<" 技術(shù)員"<<"cout<<p.num<<""<<p.income<<endl;break;"<<<<""<<" 財(cái) 務(wù)人員"<<"elsep1i=p;i+;file.close();fstream file1("company.dat",ios:out|ios:binary);/ 輸出文件

39、流類(lèi)if(file1.fail() cout<<"can not open the file!"<<endl;for(j=0;j<i;j+)file1.write(char *)&p1j,sizeof(p1j);file1.close();cout<<"是否繼續(xù)添加?y或Y:繼續(xù) n或N:結(jié)束并返回主菜單bb"cin>>ch;if(ch = 'n'|ch = 'N')break;while(ch='y'|ch='Y');syste

40、m(" cls");void Boss:DisPlay()/ 顯示人員信息Staff p;/P 是職員類(lèi)的對(duì)象cout<<" 編號(hào) "<<"I "<<" 員工姓名 "<<"I "<<" "<<"I "<<endl;級(jí)別"<<"I "<<"fstream file("company.dat",

41、ios:in|ios:out|ios:binary); if(file.fail()cout<<"can not open the file!"<<endl;while(file.read(char *)(&p),sizeof(p)/ cout<<" 編號(hào)"<<endl;switch(p.post)II<<"姓名"<<"崗位"<<"case 1:cout<<""<<set

42、w(6)<<" 技術(shù)經(jīng)理 "<<"case 2:cout<<""<<setw(6)<<" 業(yè)務(wù)經(jīng)理 "<<"case 3:cout<<""<<setw(6)<<" 文秘 "<<"case 4:cout<<""<<setw(6)<<" 業(yè)務(wù)人員 "<<"

43、case 5:cout<<""<<setw(6)<<" 技術(shù)人員 "<<"case 6:cout<<""<<setw(6)<<" 財(cái)務(wù)人員 "<<"file.close();cout << "n 按任意鍵返回主菜單 getch();getchar();"<<p.num<<""<<p.income<<en

44、dl;break;"<<p.num<<""<<p.income<<endl; break;"<<p.num<<""<<p.income<<endl;"<<p.num<<""<<p.income<<endl;"<<p.num<<""<<setw(6)<<<<&quo

45、t;"<<setw(6)<<<<""<<setw(6)<<<<"break;break;"<<p.income<<endl; break;"<<p.num<<""<<p.income<<endl; break;n""<<setw(6)<<<<""<<setw(6)<<

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論