C++倉庫管理系統(tǒng)_第1頁
C++倉庫管理系統(tǒng)_第2頁
C++倉庫管理系統(tǒng)_第3頁
C++倉庫管理系統(tǒng)_第4頁
C++倉庫管理系統(tǒng)_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論