工资管理类姬岚洋Word文档格式.docx
《工资管理类姬岚洋Word文档格式.docx》由会员分享,可在线阅读,更多相关《工资管理类姬岚洋Word文档格式.docx(24页珍藏版)》请在冰点文库上搜索。
![工资管理类姬岚洋Word文档格式.docx](https://file1.bingdoc.com/fileroot1/2023-5/8/da31523e-3f5d-4ac8-a276-a2686dc236fa/da31523e-3f5d-4ac8-a276-a2686dc236fa1.gif)
protected:
intnum;
stringname;
charsex;
intage;
intwage;
};
classManager:
publicEmployee
Manager()//8000元为经理固定月薪
{wage=8000;
intmanagerwage(){return(wage);
voidset_in()
{
cout<
<
"
经理的编号:
;
cin>
>
num;
endl;
其姓名:
name;
性别(m/w):
cin>
sex;
年龄:
age;
}
classTechnician:
voidset_in()
技术员的编号:
工作时间:
worktime;
intget_wage()
{return(worktime*100);
}//100元为单位小时工资
intworktime;
classSalesmanager:
Salesmanager()
{allsale=0;
销售经理的编号:
{return(5000+allsale*0.005);
}//5000元为销售经理底薪
intallsale;
classSeller:
intbossnume(){return(bossnum);
}
intmoney(){return(salesmoney);
销售员的编号:
销售额:
salesmoney;
所属销售经理的编号:
bossnum;
{return(salesmoney*0.04);
intsalesmoney;
intbossnum;
Managerboss[B];
Techniciantechni[T];
Sellersalesman[S];
Salesmanagersalesboss[SB];
intsalesbosstotale[SB]={0};
SalesmanagerexchangeSB;
intexchange;
intb=0,t=0,sb=0,s=0;
intInputboss()
for(inti=0;
i<
B;
i++)
boss[i].set_in();
cout<
┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅"
return0;
intInputtechni()
for(intj=0;
j<
T;
j++)
techni[j].set_in();
return0;
intInputsalesman()
for(intn=0;
n<
S;
n++)
salesman[n].set_in();
intInputsalesboss()
for(intm=0;
m<
SB;
m++)
salesboss[m].set_in();
intmain()
for(;
)
★★小型公司工资管理系统★★"
┏━━━━━━━━━━━━━━━━┓"
┃请选择您所需要的操作┃"
┃数据输入:
1,并按回车键┃"
┃数据统计:
2,并按回车键┃"
┃数据打印:
3,并按回车键┃"
┃数据备份:
4,并按回车键┃"
┃退出系统:
5,并按回车键┃"
┗━━━━━━━━━━━━━━━━┛"
请选择一个操作:
intselect;
select;
switch(select)
{
case1:
for(;
{
cout<
┏━━━━━━━━━━━━━━━━━━━━┓"
┃经理数据输入:
┃技术员数据输入:
┃销售员数据输入:
┃销售经理数据输入:
┃返回上一级:
┗━━━━━━━━━━━━━━━━━━━━┛"
intchoice;
cin>
choice;
switch(choice)
{
case1:
Inputboss();
b++;
break;
case2:
Inputtechni();
t++;
break;
case3:
Inputsalesman();
s++;
case4:
Inputsalesboss();
sb++;
case5:
default:
cout<
输入有误,请重新输入..."
}
if(choice==5)break;
}
break;
case2:
if(s==0)cout<
尚未输入销售员数据..."
if(sb==0)cout<
尚未输入销售经理数据..."
if(s==0||sb==0)break;
total();
maopao();
yejibiao();
SBrank();
break;
case3:
cout<
请等待..."
if(t!
=0||b!
=0||sb!
=0||s!
=0)
职工基本情况一览表如下"
技术员"
technicianinformatian();
┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅"
if(b!
经理"
managerinformation();
if(sb!
销售经理"
salesmanagerinformation();
if(s!
销售员"
sellerinformation();
if(t==0&
&
b==0&
sb==0&
s==0)
尚未录入任何人员数据..."
else
if(t==0)
尚未录入技术员数据..."
if(b==0)
尚未录入经理数据..."
if(sb==0)
尚未录入销售经理数据..."
if(s==0)
尚未录入销售员数据..."
if(t==0||b==0||sb==0||s==0)
请录入所需打印数据或进行其他操作"
case4:
人员数据输入尚未完全,请打印确认后再备份..."
backup_yejibiao();
backup_SBrank();
backup_technicianinformatian();
backup_managerinformation();
backup_salesmanagerinformation();
backup_sellerinformation();
备份中,请等待..."
case5:
charchoice;
确认退出(Y/N)"
cin>
if(choice=='
Y'
)exit(0);
elseif(choice=='
N'
)break;
elsecout<
default:
}
intwage(intn)
{return(5000+n*0.005);
//以下为第二步代码━━━━━┓
voidtotal()//求总销售额
{for(intn=0;
for(intm=0;
if(salesman[n].bossnume()==salesboss[m].nume())
{salesbosstotale[m]+=salesman[n].money();
break;
voidmaopao()//冒泡法排序
for(intn=1;
for(intm=1;
=SB-n;
if(salesbosstotale[m-1]>
salesbosstotale[m])
{
exchangeSB=salesboss[m-1];
salesboss[m-1]=salesboss[m];
salesboss[m]=exchangeSB;
exchange=salesbosstotale[m-1];
salesbosstotale[m-1]=exchange;
salesbosstotale[m]=exchange;
}
voidyejibiao()
职工号为"
salesboss[n].nume()<
salesboss[n].nam()<
下属的销售员业绩为:
┏━━━━━━┳━━━━━━┳━━━━━━━┓"
┃职工号┃姓名┃销售额┃"
for(intj=0;
if(salesman[j].bossnume()==salesboss[n].nume())
{
cout<
┣━━━━━━╋━━━━━━╋━━━━━━━┫"
┃"
setw(12)<
salesman[j].nume()<
salesman[j].nam()<
setw(14)<
salesman[j].money()<
}
┣━━━━━━╋━━━━━━┻━━━━━━━┫"
┃销售额总计:
┃"
setw(28)<
salesbosstotale[n]<
┗━━━━━━┻━━━━━━━━━━━━━━┛"
}
voidSBrank()
{
销售经理按工资排序为:
excelhead();
for(intn=SB-1;
n>
-1;
n--)
excelmiddle();
setw(8)<
setw(6)<
salesboss[n].showsex()<
salesboss[n].showage()<
wage(salesbosstotale[n])<
excelend();
//以上为第二步代码━━━━━┛
//以下为职工信息一览表代码━━━━━┓
voidtechnicianinformatian()
for(intk=0;
k<
k++)
techni[k].nume()<
techni[k].nam()<
techni[k].showsex()<
techni[k].showage()<
techni[k].get_wage()<
voidmanagerinformation()
excelmiddle();
boss[k].nume()<
boss[k].nam()<
boss[k].showsex()<
boss[k].showage()<
boss[k].managerwage()<
voidsalesmanagerinformation()
for(intk=SB-1;
k>
k--)
salesboss[k].nume()<
salesboss[k].nam()<
salesboss[k].showsex()<
salesboss[k].showage()<
wage(salesbosstotale[k])<
voidsellerinformation()
┏━━━━┳━━━━┳━━━┳━━━━┳━━━━┳━━━━━━━━┓"
┃职工号┃姓名┃性别┃年龄┃工资┃所属部门经理编号┃"
┣━━━━╋━━━━╋━━━╋━━━━╋━━━━╋━━━━━━━━┫"
salesman[k].nume()<
salesman[k].nam()<
salesman[k].showsex()<
salesman[k].showage()<
salesman[k].get_wage()<
setw(16)<
salesman[k].bossnume()<
┗━━━━┻━━━━┻━━━┻━━━━┻━━━━┻━━━━━━━━┛"
//以上为职工信息一览表代码━━━━━┛
//各步表格的表头,表中和表尾━━━━━┓
voidexcelhead()
┏━━━━┳━━━━┳━━━┳━━━━┳━━━━┓"
┃职工号┃姓名┃性别┃年龄┃工资┃"
voidexcelmiddle()
┣━━━━╋━━━━╋━━━╋━━━━╋━━━━┫"
voidexcelend()
┗━━━━┻━━━━┻━━━┻━━━━┻━━━━┛"
//各步表格的表头,表中和表尾━━━━━┛
//数据备份━━━━━┓
voidbackup_yejibiao()
outfile.open("
备份数据.text"
ios:
:
out);
outfile<
if(salesman[j].bossnume()==salesboss[n].nume())
{
outfile<
┣━━━