![哈爾濱工業(yè)大學(xué)計算機(jī)軟件技術(shù)基礎(chǔ)_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/23/d3462875-f0b8-40aa-b195-c0c146e6176b/d3462875-f0b8-40aa-b195-c0c146e6176b1.gif)
![哈爾濱工業(yè)大學(xué)計算機(jī)軟件技術(shù)基礎(chǔ)_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/23/d3462875-f0b8-40aa-b195-c0c146e6176b/d3462875-f0b8-40aa-b195-c0c146e6176b2.gif)
![哈爾濱工業(yè)大學(xué)計算機(jī)軟件技術(shù)基礎(chǔ)_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/23/d3462875-f0b8-40aa-b195-c0c146e6176b/d3462875-f0b8-40aa-b195-c0c146e6176b3.gif)
![哈爾濱工業(yè)大學(xué)計算機(jī)軟件技術(shù)基礎(chǔ)_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/23/d3462875-f0b8-40aa-b195-c0c146e6176b/d3462875-f0b8-40aa-b195-c0c146e6176b4.gif)
![哈爾濱工業(yè)大學(xué)計算機(jī)軟件技術(shù)基礎(chǔ)_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/23/d3462875-f0b8-40aa-b195-c0c146e6176b/d3462875-f0b8-40aa-b195-c0c146e6176b5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、計算機(jī)軟件技術(shù)基礎(chǔ)實驗報告班號: 學(xué)號: : 設(shè)計說明員工具有一個成員函數(shù)來計算薪水Ø ComputerPay()員工具有數(shù)據(jù)成員Ø 雇員號ØØ 銀行賬號從員工類派生三個類,經(jīng)理,底薪職員,銷售職員;分別實現(xiàn)派生類的構(gòu)造函數(shù)、析構(gòu)函數(shù)和其他方法Ø 經(jīng)理的薪水是按月固定發(fā)放;Ø 底薪職員薪水是按工作小時數(shù)*每小時工資標(biāo)準(zhǔn);Ø 銷售職員的薪水是底薪+銷售額提成30%;Ø 具體標(biāo)準(zhǔn)可自行定義;創(chuàng)建員工的指針數(shù)組,并初始化這些指針指向不同的派生對象,并通過對指針數(shù)組的循環(huán)遍歷,來實現(xiàn)對各種對象的基本信息以及薪水的輸出使用介
2、紹打開程序后,選擇運行文件,根據(jù)彈出屏幕的選擇進(jìn)行操作。有5個選擇可供使用者選擇。選擇1,即計算原有員工工資選項后,需要再根據(jù)屏幕提示輸入工作總時間,每小時工資和銷售總金額,從而得到原有員工的工資。選擇2,即從屏幕中讀取員工信息并計算工資,需要根據(jù)屏幕選項選擇員工類型。1為經(jīng)理,2為底薪人員,3為銷售人員,4為退出,當(dāng)輸入其他數(shù)字時則要求重新選擇一次。選擇經(jīng)理填入信息中有是否設(shè)定工資的選項,選擇是則自行輸入工資,否則按默認(rèn)工資8000處理。選4退出后回到主選擇頁面。選擇3,即從文件中讀取信息并計算工資。當(dāng)三個操作都進(jìn)行完時(或者進(jìn)行其中的某一項或者兩項后),可選擇4將信息輸出,信息輸出按原有員
3、工、輸入員工、文件讀入員工三部分來輸出。選擇5后退出整個程序。源代碼一、主函數(shù)1、main.cpp/要加入頭文件#include <iostream>#include <fstream>#include <string>using namespace std;/指定命名空間/自己定義的類,使用時要加入頭文件#include "Employee.h"#include "Manager.h"#include "Wage.h"#include "Csale.h"int main()/定
4、義變量int i,c1,c2,x,c3;int j=0,h=0,k=0,a=1,b=1,y=0,m=0,n=0;float hrs,wg,sale;int nm=0, nw=0, ns=0;char name30;long no;char bankno30;CManager manager20;CWage wage20;CSale Sale20;CManager fmanager20; /文件輸入部分變量CWage fwage20;CSale fSale20;char ch20;long no0;int l=0,s,t=0,l1=0,l2=0,l3=0,xf;float sa0,hrs0,wg
5、0;CEmployee * pfEmployee60;CEmployee * pEmployeexin60; /定義新加入人員的指針數(shù)組/原有人員信息CManager aManager("三",100001,"A123456789");CWage aWage("四",100002,"B123456789");CSale aCSale("王五",100003,"C123456789");while(a=1)/選擇執(zhí)行項目cout<<"選擇執(zhí)行項目:&quo
6、t;<<endl;cout<<"1、計算原有員工的工資"<<endl;cout<<"2、計算從屏幕中新輸入員工的工資"<<endl;cout<<"3、文件中讀取員工信息并計算工資"<<endl;cout<<"4、信息以文件形式輸出"<<endl;cout<<"5、退出"<<endl;cin>>c1;if(c1=1)/計算原有員工薪水/從屏幕讀取數(shù)據(jù)cou
7、t<<"請輸入數(shù)據(jù),各個數(shù)據(jù)以回車為界"<<endl;cout<<"工作總時間:"cin>>hrs;cout<<"每小時工資: "cin>>wg;cout<<"銷售總金額:"cin>>sale;aWage.setHours(hrs);aWage.setWage(wg);aCSale.setHours(hrs);aCSale.setWage(wg);aCSale.setSale(sale);m=1;if(c1=2)/輸入新
8、員工信息并計算工資n=1;while(j<20&&h<20&&k<20&&b=1)cout<<"選擇員工類型"<<endl;/選擇員工類型cout<<"1、經(jīng)理 2、底薪人員 3、銷售人員 4、退出"<<endl;cin>>c2;switch(c2)case 1:cout<<"請輸入數(shù)據(jù),各個數(shù)據(jù)以回車為界"<<endl;cout<<""cin>&g
9、t;name;cout<<"編號"cin>>no;cout<<"銀行賬號"cin>>bankno; /讀入經(jīng)理信息/存儲經(jīng)理信息managerj.setName(name);managerj.setbankNo(bankno);managerj.setNo(no);/選擇是否設(shè)定工資cout<<"是否設(shè)定工資?(默認(rèn)為基本工資8000)"<<endl;cout<<"1、是 2、否"<<endl;cin>>c3
10、;if(c3=1)/設(shè)定經(jīng)理工資float salary;cout<<"設(shè)定工資"cin>>salary;managerj.setSalary(salary);if(c3=2)managerj.setSalary(8000);cout<<"工資:"cout<<managerj.ComputerPay(); /計算并輸出經(jīng)理工資pEmployeexiny=&managerj;j+;break;case 2:cout<<"請輸入數(shù)據(jù),各個數(shù)據(jù)以回車為界"<<e
11、ndl;cout<<""cin>>name;cout<<"編號"cin>>no;cout<<"銀行賬號"cin>>bankno;cout<<"工作總時間"cin>>hrs;cout<<"每小時工資"cin>>wg; /讀入底薪人員信息wageh.setName(name);wageh.setbankNo(bankno);wageh.setNo(no);wageh.setHour
12、s(hrs);wageh.setWage(wg); /存儲底薪人員信息cout<<"工資:"cout<<wageh.ComputerPay();pEmployeexiny=&wageh;h+;break;case 3:cout<<"請輸入數(shù)據(jù),各個數(shù)據(jù)以回車為界"<<endl;cout<<""cin>>name;cout<<"編號"cin>>no;cout<<"銀行賬號"cin&g
13、t;>bankno;cout<<"工作總時間"cin>>hrs;cout<<"每小時工資"cin>>wg;cout<<"銷售總金額"cin>>sale; /讀入銷售人員信息Salek.setName(name);Salek.setbankNo(bankno);Salek.setNo(no);Salek.setHours(hrs);Salek.setWage(wg);Salek.setSale(sale); /存儲銷售人員信息cout<<"
14、;工資:"<<endl;cout<<Salek.ComputerPay();pEmployeexiny=&Salek;k+;break;case 4:b=0;break;default:cout<<"輸入錯誤"<<endl;y+;if(c1=3) /從文件中讀取員工信息ifstream infile("CEmployee information.txt");if(!infile)cout<<"沒有該文件"return 0;elset=1;while(!inf
15、ile.eof() /在文件信息被全部讀完前讀取文件中的信息infile>>s; switch (s) /判斷員工所屬職位,填入相應(yīng)的數(shù)組case 1: /從文件中讀入經(jīng)理信息infile>>no0;fmanagerl1.setNo(no0);infile>>ch;fmanagerl1.setName(ch);infile>>ch;fmanagerl1.setbankNo(ch);infile>>sa0;fmanagerl1.setSalary(sa0);pfEmployeel=&fmanagerl1;l1+;break;ca
16、se 2: /從文件中讀入底薪人員信息infile>>no0;fwagel2.setNo(no0);infile>>ch;fwagel2.setName(ch);infile>>ch;fwagel2.setbankNo(ch);infile>>hrs0;fwagel2.setHours(hrs0);infile>>wg0;fwagel2.setWage(wg0);pfEmployeel=&fwagel2;l2+;break;case 3: /從文件中讀入銷售人員信息infile>>no0;fSalel3.setNo
17、(no0);infile>>ch;fSalel3.setName(ch);infile>>ch;fSalel3.setbankNo(ch);infile>>hrs0;fSalel3.setHours(hrs0);infile>>wg0;fSalel3.setWage(wg0);infile>>sa0;fSalel3.setSale(sa0);pfEmployeel=&fSalel3;l3+;break;default:break;l+;infile.close();if(c1=4) /以文件形式輸出信息/建立指向原有員工信息的
18、指針CEmployee * pEmployee = &aManager, &aWage, &aCSale; ofstream file("CEmployeepay.txt");if(!file) /判斷是否能打開文件cerr<<"open error!"<<endl;return 0;elsefile<<"&&&員工信息及其工資&&&"<<endl;/輸出原有的員工信息與工資file<<"原紀(jì)錄
19、員工部分"<<endl;switch(m) /判斷是否進(jìn)行原有員工工資的計算,有則輸出信息case 1:for(i=0;i<3;i+)file<<"編 號:"<<pEmployeei->getNo()<<endl;file<<"姓 名:"<<pEmployeei->getName()<<endl;file<<"銀行賬號:"<<pEmployeei->getBankNo()<<endl
20、;file<<"工 資: "<<pEmployeei->ComputerPay()<<endl;file<<"*"<<endl;file<<endl;break;default:file<<"沒有進(jìn)行原記錄員工工資的計算"<<endl;file<<endl;file<<endl;file<<"新輸入員工部分"<<endl; /輸出新員工的信息與工資y=y-1;swit
21、ch(n) /判斷是否輸入新員工信息,有則輸出信息case 1:for(x=0;x<y;x+)file<<"編 號: "<<pEmployeexinx->getNo()<<endl;file<<"姓 名:"<<pEmployeexinx->getName()<<endl;file<<"銀行賬號:"<<pEmployeexinx->getBankNo()<<endl;file<<"工
22、資:<<pEmployeexinx->ComputerPay()<<endl;file<<"*"<<endl;file<<endl;break;default:file<<"沒有新輸入的員工信息"<<endl;file<<endl;file<<endl;file<<"文件輸入員工部分:"<<endl;switch(t) /判斷是否輸入新員工信息,有則輸出信息l=l-1;case 1:for(xf=0
23、;xf<l;xf+)file<<"編 號:"<<pfEmployeexf->getNo()<<endl;file<<"姓 名:"<<pfEmployeexf->getName()<<endl;file<<"銀行賬號:"<<pfEmployeexf->getBankNo()<<endl;file<<"工 資:"<<pfEmployeexf->Computer
24、Pay()<<endl;file<<"*"<<endl;file<<endl;break;default:file<<"沒有新輸入的員工信息"<<endl;file<<endl;file.close(); /關(guān)閉文件if(c1=5)a=0;二、員工類1、Employee.h#pragma onceclass CEmployeepublic: CEmployee(void);/構(gòu)造函數(shù) virtual CEmployee(void);/析構(gòu)函數(shù)private: char m
25、_name30;/一般的類變量 long m_no; char m_bankNo20;public: /帶參數(shù)的構(gòu)造函數(shù),為了防止更改,可加const CEmployee(const char * nm, const long no, const char * bankNo); long getNo(void); char * getName(void); char * getBankNo(void); /需要被重載的函數(shù)virtual float ComputerPay(void);void setName(char * name);void setNo(long no);void setb
26、ankNo(char * bankno);2、Employee.cpp#include "Employee.h"#include <string> /處理字符串的頭文件CEmployee:CEmployee(void)CEmployee:CEmployee(void)/.h文件中的聲明應(yīng)該與.cpp源文件中的聲明函數(shù)類型一致CEmployee:CEmployee(const char * nm, const long no, const char * bankNo) /要進(jìn)行參數(shù)的賦值工作,也就是把參數(shù)帶進(jìn)來 /初始化 memset(m_name,0,30);
27、memset(m_bankNo,0,20); /賦值操作 strcpy(m_name,nm); m_no=no; strncpy(m_bankNo,bankNo,19);long CEmployee:getNo(void) /get函數(shù),得到編號信息 return m_no;char * CEmployee:getName(void) /get函數(shù),得到名字信息 return m_name;char * CEmployee:getBankNo(void) /get函數(shù),得到銀行賬號信息 return m_bankNo;float CEmployee:ComputerPay(void) retu
28、rn 0;void CEmployee:setName(char * name) /set函數(shù),將name中的名字信息賦值到m_name中strcpy(m_name,name);void CEmployee:setNo(long no)m_no=no;void CEmployee:setbankNo(char * bankno)strncpy(m_bankNo,bankno,19);三、經(jīng)理類1、Manager.h#pragma once#include "Employee.h"/添加類的時候,應(yīng)添加繼承關(guān)系,否則帶參數(shù)的繼承函數(shù)無法實現(xiàn)class CManager : p
29、ublic CEmployeepublic: CManager(void); virtual CManager(void);CManager(const char *nm, const long no, const char * bankNo);private:float m_salary;/經(jīng)理的工資public:void setSalary(float salary);float ComputerPay(void);2、Manager.cpp#include "Manager.h"#include "Employee.h"CManager:CMana
30、ger(void): m_salary(0)CManager:CManager(void)/帶參數(shù)的構(gòu)造函數(shù),要繼承CEmployee的帶參數(shù)的構(gòu)造函數(shù)/直接完成賦初值,并設(shè)定經(jīng)理的薪水CManager:CManager(const char *nm, const long no, const char * bankNo):CEmployee(nm,no,bankNo)m_salary = 8000;/為了從外部可以進(jìn)行員工設(shè)定,跟get函數(shù)類似void CManager:setSalary(float salary)m_salary = salary;float CManager:Compu
31、terPay(void)return m_salary;四、底薪人員類1、Wage.h#pragma once#include "employee.h"/繼承CEmployeeclass CWage :public CEmployeepublic:CWage(void);virtual CWage(void);private:float m_hours;float m_wage;public:void setHours(float hrs);void setWage(float wg);float ComputerPay(void);CWage(const char * nm, const long no, const char * bankNo);CWage(float hrs, float wg);2、Wage.cpp#include "Wage.h"CWage:CWage(void)CWage:CWage(void)void CWage:setHours(float hrs)m_hours = hrs; /設(shè)置工作時間void 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 哈爾濱體育學(xué)院《社區(qū)建設(shè)理論與實務(wù)》2023-2024學(xué)年第二學(xué)期期末試卷
- Arjungenin-Standard-生命科學(xué)試劑-MCE
- 個人房產(chǎn)使用權(quán)租賃協(xié)議書范本
- 承德醫(yī)學(xué)院《針灸學(xué)技能實訓(xùn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 房屋續(xù)約租賃服務(wù)合同范本
- 委托加工生產(chǎn)戰(zhàn)略合作協(xié)議書范本
- 商品混凝土技術(shù)合同范本
- 西北民族大學(xué)《仿真設(shè)計》2023-2024學(xué)年第二學(xué)期期末試卷
- 遼寧特殊教育師范高等??茖W(xué)?!吨行W(xué)音樂教材教法》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025年普魯本辛項目可行性研究報告
- 甲基乙基酮2-丁酮MSDS危險化學(xué)品安全技術(shù)說明書
- 腰椎間盤突出癥(腰痹病)中醫(yī)臨床路徑
- 教學(xué)團(tuán)隊建設(shè)總結(jié)報告
- 裝飾施工進(jìn)度計劃網(wǎng)絡(luò)圖及橫道圖
- 【大學(xué)】擠出管材(P64)ppt課件
- 實木電腦桌書桌安裝圖
- 大學(xué)物理課后習(xí)題答案北京郵電大學(xué)出版社
- 俱樂部經(jīng)營俱樂部經(jīng)營
- 暗黑破壞神2所有綠色套裝(大圖)
- 檢驗和試驗計劃(范文)11頁
- 火炬氣回收設(shè)施設(shè)計
評論
0/150
提交評論