C++员工管理系统.docx
- 文档编号:5918886
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:23
- 大小:19.22KB
C++员工管理系统.docx
《C++员工管理系统.docx》由会员分享,可在线阅读,更多相关《C++员工管理系统.docx(23页珍藏版)》请在冰豆网上搜索。
C++员工管理系统
#include
#include
#include
#include
#include
#include
#include
#include
usingnamespacestd;
intcount=0;
doubletotalPay=0;
intnemberOfopinions=0;
ofstream*file[50];
intBossflag=0;
voidmenu();
intpassword();
classProfession//职业
{
charrank;//等级
floatbasicSalary;//基础工资
floatallowance;//津贴
floatmedicalInsurance;//医疗保险
doubleoverTimePay;//加班费
public:
Profession(charnr=0,floatnb=0,floatna=0,floatnm=0,doubleno=0):
rank(nr),basicSalary(nb),allowance(na),medicalInsurance(nm),
overTimePay(no)
{}//构造
chargetRank(){returnrank;}
voidinputRank(charc);
floatgetBasicSalary(){returnbasicSalary;}
voidinputBasicSalary(floatb);
floatgetAllowance(){returnallowance;}
voidinputAllowance(floati);
floatgetMedicalInsurance(){returnmedicalInsurance;}
voidinputMedicalInsurance(floatm);
doublegetOverTimePay(){returnoverTimePay;}
voidinputOverTimePay(doubleo);
};
voidProfession:
:
inputRank(charc)
{
rank=c;
}
voidProfession:
:
inputAllowance(floati)
{
allowance=i;
}
voidProfession:
:
inputBasicSalary(floatb)
{
basicSalary=b;
}
voidProfession:
:
inputMedicalInsurance(floatm)
{
medicalInsurance=m;
}
voidProfession:
:
inputOverTimePay(doubleo)
{
overTimePay=o;
}
/*classLetter
{
stringletter;
public:
stringgetL(){returnletter;}
};*/
classWorker:
publicProfession//员工
{
stringname,profession,letter;
intID;
doublewages;//税后工资
doublesalary;//税前工资
doubletotalWorkingtime;//总工时
charperson;//态度
//等级
intpersonalPassword;//个人密码
intrankflag;//升级标志
intletterflag;//信件
intmoneyflag;//加薪标志
public:
Worker(intx=0,inty=0,intz=0):
rankflag(x),letterflag(y),moneyflag(z)
{}
stringgetName(){returnname;}
voidinputName(stringn);
intgetID(){returnID;}
voidinputID(inti);
stringgetProfession(){returnprofession;}
voidinputProfession(stringp);
voidgetLetter(){cout< voidchangeLetter(strings); doublegetWages(){returnwages;} voidgetTotalworkingtime(doublet); doublereTotalworkingtime() { returntotalWorkingtime; } chargetPerson(){returnperson;} doublegetSalary(){returnsalary;} intgetMf(){returnmoneyflag;} intgetRf(){returnrankflag;} intgetLf(){returnletterflag;} voidchangeLf(); voidchangeMf(); voidchangeRf(); voidchangeSalary(doubles); voidevaluation(); voidoutPut(); voidoriginalSalary(); voidcalculateSalary(); voidCongratulation(); voidopinion(); voidcheck(Worker*head); voidchangeRank(charc,Worker*clerk); classWorker*next; }; voidWorker: : changeLetter(strings) { letter=s; } voidWorker: : inputName(stringn) { name=n; } voidWorker: : inputID(inti) { ID=i; } voidWorker: : inputProfession(stringp) { profession=p; } voidWorker: : getTotalworkingtime(doublet) { totalWorkingtime=t; } voidWorker: : changeLf() { letterflag--; } voidWorker: : changeMf() { moneyflag++; } voidWorker: : changeRf() { rankflag++; } voidWorker: : changeSalary(doubles) { salary=s; } voidWorker: : originalSalary()//无税 { salary=getBasicSalary()+(totalWorkingtime-8*30)*getOverTimePay()+getAllowance()+getMedicalInsurance(); totalPay=totalPay+salary; } voidWorker: : calculateSalary()//税 { if(salary>5000) { wages=salary-salary*0.5; } elseif(salary>1000&&salary<=5000) { wages=salary-salary*0.3; } } voidWorker: : evaluation() { if(totalWorkingtime<30) person='D'; elseif(totalWorkingtime>=30&&totalWorkingtime<60) person='C'; elseif(totalWorkingtime>=60&&totalWorkingtime<90) person='B'; elseif(totalWorkingtime>=90) person='A'; } voidWorker: : outPut()//数出 { cout<<"姓名"< cout< } voidWorker: : Congratulation()//祝贺 { if(rankflag==1) { cout<<"恭喜您升职了"< rankflag=0; } elseif(moneyflag==1) { cout<<"恭喜您加薪了"< moneyflag=0; calculateSalary(); cout<<"您现在薪水为"< } } voidWorker: : opinion()//意见 { cin>>letter; nemberOfopinions++; letterflag=1; } voidWorker: : check(Worker*head)// { Worker*clerk=head->next; intid; chars; stringd; cout<<"输入您的ID"< cin>>id; if(clerk! =NULL&&id==(*clerk).getID()) { (*clerk).Congratulation(); if(Bossflag==1) { cout<<"有信件"< (*clerk).getLetter(); Bossflag=0; } (*clerk).outPut(); cout<<"是否提出申请"< cout<<"y/n"< cin>>s; if(s=='y') { cout<<"input: "< cin>>d; (*clerk).opinion(); } } } voidWorker: : changeRank(charr,Worker*clerk)//等级 { Professiona('a',8000,2000,200,300),b('b',7000,1500,150,200),c('c',6000,1000,100,100),d('d',3000,500,50,70); if(r=='a') { (*clerk).inputRank(a.getRank()); (*clerk).inputBasicSalary(a.getBasicSalary()); (*clerk).inputMedicalInsurance(a.getMedicalInsurance()); (*clerk).inputAllowance(a.getAllowance()); (*clerk).inputOverTimePay(a.getOverTimePay()); } elseif(r='b') { (*clerk).inputRank(b.getRank()); (*clerk).inputBasicSalary(b.getBasicSalary()); (*clerk).inputMedicalInsurance(b.getMedicalInsurance()); (*clerk).inputAllowance(b.getAllowance()); (*clerk).inputOverTimePay(b.getOverTimePay()); } elseif(r='c') { (*clerk).inputRank(c.getRank()); (*clerk).inputBasicSalary(c.getBasicSalary()); (*clerk).inputMedicalInsurance(c.getMedicalInsurance()); (*clerk).inputAllowance(c.getAllowance()); (*clerk).inputOverTimePay(c.getOverTimePay()); } elseif(r='d') { (*clerk).inputRank(d.getRank()); (*clerk).inputBasicSalary(d.getBasicSalary()); (*clerk).inputMedicalInsurance(d.getMedicalInsurance()); (*clerk).inputAllowance(d.getAllowance()); (*clerk).inputOverTimePay(d.getOverTimePay()); } } classBoss { public: voidemployed(Worker*head);//录用 voidfire(Worker*head);//踢人 voidchangeWages(Worker*head);//加薪 voidwokersApply(Worker*head);//职工建议 voidCheckThesalary(Worker*head);//查看 voidpromotion(Worker*head);//升职 }; voidBoss: : employed(Worker*head) { } voidBoss: : fire(Worker*head) { cout<<"输入姓名"< stringname1; intid; Worker*clerk=head->next; cout<<"想踢谁? "; cin>>name1; do{ if(clerk! =NULL&&name1==(*clerk).getName()) { (*clerk).outPut(); id=(*clerk).getID(); if(((*clerk).getPerson()=='B')||((*clerk).getPerson()=='A')) { cout<<"该员工评价B级以上,真的要解雇他? "< cout<<"y/n"< chara; cin>>a; if(a=='y') { Worker*p,*q; q=head; totalPay=totalPay-(*clerk).getSalary(); while(q->next! =NULL&&q->next->getID()! =id) q=q->next; if(q->next! =NULL) { p=q->next; q->next=q->next->next; count--; cout<<"......成功删除! "; } }//加入主菜单 } else { Worker*p,*q; q=head; totalPay=totalPay-(*clerk).getSalary(); while(q->next! =NULL&&q->next->getID()! =id) q=q->next; if(q->next! =NULL) { p=q->next; q->next=q->next->next; count--; cout<<"......成功删除! "; } } } clerk=clerk->next; }while(clerk! =NULL); } voidBoss: : changeWages(Worker*head) { Worker*clerk=head->next; stringc; chard; intflag=0; cout<<"输入姓名"< cin>>c; do { do { if(clerk! =NULL&&(*clerk).getName()==c) { flag=1; (*clerk).outPut(); cout<<"要更改吗? ? "< cout<<"y/n"< cin>>d; if(d=='y') { doubles; cout<<"输入薪水"< cin>>s; (*clerk).changeSalary(s); (*clerk).changeMf(); } else break; } }while(clerk! =NULL); if(flag==0) cout<<"! ! ! ! ! ! ! ! ! ! ! ! ! 对不起! 您要查询的职工不存在! ! ! ! ! ! ! ! ! ! ! "< cout<<"您想继续查询吗? (y/n)";cin>>d; }while(d=='y'); } voidBoss: : wokersApply(Worker*head) { Worker*clerk=head->next; stringc; if(nemberOfopinions! =0) { cout<<"您有"< do { if(clerk! =NULL&&(*clerk).getLf()==1) { cout<<(*clerk).getName()< (*clerk).changeLf(); (*clerk).getLetter(); cout<<"要对他说些什么吗? "< cout<<"输入‘恩’"< cin>>c; if(c=="恩") { stringopinion; cout<<"建议: "< cin>>opinion; (*clerk).changeLetter(opinion); Bossflag=1; } } }while(clerk=NULL); } } voidBoss: : CheckThesalary(Worker*head) { charc; stringname; do{ Worker*clerk=head->next; boolflag=0; cout<<"请输入要查找的职工的姓名: "; cin>>name; do{ if(clerk! =NULL&&name==(*clerk).getName()) { flag=1; (*clerk).outPut(); } clerk=clerk->next; }while(clerk! =NULL); if(flag==0) cout<<"! ! ! ! ! ! ! ! ! ! ! ! ! 对不起! 您要查询的职工不存在! ! ! ! ! ! ! ! ! ! ! "< cout<<"您想继续查询吗? (y/n)";cin>>c; while(c! ='y'&&c! ='n') { cout<<"! ! ! ! ! ! ! ! ! ! ! ! ! ! 指令错误<请输入y/n! >! ! ! ! ! ! ! ! ! ! ! "< cout<<"您想继续查询吗? (y/n)"; cin>>c; } }while(c=='y'); } voidBoss: : promotion(Worker*head)//升职 { cout<<"请输入ID"< intid; charc; Worker*clerk=head->next; cin>>id; do{ if(clerk! =NULL&&id==(*clerk).getID()) { (*clerk).outPut(); if((*clerk).getRank()=='a') { cout<<"员工已达最高级"< } else { cout<<"确定是否升级"< cout<<"y/n"< cin>>c; if(c=='y') { (*clerk).changeRank((char)((*clerk).getRank()-1),clerk); (*clerk).changeRf(); cout<<"升职成功"< } else { break; } } } clerk=clerk->next; }while(clerk! =
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 员工 管理 系统