公司職員信息管理系統(tǒng)_第1頁(yè)
公司職員信息管理系統(tǒng)_第2頁(yè)
公司職員信息管理系統(tǒng)_第3頁(yè)
公司職員信息管理系統(tǒng)_第4頁(yè)
公司職員信息管理系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩6頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

#iiiclude<iostreain.h>#iiiclude<fstieam.h>#iiicludevctype.h>#iiiclude<string.h>〃全局?jǐn)?shù)據(jù),對(duì)象doubleManagerSalary;〃經(jīng)理固定月薪doubleSalesManageiSalai-y;〃銷仍經(jīng)理固定月薪doubleSalesManagerPeicent;〃銷估:經(jīng)理提成%doubleSalesPercent;〃銷傳人員提成%doubleWagePerHour;〃技術(shù)人員小時(shí)工資intID;〃員工標(biāo)識(shí)(要保證唯一)classPerson〃員工類{protected:intNo;〃編號(hào)charName[20];〃姓名hitDuty;〃崗位doubleEarning;〃收入Person*next;public:Person(chai-ID,char*Name,iiitDuty){this->Duty=Duty;sticpy(tlus->Naiiie,Name);this->No=ID;}viitualvoidCalcSalary()=O;viitualvoidOutput()=0;friendclassCompany;};classManager:publicPerson〃經(jīng)理類{public:Manager(charID,char*Name,iiitDuty):Person(ID.Naiiie,Duty)()voidCalcSalafyO(Eanung=ManagerSalaiy;)voidOutputQ{CalcSalaiyQ;cout?No?M\tM?Name?n\t經(jīng)理\tn?EanHiig?endl;}};classSalesManager:publicPerson//銷傳經(jīng)理類private:doubleAmount;public:SalesMaiiager(charID,char*Name,intDuty):Person(ID,Name.Duty)()voidSetAinount(doubles){Amount=s;}voidCalcSalaiyQ{Eaniing=SalesMaiiagerSalaiy+Ainount*SalesManageiPeicentz100;}voidOutputQ{CalcSalaiyQ;cout?No?n\tM?Name?H\t銷傳經(jīng)理\tH?Eaiimig?endl;}};classTechnicianpublicPerson〃技術(shù)員類{private:doublet;public:Teclinician(charID,char*Name,mtDuty,doubleT):Peison(ID,Name.Duty){this->t=T;}doubleGetT(){returnt;}voidSetT(doubleT){this->t=T;}voidCalcSalaiyQ{Eaniing=WagePerHoiu*t;}voidOutputQCalcSalaiyQ;cout?No?n\tM?Name?,l\t技木員\tH?t?H\tH?Eaiiuiig?endl;}};classSales:publicPerson〃銷傳員類{private:doubleAmount;public:Sales(charID,char*Name,intDuty,doubleAmount):Person(ID,Name,Duty){this->Ainount=Amount;}doubleGetAinountQ{returnAmount;}voidSetAinount(doubleAmount){this->Ainount=Amount;}voidCalcSalaryQ{Eaniing=SalesPeicent/100*Amount;}voidOutputQ{CalcSalaiyQ;cout?No?M\tM?Name?n\t銷傳員\tn<<Amount<<M\tH<<Eaiimig<<eiidl;}};classCompany〃公司類{private:Person*Worker;〃員工表voidCleai();〃清除內(nèi)存中數(shù)據(jù)public:CompanyOWorker=0;LoadQ;}?Company。{Person*p;p=Wdiker;wlule(p){p=p->next;deleteWorker;Wdiker=p;}Worker=0;}voidAdd();〃增加人員voidDeleteQ;〃刪除人員voidModifyO;//修改人員voidQueryQ;〃查詢?nèi)藛TvoidSet();//基礎(chǔ)數(shù)據(jù)設(shè)置voidSave();〃數(shù)據(jù)存盤(pán)(包括基礎(chǔ)數(shù)據(jù),人員數(shù)據(jù))voidLoad();〃數(shù)據(jù)裝入(包括基礎(chǔ)數(shù)據(jù),人員數(shù)據(jù))};voidCompany::Cleai()〃清除內(nèi)存中人員數(shù)據(jù)(內(nèi)部使用){Person*p=Wdrker;wlule(p){Wdiker=p?>next;deletep;p=Wdiker;}}voidCompany::AddQ{Person*p;//新結(jié)點(diǎn)指針hitDuty;charName[20];doubleAmount,T;cout?H\n**新增員工〃輸入員工信息ID++;cout?H輸入崗位(1.經(jīng)理2.銷售經(jīng)理3.銷售員4.技術(shù)員)cin?Duty;cout?H輸入姓名二cm?Name;if(Duty==3)cout?H本月銷傳額二cin?Amount;}elseif(Duty=4){cout?H本月工作小時(shí)數(shù)(0-168):M;cm?T;}//創(chuàng)建新員工結(jié)點(diǎn)switch(Duty){case1:p=newManager(ID,Name,Duty);break;case2:p=newSalesMaiiager(ID,Name,Duty);break;case3:p=newSales(ID,Name.Duty.Ainount);break;case4:p=newTechiucian(ID,Name,Duty;T);break;}p->next=O;〃員工結(jié)點(diǎn)加入鏈表if(Woiker)〃若己經(jīng)存在結(jié)點(diǎn){Person*p2;p2=Worker;while(p2->next)〃查找尾結(jié)點(diǎn){p2=p2->next;}p2->next=p;//連接}else//若不存在結(jié)點(diǎn)(表空){Woikei=p;〃連接}}voidCompany::DeleteQ〃刪除人員{hitNo;cout?"\n**刪除員工cout?"ID:";cin?No;〃查找要?jiǎng)h除的結(jié)點(diǎn)Person*p1,*p2;p1=Worker;{if(pl->No==No)break;else{P2=pl;pl=pl->next;}}//刪除結(jié)點(diǎn)if(pl!=NULL)//若找到結(jié)點(diǎn),則刪除{if(p1==Worker)〃若要?jiǎng)h除的結(jié)點(diǎn)是第一個(gè)結(jié)點(diǎn){Wdikei=pl->next;deletepl;}else〃若要?jiǎng)h除的結(jié)點(diǎn)是后續(xù)結(jié)點(diǎn){p2->next=pl->next;deletepl;}cout?H找到并刪除\n”;}else〃未找到結(jié)點(diǎn)cout?H未找到!\n”;}voidCompany::Modify(){hitNo,Duty;charName[20];doubleAmount,T;cout?"\n**修改員工cout?HID:H;cm?No;〃查找要修改的結(jié)點(diǎn)Person*p1,*p2;p1=Worker;wliile(pl){if(pl->No==No)break;else{P2=pl;pl=pl->next;}}//修改結(jié)點(diǎn)if(pl!=NULL)//若找到結(jié)點(diǎn){pl->Output();cout?”調(diào)整崗位(1-經(jīng)理2-銷售經(jīng)理3-銷售員4-技術(shù)員)二cin?Duty;if(pl->Duty!=Duty)//若崗位發(fā)生變動(dòng){//修改其它數(shù)據(jù)cout?H輸入姓名二cm?Name;if(Duty==3){cout?H本月銷售額二cin?Amount;}elseif(Duty=4){cout?H本月工作小時(shí)數(shù)(0-168):”;cm?T;}//創(chuàng)建新員工結(jié)點(diǎn)Person*p3;switch(Duty){case1:p3=newManager(pl->No,Name,Duty);break;case2:p3=newSalesManager(pl->No,Name.Duty);break;case3:p3=newSales(pl->No,Name,Duty,Amount);break:case4:p3=newTeclinician(pl->No,Name,Duty,T);break;}〃員工結(jié)點(diǎn)替換到鏈表p3->next=pl->next;if(pl==Worker)〃若要替換的結(jié)點(diǎn)是第一個(gè)結(jié)點(diǎn)Wdrker=p3;else〃若要?jiǎng)h除的結(jié)點(diǎn)是后續(xù)結(jié)點(diǎn)p2->next=p3;〃刪除原來(lái)的員工結(jié)點(diǎn)deletepl;}else//若崗位沒(méi)有變動(dòng){cout?H輸入姓名二cm?pl->Name;if(Duty==3){cout?H本月銷侈額:”;cin>>Amount;((Sales*)p1)->SetAinount(Amount);}elseif(Duty=4){cout?H本月工作小時(shí)數(shù)(0-168):H;cm?T;((Teclinician*)pl)->SetT(T);}}cout?H修改成功!\n”;}else//未找到結(jié)點(diǎn)cout?H未找到!\n”;}voidCompany::QueryQ{cout?H\n**查詢?nèi)藛T本月銷傳信息doublesum=0;〃銷傳額總和Person*p=Wdrker;wliile(p){if(p->Duty==3)sum+=((Sales*)p)->GetAmountQ;p=p->next;}p=Wdrker;doublesuni2=0;//工資總和wliile(p)if(p->Duty==2)((SalesMaiiagei-*)p)->SetAinount(sum);p->Output();suin2+=p->Eainiiig;p=p->next;}cout?H本月盈利:"?sum*0.20-suni2?endl;cout?*'(按照20%利潤(rùn)計(jì)算)\n”;}voidCompany::Set(){cout?H\n**設(shè)置基礎(chǔ)數(shù)據(jù)cout?H經(jīng)理固定月薪[H?ManageiSalaiy?H7E]:,r;ciii?MaiiageiSalaiy;cout?H銷侈經(jīng)理固定月薪[M?SalesManagerSalaiy?H H;cm?SalesMaiiageiSalary;cout?H銷售經(jīng)理提成[H?SalesManagerPercent?H%]:u;ciii?SalesMaiiageiPercent;cout?H銷傳人員提成[H?SalesPeicent?H%]:n;ciii?SalesPercent;cout?H技術(shù)人員小時(shí)工資[ll?WagePerHour?,,(元/小時(shí)ciii?WagePerHour;cout?H員工標(biāo)識(shí)[>=u?ID?n]:,r;cm?ID:}voidCompany::Save()//數(shù)據(jù)存盤(pán)(包括基礎(chǔ)數(shù)據(jù),人員數(shù)據(jù)),均采用文本文件{ofstieamfPeison.fBase;charc;cout?"\ii保存人員和基礎(chǔ)數(shù)據(jù),是否繼續(xù)?[Y/N]:";cm?c;if(touppei(c)!=fY,)return;//保存人員編號(hào)、姓名、崗位fPerson.open(Hperson.txtHjos::out);Peison*p=Wdrker;wliile(p){fPerson?p->No?H\tH?p->Name?,l\tn?p->Duty?H\tH;if(p->Duty==3)fPerson?((Sales*)p)->GetAinount()?H\tn;elseif(p->Duty=4)fPerson?((Teclinician*)p)->GetT;fPerson?endl;p=p->next;}fPerson.close();〃保存基礎(chǔ)數(shù)據(jù)fBase.open(Hbase.txf\ios::out);fBase?H經(jīng)理固定月薪\tH?ManagerSalary?endl;fBase?H銷售經(jīng)理固定月薪\tH?SalesManagerSalaiy?endl;fBase?H銷售經(jīng)理提成%\tH?SalesManagerPercent?endl;fBase?H銷售人員提成%\tH?SalesPercent?endl;fBase?H技術(shù)人員小時(shí)工資\tH?WagePeiHour?endl;fBasevvmt”v<IDvvendl;fPerson.close();cout?-\n保存人員和基礎(chǔ)數(shù)據(jù)己經(jīng)完成…邱;}voidCompany::Load()〃數(shù)據(jù)裝入(包括基礎(chǔ)數(shù)據(jù),人員數(shù)據(jù)){//基礎(chǔ)數(shù)據(jù)裝入ifstreamfBase;charbuflSO];〃buf用于保存數(shù)據(jù)文件中的注釋字符串fBase.open(Hbase.txtHjos::in);fBase?buf?ManagerSalaiy;〃經(jīng)理固定月薪fBase?buf?SalesMaiiagerSalaiy;//銷住經(jīng)理固定月薪fBase?buf?SalesMaiiagerPercent;〃銷估:經(jīng)理提成%fBase?buf?SalesPeicent;〃銷傳人員提成%fBase?buf?WagePeiHour;〃技術(shù)人員小時(shí)工資fBase?buf?ID;〃員工標(biāo)識(shí)fBase.close();〃清除內(nèi)存人員數(shù)據(jù)Cleai();//人員數(shù)據(jù)數(shù)據(jù)裝入ifstreamfPeison;Peison*p=Wdrker;mtNo;chaiName[20];mtDuty;doubleAmount,T;fPerson.open(Hpeison.txtnjos::m);〃讀一條記錄fPerson?No?Naine?Duty;if(Duty==3)fPerson?Amount;elseif(Duty=4)fPeison?T;wliile(fPerson.goodQ){//創(chuàng)建員工結(jié)點(diǎn)switch(Duty){case1:p=newManager(No.Name.Duty);break;case2:p=newSalesMaiiagei(No.Name,Duty);break:case3:p=newSales(No,Name,Duty.Ainount);break;case4:p=newT

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論