《C++仓库管理系统3234.docx》由会员分享,可在线阅读,更多相关《C++仓库管理系统3234.docx(20页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、emplloyeee.hhempployyee(员工)的类声声明头文文件emplloyeee.ccpp包含eemplloyeee类的的实现代代码Saleesmaan.hhSallesmman(售货员员)的类类声明头头文件Saleesmaan.ccpp包含SSaleesmaan类的的实现代代码Wareehouusemman.hwarrehoouseemann(库管管员)的的类声明明头文件件Wareehouusemman.cppp包含WWareehouusemman类类的实现现代码manaagerr.hmannageer (经理)的类声声明头文文件manaagerr.cppp包含mmanaager
2、r类的实实现代码码EmplloyeeeLiist.hEmpployyeeLListt类(员员工链表表)的类类声明头头文件EmplloyeeeLiist.cppp包含EEmplloyeeeLiist类类的实现现代码mainn.cppp主程序序/*/ eemplloyeee.hh */*#ifnndeff H_EMPPLOYYEE#deffinee H_EMPPLOYYEEclasss eemplloyeee /基类类(员工工)privvatee:intt nuumbeer;/员员工编号号chaarAdddresss1100;/家家庭地址址prottectted:chaar nnamee300;/
3、员员工姓名名flooat fixxedSSalaary;/固固定工资资flooat MonnthSSalaary;/月月薪publlic:empployyee();/构构造函数数,录入入员工个个人信息息voiid SShowwInffor();/显显示员工工个人及及工资信信息voiid RRecoordIInfoor(ccharr* ppInffBuffferr);/将将个人信信息写入入缓冲区区/获获得工作作类别virrtuaalchaar * GeetWoorkSStylle() = 0 ;/计算算员工工工资的虚虚函数,因因为只提提供一个个统一的的接口,所所以不需需要添加加任何实实际的代代码
4、virrtuaal vvoidd CoounttSallaryy()=0;#enddif/*/ eemplloyeee.ccpp */*#inccludde empployyee.h#inccludde iosstreeam.h#inccludde stddio.h/构造造函数,录录入员工工个人信信息emplloyeee:empployyee()couutenddl;/录录入员工工姓名couutnnamee;/录录入员工工编号couutnummberr;/检检查员工工编号,保保证编号号正确whiile ( nnumbber99999 ) coout enddl nnumbber;/录录入家庭庭
5、地址couutAdddresss;/默默认初始始月薪为为零MonnthSSalaary = 00.0;/显示示员工个个人及工工资信息息voidd emmplooyeee:SShowwInffor()couutenddl;/显显示员工工姓名couut员工工姓名: naameenndl;/显显示员工工编号couut员工工编号: nuumbeerenddl;/显显示家庭庭地址couut家庭庭地址: Adddreessenndl;/显显示工作作类别couut工作作类别: GeetWoorkSStylle()eendll;/显显示月薪薪if (MoonthhSallaryy = 0.0) coutt月薪
6、: 尚未未计算eendll;elssecoout月月薪: MonnthSSalaaryenndl;/将个个人信息息写入缓缓冲区voidd emmplooyeee:RRecoordIInfoor(ccharr* ppInffBuffferr)inttj;j = spprinntf(pInnfBuuffeer , 员员工姓名名:%ssrn,namme);j += sspriintff(pIInfBBufffer + jj,员员工编号号:%ddrn,nummberr);j += sspriintff(pIInfBBufffer + jj,家家庭地址址:%ssrn,Adddresss);j += ss
7、priintff(pIInfBBufffer + jj,工工作类别别:%ssrn,GettWorrkSttylee();if (MoonthhSallaryy = 0.0) j += sprrinttf(ppInffBuffferr + j,月薪: 尚未未计算rnnrn);elssej += sprrinttf(ppInffBuffferr + j,月薪: %ffrnrrn,MoonthhSallaryy);/*/ SSaleesmaan.hh */*#ifnndeff H_SALLESMMAN#deffinee H_SALLESMMAN#inccludde empployyee.h/售货货员
8、类classs SSaleesmaan : puubliicempployyeeprivvatee:flooat salleSuum;/售售货员的的销售额额flooat gettRatte; /售售货员的的提成比比率publlic:Sallesmman();/构构造函数数,录入入售货员员个人信信息chaar* GGetWWorkkStyyle();/获获得工作作类别voiid CCounntSaalarry();/计计算售货货员的工工资;#enddif/*/ SSaleesmaan.ccpp */*#inccludde Sallesmman.h#inccludde iosstreeam.h/构
9、造造函数,录录入售货货员个人人信息Saleesmaan:Sallesmman()couutenddl;/录录入售货货员的固固定月薪薪couutffixeedSaalarry;/录录入售货货员的当当月销售售额couutgettRatte;/获得得工作类类别charr * Sallesmman:GeetWoorkSStylle()retturnn 售售货员;/计算算售货员员的工资资voidd Saalessmann:CCounntSaalarry()/得得到售货货员的当当月销售售额couut请输输入售货货员naame的的当月销销售额salleSuum;/工工资固固定工资资营业业额提成比比率Monn
10、thSSalaary = ffixeedSaalarry + saaleSSum * ggetRRatee;/*/ wwareehouusemman.h */*#ifnndeff H_WARREHOOUSEEMANN#deffinee H_WARREHOOUSEEMANN#inccludde empployyee.h/库管管员类classs WWareehouusemman : ppubllicempployyeeprivvatee:flooat bonnus;/库库管员的的奖金publlic:Warrehoouseemann();/构构造函数数,录入入库管员员个人信信息chaar * Gee
11、tWoorkSStylle();/获获得工作作类别voiid CCounntSaalarry();/计计算库管管员的工工资;#enddif/*/ wwareehouusemman.cppp */*#inccludde Warrehoouseemann.h#inccludde iosstreeam.h/构造造函数,录录入库管管员个人人信息Wareehouusemman:Waarehhoussemaan()cooutenndl;/录录入库管管员的固固定月薪薪couutffixeedSaalarry;/获得得工作类类别charr * Warrehoouseemann:GGetWWorkkStyyle
12、()retturnn 库库管员;/计算算库管员员的工资资voidd Waarehhoussemaan:CouuntSSalaary()/得得到库管管员的当当月奖金金couut请输输入库管管员naame的的当月奖奖金bonnus;/工工资固固定工资资当月月奖金MonnthSSalaary = ffixeedSaalarry + boonuss;/*/ MManaagerr.h */*#ifnndeff H_MANNAGEER#deffinee H_MANNAGEER#inccludde Empployyee.h/经理理类classs MManaagerr : pubbliccEmpployyee
13、privvatee:flooat OffficeeExppensse;/经理理的办公公费用publlic:Mannageer();/构构造函数数,录入入经理个个人信息息chaar * GeetWoorkSStylle();/获获得工作作类别voiid CCounntSaalarry();/计计算经理理的工资资;#enddif/*/ Maanagger.cppp */*#inccludde Mannageer.hh#inccludde iosstreeam.h/构造造函数,录入经经理个人人信息Manaagerr:MManaagerr()couutenddl;/录录入经理理的固定定月薪couut
14、请请输入经经理的固固定月薪薪:ffixeedSaalarry;/获得得工作类类别charr * Mannageer:GettWorrkSttylee()retturnn 经经理;/计算算经理的的工资voidd Maanagger:CoounttSallaryy()/得得到经理理的当月月办公费费用couut请输输入经理理namme的当当月办公公费用OffficeeExppensse;/月月薪固固定工资资当月月办公费费用MonnthSSalaary = ffixeedSaalarry + OffficceExxpennse;/*/ EmmplooyeeeLisst.hh */*#ifnndeff
15、H_EMPPLOYYEELLISTT#deffinee H_EMPPLOYYEELLISTT#inccludde empployyee.h#deffineeNULLL0/定义义一个包包含员工工类对象象的节点点结构struuct empployyeeNNodeeempployyee* ppEmpployyee;empployyeeNNodee* ppNexxt;classs EEmplloyeeeLiistprivvatee:empployyeeNNodee* ppEmppLisstRooot;/员员工类对对象的链链表的根根指针publlic:EmpployyeeLListt();/析析构函数数
16、EmmplooyeeeLisst();/将将一个包包含员工工类对象象的节点点添加到到链表中中voiidAdddLisst(eemplloyeee*pEmmplooyeee);/计计算所有有员工的的月薪voiidCacculaateAAllSSalaary();/显显示所有有员工的的详细信信息voiidShoowAlllInnfo();/将将所有员员工的详详细信息息保存到到纪录文文件上voiidSavveAlllReecorrd();#enddif/*/ EmmplooyeeeLisst.ccpp */*#inccludde EmpployyeeLListt.h#inccludde iosstr
17、eeam.h#inccludde fsttreaam.hh#inccludde stddio.h#inccludde strringg.hEmplloyeeeLiist:EmmplooyeeeLisst()pEmmpLiistRRoott = NULLL;/将一一个包含含员工类类对象的的节点添添加到链链表中voiddEmpployyeeLListt:AAddLListt(emmplooyeee*pEmmplooyeee)empployyeeNNodee* ppEmppNodde;pEmmpNoode = nnewempployyeeNNodee();pEmmpNoode-pEEmplloyee
18、e = pEEmplloyeee;pEmmpNoode-pNNextt = pEmmpLiistRRoott;pEmmpLiistRRoott = pEmmpNoode;/计算算所有员员工的月月薪voiddEmpployyeeLListt:CCacuulatteAlllSaalarry()empployyeeNNodee*pTeempNNodee;/计计算员工工链表中中所有员员工的月月薪pTeempNNodee = pEmmpLiistRRoott;whiile (pTTemppNodde) pTTemppNodde-pEmmplooyeee-CCounntSaalarry();pTTempp
19、Nodde = pTTemppNodde-pNeext;/显示示所有员员工的详详细信息息voiddEmpployyeeLListt:SShowwAlllInffo()empployyeeNNodee* ppTemmpNoode;/显显示员工工链表中中所有员员工的信信息couut所有有员工的的个人信信息如下下:pEmmplooyeee-SShowwInffor();pTTemppNodde = pTTemppNodde-pNeext;/将所所有员工工的详细细信息保保存到纪纪录文件件上voiddEmpployyeeLListt:SSaveeAlllReccordd()ofsstreeammyFFi
20、lee;chaarsAlllBuuffeer1100000000= 0;chaarsSiinglleBuuffeer110000=0;inttj;myFFilee.oppen(innfo.txtt,iios:appp|iios:biinarry);if (!myyFille) ceerr打打开记录录文件时时出现错错误!pEmmplooyeee-RRecoordIInfoor(ssSinngleeBuffferr);/加入到到总的字字符串缓缓冲区中中sttrcaat(ssAlllBuffferr,sSSinggleBBufffer);pTTemppNodde = pTTemppNodde-pNe
21、ext;myFFilee.wrritee(sAAllBBufffer,strrlenn(sAAllBBufffer);myFFilee.cllosee();EmplloyeeeLiist:EEmplloyeeeLiist()empployyeeNNodee*pTeempNNodee;pTeempNNodee = pEmmpLiistRRoott;whiile (pTTemppNodde) pEEmpLListtRooot = pEEmpLListtRooot-pNeext;deelettepTeempNNodee-ppEmpployyee;deelettepTeempNNodee;pTTemp
22、pNodde = pEEmpLListtRooot;/*/ maain.cppp */ 主主程序 */*#inccludde stddlibb.h#inccludde stddio.h#inccludde connio.h#inccludde empployyee.h#inccludde Sallesmman.h#inccludde Warrehoouseemann.h#inccludde Mannageer.hh#inccludde iosstreeam.h#inccludde EmpployyeeLListt.hvoidd maain()chaaroprr;/操操作项EmpployyeeL
23、ListtEL;empployyee* ppEmpployyee;couut enndl =商商场员工工信息登登记系统统=eendll;whiile (trrue) /建立立循环操操作coout eendll 请选选择操作作:enndl;coout11.添加加一个售售货员eendll;coout22.添加加一个库库管员eendll;coout33.添加加一个经经理enndl;coout44.计算算所有员员工的月月薪enndl;coout55.显示示所有员员工的详详细信息息enddl;coout66.保存存并退出出enddl;/检查查用户输输入whhilee ( oprr!=1 & oprr!=
24、2 & oprr!=3& oopr!=44& oppr!=5& opr!=66)ccoutt您的输输入有误误,请重重新输入入! oprr;/读入用用户的操操作项ciin oopr; swwitcch(oopr) /添加加一个售售货员caase 1:ppEmpployyee = nnewSallesmman();EEL.AAddLListt(pEEmplloyeee);bbreaak;/添加加一个库库管员caase 2:ppEmpployyee = nnewWarrehoouseemann();EEL.AAddLListt(pEEmplloyeee);bbreaak;/添加加一个经经理caase 3:ppEmpployyee = nnewMannageer();EEL.AAddLListt(pEEmplloyeee);bbreaak;caase 4:/计算算员工链链表中所所有员工工的月薪薪EEL.CCacuulatteAlllSaalarry();bbreaak;caase 5:/显示示员工链链表中所所有员工工的详细细信息EEL.SShowwAlllInffo();bbreaak;caase 6:/将所所有员工工的详细细信息保保存到纪纪录文件件上,并并退出EEL.SSaveeAlllReccordd();rretuurn;bbreaak;deefauult:bbreaak;