版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(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 #include #include #include #include #include #include#include#includeusing namespace std;class Staff / 聲明員工類protected:int num,post;char name20;float income;public:friend class Boss;/ 在一個(gè)非成員函數(shù)中,要想訪問類的私有數(shù)據(jù)成員/ ,該函數(shù)必須聲明為該類的友元函數(shù)Staff()/ 聲明一個(gè)無參的構(gòu)造函數(shù)
2、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 Post,double pay)/ 在類外定義有參構(gòu)造函數(shù)num=id;post=Post;income= pay;strcpy(name,Name);class TechniqueManager:public Staff/ 聲明技術(shù)經(jīng)理類public:TechniqueManager(int id,char
3、 *Name,int post,double pay):Staff (id,Name,post,pay)double Pay()return income=5000;void display();TechniqueManager();void TechniqueManager:display()/ 構(gòu)造函數(shù)Pay();coutnum name 技 術(shù) 經(jīng) 理incomeendl;class BusinessManager:public Staff / 聲明業(yè)務(wù)經(jīng)理類public:double Amount, Programe;BusinessManager(int id,char *Name,
4、int post,double amount,double programe,double pay);void SetAmount(double s,double d);double Pay();BusinessManager();BusinessManager:BusinessManager(int id,char *Name,int post,double amount,double programe,double pay):Staff (id,Name,post,pay)/ 構(gòu)造函數(shù)Amount=amount;Programe=programe;void BusinessManager:
5、SetAmount(double s,double d)Amount=s;Programe=d;double BusinessManager:Pay()return income=2000+Amount*15/100+Programe*10/100;class Secretary:public Staff / 聲明文秘類public:pay):StaffSecretary(int id,char *Name,int post,double (id,Name,post,pay)double Pay()return income=1500;void display();Secretary();Pa
6、y();coutnumname文秘incomeendl;class Financial:public Staff / 聲明財(cái)務(wù)人員類public:pay):StaffFinancial(int id,char *Name,int post,double(id,Name,post,pay)double Pay()return income=2000; void display();Financial();void Financial:display() / 構(gòu)造函數(shù)Pay();coutnumname財(cái)務(wù)incomeendl;amount,doubleprograme,doublepublic:d
7、ouble Amount,Programe;Sales(int id,char *Name,int post,double programe,double pay);void SetAmount(double s,double d);virtual double Pay();Sales();Sales:Sales(int id,char *Name,int post,double amount,double pay):Staff (id,Name,post,pay)/ 在類外定義有參構(gòu)造函數(shù)Amount=Amount;/ 銷售額 Programe=programe;/ 項(xiàng)目額 double S
8、ales:Pay()returnincome=Amount*15/100+Programe*10/100;void Sales:SetAmount(double s,double d)Amount=s;Programe=d;class Technician:public Staff/ 聲明技術(shù)員類public:double Line;line,doubleTechnician(int id,char *Name,int post,double pay):Staff (id,Name,post,pay)Line=line;double Pay();void display();Technicia
9、n()/ 在類外定義無參構(gòu)造函數(shù);double Technician:Pay()return income=Line;void Technician:display()Pay();coutnum name 技 術(shù) 人 員incomeendl; class Boss / 聲明老板類public:Boss();void Add();void Search();void Delete();void Modify();void DisPlay();Boss() ;void Boss:Add()time_t t = time(0);char tmp64;strftime( tmp, sizeof(tmp
10、), %Y/%m/%d %X %A本年第 %j 天 %z,localtime(&t) );puts( tmp );Staff p,*p1;int post,id;char Name20,ch;double pay,Amount,sell,programe;coutendl;coutendl;coutnnnntttcoutttt1coutttt2coutttt3coutttt4coutttt5coutttt6do添加職工信息 endl;技術(shù)經(jīng)理 endl;業(yè)務(wù)經(jīng)理 endl;文秘 endl;業(yè)務(wù)人員 endl;技術(shù)人員 endl;財(cái)務(wù)人員 endl;fstream file(company.da
11、t,ios:out|ios:app|ios:binary);/以寫 ,追加 ,二進(jìn)制形式打開文件if(file.fail()coutcan not open file!endl;coutendlpost;coutid;coutName;switch(post)case 1:p1=new TechniqueManager(id,Name,post,0); /聲明一個(gè)基類的指針指向派生類,用 new 創(chuàng)建了派生類的對(duì)象pay=(*p1).Pay();p=TechniqueManager(id,Name,post,pay); break;case 2: coutsell;coutprograme;c
12、outendl;p1=new BusinessManager(id,Name,post,sell,programe,0);pay=(*p1).Pay(); p=BusinessManager(id,Name,post,sell,programe,pay); break;break;case 3:p1=new Secretary(id,Name,post,0);pay=(*p1).Pay();p=Secretary(id,Name,post,pay);case 4:coutsell;coutprograme;coutendl;p1=new Sales(id,Name, post,sell,pro
13、grame,0);pay=(*p1).Pay();p=Sales(id,Name, post,sell,programe,pay);break;case 5: coutAmount;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);pay=(*p1).Pay();p=Financial(id,Name,post,pay); break;file.write(char
14、 *)(&p),sizeof(p);/ 以寫的方式讀入文件中file.close(); bb;coutch;if(ch = n|ch = N)puts( tmp );int d;Staff p;char ch;coutnnnnnncoutttt1coutttt2coutttt3coutttt4coutttt5break;while(ch=y|ch=Y);system( cls);void Boss:Search() / 查找員工信息time_t t = time(0);char tmp64;本年第 %j 天 %z,localtime(&t) );strftime( tmp, sizeof(tm
15、p), %Y/%m/%d %X %A查找員工信息 endl;技術(shù)經(jīng)理 endl;業(yè)務(wù)經(jīng)理 endl;文秘 endl;業(yè)務(wù)人員 endl;技術(shù)人員 endl;coutttt6財(cái)務(wù)人員 endl;docoutd;coutendl;fstream file(company.dat,ios:in|ios:binary);/ 以讀的方式打開文件,if(file.fail()coutcan not open the file!endl;while(file.read(char *)&p,sizeof(p)/ 文件中的內(nèi)容一個(gè)一個(gè)的讀出來, 不停止, 直到文件尾if(d=1&p.post=1)coutp.n
16、um 技 術(shù) 經(jīng) 理 p.incomeendl;else if(d=2&p.post=2) 財(cái) 務(wù) 經(jīng) 理 p.incomeendl;else if(d=3&p.post=3) 文 秘 p.incomeendl;else if(d=4&p.post=4) 業(yè) 務(wù) 人 員 p.incomeendl;else if(d=5&p.post=5) 技 術(shù) 人 員 p.incomeendl;else if(d=6&p.post=6) 財(cái) 務(wù)
17、 人 員 p.incomeendl;file.close();coutch;if(ch = n|ch = N)break;while(ch=y|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 p
18、ay,Amount,sell,programe;coutnnnnnn 修改員工信息 endl;coutttt1 技術(shù)經(jīng)理 endl;coutttt2 業(yè)務(wù)經(jīng)理 endl;coutttt3 文 秘 endl;coutttt4 業(yè)務(wù)人員 endl;coutttt5 技術(shù)人員 endl;coutttt6 財(cái)務(wù)人員 endl;coutid;fstream file(company.dat,ios:in|ios:binary);if(file.fail()coutcan not open the file!endl;file.seekg(0,ios:beg); / 把文件指針放在文件的開始while(f
19、ile.read(char *)&p,sizeof(p)p3i=p;if(p3i.num=id)coutpost;coutName;coutendl;switch(post)case 1:p1=new TechniqueManager(id,Name,post,0);pay=(*p1).Pay();p3i=TechniqueManager(id,Name,post,pay); break;case 2:coutsell;coutprograme;coutendl;p1=new BusinessManager(id,Name, post,sell,programe,0);pay=(*p1).Pa
20、y();p3i=BusinessManager(id,Name, post,sell,programe,pay);casebreak;3:p1=newSecretary(id,Name,post,0);pay=(*p1).Pay();p3i=Secretary(id,Name,post,pay);break;case 4:coutsell;coutprograme;coutendl;p1=new Sales(id,Name, post,sell,programe,0);pay=(*p1).Pay();p3i=Sales(id,Name, post,sell,programe,pay); bre
21、ak;case 5:coutAmount;coutendl;p1=new Technician(id,Name,post,Amount,0);pay=(*p1).Pay();p3i=Technician(id,Name,post,Amount,pay);6:p1=newcaseFinancial(id,Name,post,0);pay=(*p1).Pay();p3i=Financial(id,Name,post,pay);break;file.close();ofstream file1(company.dat,ios:out|ios:binary);if(file1.fail()coutca
22、n not open the file!endl;for(j=0;ji;j+) / 把修改后的信息存入文件中file1.write(char *)&p3j,sizeof(p3 j);file1.close();system( cls);void Boss:Delete() / 刪除人員 time_t t = time(0);本年第 %j 天 %z,localtime(&t) );char tmp64;strftime( tmp, sizeof(tmp), %Y/%m/%d %X %Aputs( tmp );int num,i,j=0;Staff p110;Staff p;char ch;doi
23、=0;cout 刪除員工信息coutnum;fstream file(company.dat,ios:in|ios:binary);if(file.fail()coutcan not open the file!endl;while(file.read(char *)&p,sizeof(p)if(p.num=num)switch(p.post)case 1:coutp.nump.incomeendl;break;case 2:coutp.nump.incomeendl;break;case 3:coutp.nump.incomeendl; break;case 4:coutp.nump.inc
24、omeendl;break;case 5:coutp.nump.incomeendl;break;case 6: 技 術(shù) 經(jīng) 理 財(cái) 務(wù) 經(jīng) 理 文 秘 業(yè) 務(wù) 人 員 技 術(shù) 員 財(cái) 務(wù) 人 員 p.incomeendl;break;else/ 輸出文件流類:結(jié)束并返回主菜單 bb;p1i=p;i+;file.close();fstream file1(company.dat,ios:out|ios:binary);if(file1.fail()coutcan not open the fil
25、e!endl;for( j=0;ji;j+)file1.write(char *)&p1j,sizeof(p1 j);file1.close();coutch;if(ch = n|ch = N)break;while(ch=y|ch=Y);system( cls);void Boss:DisPlay() / 顯示人員信息 Staff p;/P 是職員類的對(duì)象cout 編號(hào)| 員工姓名| 級(jí)別 | 工資 | endl;fstream file(company.dat,ios:in|ios:out|ios:binary);if(file.fail()coutcan not open the fil
26、e!endl;while(file.read(char *)(&p),sizeof(p)/ cout 編號(hào) 姓名崗位 工資 endl;switch(p.post)case 1:coutp.numsetw(6)setw(6)技術(shù)經(jīng)理 p.incomeendl;break;case 2:coutp.numsetw(6)setw(6)業(yè)務(wù)經(jīng)理 p.incomeendl; break;case 3:coutp.numsetw(6)setw(6)文秘 p.incomeendl;break;case 4:coutp.numsetw(6)setw(6)業(yè)務(wù)人員 p.incomeendl;break;case 5:coutp.numsetw(6)setw(6)技術(shù)人員 p.incomeendl; break;case6:coutp
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 河邊公園救生員招聘合同
- 員工行為規(guī)范合同
- 信息技術(shù)安全員聘用合同
- 土地使用權(quán)權(quán)益變更協(xié)議書
- 農(nóng)業(yè)機(jī)械租賃終止合同
- 醫(yī)藥研發(fā)機(jī)構(gòu)藥師聘用協(xié)議
- 設(shè)計(jì)委托合同范本思考
- 設(shè)計(jì)公司創(chuàng)意總監(jiān)招聘合同
- 商場(chǎng)裝修專用升降機(jī)租賃服務(wù)協(xié)議
- 商場(chǎng)店鋪?zhàn)赓U合同
- Q∕GDW 1480-2015 分布式電源接入電網(wǎng)技術(shù)規(guī)定
- 知識(shí)圖譜智慧樹知到期末考試答案章節(jié)答案2024年浙江大學(xué)
- 2024年長(zhǎng)春醫(yī)學(xué)高等專科學(xué)校單招職業(yè)技能測(cè)試題庫及答案解析
- 廚房設(shè)備備品備件、標(biāo)準(zhǔn)件及易損件清單
- DB11/T 147-2015-檢查井蓋結(jié)構(gòu)、安全技術(shù)規(guī)范
- 室內(nèi)移動(dòng)腳手架施工方案及流程
- DB32-T 4111-2021 預(yù)應(yīng)力混凝土實(shí)心方樁基礎(chǔ)技術(shù)規(guī)程
- 慢性腎臟病5期
- 鐵血將軍、建軍元?jiǎng)?葉挺 (1)講解
- 2024年上海奉賢區(qū)高三年級(jí)上冊(cè)期末高考與等級(jí)考一模歷史試卷含答案
- 法律盡職調(diào)查服務(wù)方案
評(píng)論
0/150
提交評(píng)論