




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、employee.hemployee(員工)的類聲明頭文件employee.cpp包含employee類的實現(xiàn)代碼Salesman.hSalesman(售貨員)的類聲明頭文件Salesman.cpp包含Salesman類的實現(xiàn)代碼Warehouseman.hwarehouseman(庫管員)的類聲明頭文件Warehouseman.cpp包含Warehouseman類的實現(xiàn)代碼manager.hmanager (經(jīng)理)的類聲明頭文件manager.cpp包含manager類的實現(xiàn)代碼EmployeeList.hEmployeeList類(員工鏈表)的類聲明頭文件EmployeeList.cpp包
2、含EmployeeList類的實現(xiàn)代碼main.cpp主程序/*/ employee.h */*#ifndef H_EMPLOYEE#define H_EMPLOYEEclass employee /基類(員工)private:int number;/員工編號charAddress100;/家庭地址protected:char name30;/員工姓名float fixedSalary;/固定工資float MonthSalary;/月薪public:employee();/構(gòu)造函數(shù),錄入員工個人信息void ShowInfor();/顯示員工個人及工資信息void RecordInfor(c
3、har* pInfBuffer);/將個人信息寫入緩沖區(qū)/獲得工作類別virtualchar * GetWorkStyle() = 0 ;/計算員工工資的虛函數(shù),因為只提供一個統(tǒng)一的接口,所以不需要添加任何實際的代碼virtual void CountSalary()=0;#endif/*/ employee.cpp */*#include "employee.h"#include "iostream.h"#include "stdio.h"/構(gòu)造函數(shù),錄入員工個人信息employee:employee()cout<<en
4、dl;/錄入員工姓名cout<< "請輸入員工姓名:"cin>>name;/錄入員工編號cout<<"請輸入員工編號(1000-9999):"cin >>number;/檢查員工編號,保證編號正確while ( number<1000 | number>9999 ) cout << endl << "員工編號應(yīng)為四位整數(shù),請重新輸入:"cin >> number;/錄入家庭地址cout<<"請輸入家庭地址:"
5、cin >>Address;/默認(rèn)初始月薪為零MonthSalary = 0.0;/顯示員工個人及工資信息void employee:ShowInfor()cout<<endl;/顯示員工姓名cout<<"員工姓名: "<<name<<endl;/顯示員工編號cout<<"員工編號: "<<number<<endl;/顯示家庭地址cout<<"家庭地址: "<<Address<<endl;/顯示工作類別c
6、out<<"工作類別: "<<GetWorkStyle()<<endl;/顯示月薪if (MonthSalary = 0.0) cout<<"月薪: 尚未計算"<<endl;elsecout<<"月薪: "<<MonthSalary<<endl;/將個人信息寫入緩沖區(qū)void employee:RecordInfor(char* pInfBuffer)intj;j = sprintf(pInfBuffer , "員工姓名:%srn
7、",name);j += sprintf(pInfBuffer + j,"員工編號:%drn",number);j += sprintf(pInfBuffer + j,"家庭地址:%srn",Address);j += sprintf(pInfBuffer + j,"工作類別:%srn",GetWorkStyle();if (MonthSalary = 0.0) j += sprintf(pInfBuffer + j,"月薪: 尚未計算rnrn");elsej += sprintf(pInfBuffer
8、+ j,"月薪: %frnrn",MonthSalary);/*/ Salesman.h */*#ifndef H_SALESMAN#define H_SALESMAN#include "employee.h"/售貨員類class Salesman : publicemployeeprivate:float saleSum;/售貨員的銷售額float getRate; /售貨員的提成比率public:Salesman();/構(gòu)造函數(shù),錄入售貨員個人信息char* GetWorkStyle();/獲得工作類別void CountSalary();/計算售貨
9、員的工資;#endif/*/ Salesman.cpp */*#include "Salesman.h"#include "iostream.h"/構(gòu)造函數(shù),錄入售貨員個人信息Salesman:Salesman()cout<<endl;/錄入售貨員的固定月薪cout<< "請輸入售貨員的固定月薪:"cin>>fixedSalary;/錄入售貨員的當(dāng)月銷售額cout<<"請輸入售貨員的提成比率"cin >>getRate;/獲得工作類別char * Sale
10、sman:GetWorkStyle()return "售貨員"/計算售貨員的工資void Salesman:CountSalary()/得到售貨員的當(dāng)月銷售額cout<<"請輸入售貨員"<<name<<"的當(dāng)月銷售額"<<endl;cin >>saleSum;/工資固定工資營業(yè)額×提成比率MonthSalary = fixedSalary + saleSum * getRate;/*/ warehouseman.h */*#ifndef H_WAREHOUSEMAN
11、#define H_WAREHOUSEMAN#include "employee.h"/庫管員類class Warehouseman : publicemployeeprivate:float bonus;/庫管員的獎金public:Warehouseman();/構(gòu)造函數(shù),錄入庫管員個人信息char * GetWorkStyle();/獲得工作類別void CountSalary();/計算庫管員的工資;#endif/*/ warehouseman.cpp */*#include "Warehouseman.h"#include "iostr
12、eam.h"/構(gòu)造函數(shù),錄入庫管員個人信息Warehouseman:Warehouseman()cout<<endl;/錄入庫管員的固定月薪cout<< "請輸入庫管員的固定月薪:"cin>>fixedSalary;/獲得工作類別char * Warehouseman:GetWorkStyle()return "庫管員"/計算庫管員的工資void Warehouseman:CountSalary()/得到庫管員的當(dāng)月獎金cout<<"請輸入庫管員"<<name<
13、;<"的當(dāng)月獎金"<<endl;cin >>bonus;/工資固定工資當(dāng)月獎金MonthSalary = fixedSalary + bonus;/*/ Manager.h */*#ifndef H_MANAGER#define H_MANAGER#include "Employee.h"/經(jīng)理類class Manager : publicEmployeeprivate:float OfficeExpense;/經(jīng)理的辦公費(fèi)用public:Manager();/構(gòu)造函數(shù),錄入經(jīng)理個人信息char * GetWorkStyle
14、();/獲得工作類別void CountSalary();/計算經(jīng)理的工資;#endif/*/ Manager.cpp */*#include "Manager.h"#include "iostream.h"/構(gòu)造函數(shù),錄入經(jīng)理個人信息Manager:Manager()cout<<endl;/錄入經(jīng)理的固定月薪cout<< "請輸入經(jīng)理的固定月薪:"<<endl;cin>>fixedSalary;/獲得工作類別char * Manager:GetWorkStyle()return &qu
15、ot;經(jīng)理"/計算經(jīng)理的工資void Manager:CountSalary()/得到經(jīng)理的當(dāng)月辦公費(fèi)用cout<<"請輸入經(jīng)理"<<name<<"的當(dāng)月辦公費(fèi)用"<<endl;cin >>OfficeExpense;/月薪固定工資當(dāng)月辦公費(fèi)用MonthSalary = fixedSalary + OfficeExpense;/*/ EmployeeList.h */*#ifndef H_EMPLOYEELIST#define H_EMPLOYEELIST#include "
16、employee.h"#defineNULL0/定義一個包含員工類對象的節(jié)點結(jié)構(gòu)struct employeeNodeemployee* pEmployee;employeeNode* pNext;class EmployeeListprivate:employeeNode* pEmpListRoot;/員工類對象的鏈表的根指針public:EmployeeList();/析構(gòu)函數(shù)EmployeeList();/將一個包含員工類對象的節(jié)點添加到鏈表中voidAddList(employee*pEmployee);/計算所有員工的月薪voidCaculateAllSalary();/顯
17、示所有員工的詳細(xì)信息voidShowAllInfo();/將所有員工的詳細(xì)信息保存到紀(jì)錄文件上voidSaveAllRecord();#endif/*/ EmployeeList.cpp */*#include "EmployeeList.h"#include "iostream.h"#include "fstream.h"#include "stdio.h"#include "string.h"EmployeeList:EmployeeList()pEmpListRoot = NULL;/將一
18、個包含員工類對象的節(jié)點添加到鏈表中voidEmployeeList:AddList(employee*pEmployee)employeeNode* pEmpNode;pEmpNode = newemployeeNode();pEmpNode->pEmployee = pEmployee;pEmpNode->pNext = pEmpListRoot;pEmpListRoot = pEmpNode;/計算所有員工的月薪voidEmployeeList:CaculateAllSalary()employeeNode*pTempNode;/計算員工鏈表中所有員工的月薪pTempNode
19、= pEmpListRoot;while (pTempNode) pTempNode->pEmployee->CountSalary();pTempNode = pTempNode->pNext;/顯示所有員工的詳細(xì)信息voidEmployeeList:ShowAllInfo()employeeNode* pTempNode;/顯示員工鏈表中所有員工的信息cout<<"所有員工的個人信息如下:"<<endl;pTempNode = pEmpListRoot;while (pTempNode)pTempNode->pEmploy
20、ee->ShowInfor();pTempNode = pTempNode->pNext;/將所有員工的詳細(xì)信息保存到紀(jì)錄文件上voidEmployeeList:SaveAllRecord()ofstreammyFile;charsAllBuffer1000000= 0;charsSingleBuffer1000=0;intj;myFile.open("info.txt",ios:app|ios:binary);if (!myFile) cerr<<"打開記錄文件時出現(xiàn)錯誤!"<<endl;return;employe
21、eNode* pTempNode;/將所有員工的詳細(xì)信息保存到紀(jì)錄文件上pTempNode = pEmpListRoot;while (pTempNode)/保存一個員工信息pTempNode->pEmployee->RecordInfor(sSingleBuffer);/加入到總的字符串緩沖區(qū)中strcat(sAllBuffer,sSingleBuffer);pTempNode = pTempNode->pNext;myFile.write(sAllBuffer,strlen(sAllBuffer);myFile.close();EmployeeList:EmployeeL
22、ist()employeeNode*pTempNode;pTempNode = pEmpListRoot;while (pTempNode) pEmpListRoot = pEmpListRoot->pNext;deletepTempNode->pEmployee;deletepTempNode;pTempNode = pEmpListRoot;/*/ main.cpp */ 主程序 */*#include "stdlib.h"#include "stdio.h"#include "conio.h"#include &qu
23、ot;employee.h"#include "Salesman.h"#include "Warehouseman.h"#include "Manager.h"#include "iostream.h"#include "EmployeeList.h"void main()charopr;/操作項EmployeeListEL;employee* pEmployee;cout <<endl<< "=商場員工信息登記系統(tǒng)="<<endl;while (true) /建立循環(huán)操作cout <<endl<< "請選擇操作:"<<endl;cout<<"1.添加一個售貨員"<<endl;cout<<"2.添加一個庫管員"<<endl;cout<<"3.添加一個經(jīng)理"<<endl;cout<<"4.計算所有員工的月薪"<<endl;cout<<&qu
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 IEC 63380-3:2025 EN-FR Standard interface for connecting charging stations to local energy management systems - Part 3 Communication protocol and cybersecurity specific aspe
- 2025年部編版新教材語文小學(xué)三年級上冊第五單元復(fù)習(xí)課教案
- ??谑兄睂傩W(xué)數(shù)學(xué)試卷
- 湖北恩施建始數(shù)學(xué)試卷
- 《網(wǎng)絡(luò)綜合布線》教案 項目3任務(wù)3 綜合布線工程項目的投標(biāo)
- 2021-2026年中國中性硼硅玻璃行業(yè)全景評估及投資規(guī)劃建議報告
- 福建省德化一中、永安一中、漳平一中2025屆物理高二下期末調(diào)研試題含解析
- 水泥沙漿面層工程檢驗批質(zhì)量驗收報告
- 中國高純度勃姆石行業(yè)市場調(diào)查報告
- 2025年中國聚乙烯儲罐行業(yè)市場全景分析及投資前景展望報告
- 腦積水患者治療與護(hù)理
- 民兵訓(xùn)練管理規(guī)定
- 2025永康輔警考試題庫
- 2025UHF無線測溫裝置技術(shù)要求
- 幼兒園玩教具裝備采購 投標(biāo)方案(技術(shù)標(biāo))
- DBJT 13-309-2019非開挖頂管技術(shù)規(guī)程
- DBJ50-T-157-2022房屋建筑和市政基礎(chǔ)設(shè)施工程施工現(xiàn)場從業(yè)人員配備標(biāo)準(zhǔn)
- 《質(zhì)量管理體系成熟度評價指南》
- 教師違反師德的典型案例分析
- 《水利水電工程隧洞超前地質(zhì)預(yù)報規(guī)程》
- 轉(zhuǎn)崗建工作簡歷模板
評論
0/150
提交評論