inout();
outf();
}
manager.cpp:
#include"manager.h"
#include
manager:
:
manager(char*n,intnu,char*s,intp,intsa,inty,intm,intd):
employee(n,nu,s,p,sa,y,m,d)
{
mpay=sa;
}
manager:
:
getpay()
{
returnmpay;
}
voidmanager:
:
pay()
{
mpay=mpay;
}
voidmanager:
:
display()
{
cout<<"名字:
"<cout<<"编号:
"<cout<<"性别:
"<cout<<"职位:
"<
cout<<"出生日期:
"<cout<<"工资:
"<cout<}
salesman.cpp:
#include"salesman.h"
#include
salesman:
:
getsale()
{
returnsale;
}
salesman:
:
getpay()
{
pay();
returnspay;
}
salesman:
:
salesman(char*n,intnu,char*s,intp,intsa,inty,intm,intd,inta):
employee(n,nu,s,p,sa,y,m,d)
{
sale=sa;
area=a;
}
voidsalesman:
:
setsale(intp)
{
sale=p;
}
voidsalesman:
:
pay()
{
spay=getsale()*4/100;
}
char*salesman:
:
getarea()
{
returnar[area];
}
voidsalesman:
:
display()
{
cout<<"名字:
"<cout<<"编号:
"<cout<<"性别:
"<cout<<"职位:
"<
cout<<"出生日期:
"<cout<<"工资:
"<cout<<"所属部门:
"<cout<}
salesmanager.cpp:
#include"salesmanager.h"
#include
salesmanager:
:
salesmanager(char*n,intnu,char*s,intp,intsa,inty,intm,intd,inta):
salesman(n,nu,s,p,sa,y,m,d,a),manager(n,nu,s,p,sa,y,m,d)
{
sale=sa;
}
salesmanager:
:
getsmpay()
{
pay();
returnsmpay;
}
salesmanager:
:
getmpay()
{
returnmanager:
:
getpay();
}
voidsalesmanager:
:
setsale(ints)
{
sale=s;
}
voidsalesmanager:
:
setpay(intg)
{
gpay=g;
}
voidsalesmanager:
:
pay()
{
smpay=5000+sale*5/1000;
}
char*salesmanager:
:
getare()
{
returngetarea();
}
voidsalesmanager:
:
display()
{
cout<<"名字:
"<:
getname()<cout<<"编号:
"<:
getnum()<cout<<"性别:
"<:
getsex()<cout<<"职位:
"<
:
getposition()]<cout<<"出生日期:
"<:
getyear()<<"年"<:
getmonth()<<"月"<:
getday()<<"日"<cout<<"工资:
"<cout<<"所属部门:
"<cout<}
technician.cpp:
#include"technician.h"
#include
technician:
:
technician(char*n,intnu,char*s,intp,intsa,inty,intm,intd):
employee(n,nu,s,p,sa,y,m,d)
{
time=sa;
}
technician:
:
gettime()
{
returntime;
}
technician:
:
getpay()
{
pay();
returntpay;
}
voidtechnician:
:
pay()
{
tpay=time*25;
}
voidtechnician:
:
display()
{
cout<<"名字:
"<cout<<"编号:
"<cout<<"性别:
"<cout<<"职位:
"<
cout<<"出生日期:
"<cout<<"工资:
"<cout<}
头文件:
empolyee.h:
#ifndefempolyee_h
#defineempolyee_h
staticcharp[4][20]={
{"总经理"},
{"销售经理"},
{"销售员"},
{"技术人员"}
};
classdate//定义时间类
{
private:
intyear,month,day;//定义时间类的年月日
public:
date(){}//时间类的构造函数
voidsetyear(inty=1988){year=y;}
voidsetmonth(intm=5){month=m;}
voidsetday(intd=16){day=d;}
intgety(){returnyear;}
intgetm(){returnmonth;}
intgetd(){returnday;}
};
classemployee//基类,被雇佣者
{
private:
charname[20];//名字
intnum;//编号
charsex[4];//性别
datebdate;//出生时间
intposition;//职位
intsalary;//薪水
public:
employee(){}//基类构造函数
employee(char*n,intnu,char*s,intp,intsa,inty,intm,intd);//基类构造函数的重载
intgetyear();
intgetmonth();
intgetday();
char*getname();
intgetnum();
char*getsex();
intgetposition();
intgetsalary();
virtualvoidpromote(){}//虚升职函数
virtualvoidpay()=0;//纯虚的计算工资函数
virtualvoiddisplay()=0;//纯虚的显示函数
};
#endif
main.h:
#include
#include
usingnamespacestd;
#include"employee.h"
#include"salesman.h"
#include"manager.h"
#include"salesmanager.h"
#include"technician.h"
voidinoutdata(int);
manager.h:
#include"employee.h"
#ifndefmanager_h
#definemanager_h
classmanager:
publicemployee//定义经理类,继承employee类
{
private:
intmpay;//定义经理类的工资
public:
manager(char*n,intnu,char*s,intp,intsa,inty,intm,intd);
virtualvoidpromote(){}
intgetpay();
virtualvoidpay();
virtualvoiddisplay();
};
#endif
salesman.h
#include"employee.h"
#ifndefsalesman_h
#definesalesman_h
staticcharar[4][20]={//定义储存部门的数组,以便后面你用整数来表示部门
{"华北地区"},
{"华东"}
};
classsalesman:
publicemployee//定义销售员的类,继承employee类
{
private:
intsale,spay;//定义销售量,和销售员的工资变量
intarea;//定义销售员的部门
public:
salesman(char*n,intnu,char*s,intp,intsa,inty,intm,intd,inta);
intgetsale();
intgetpay();
char*getarea();
voidsetsale(int);
virtualvoidpromote(){}//虚升职函数
virtualvoidpay();//虚计算工资的函数
virtualvoiddisplay();//虚显示函数
};
#endif
salesmanager.h:
#include"salesman.h"
#include"manager.h"
#ifndefsalesmanager_h
#definesalesmanager_h
classsalesmanager:
publicsalesman,publicmanager//定义销售经理的类,继承销售员类和经理类
{
private:
intsmpay,sale,gpay;
public:
salesmanager(char*n,intnu,char*s,intp,intsa,inty,intm,intd,inta);
intgetsmpay();//获得销售经理的工资
intgetmpay();//获得销售经理的固定工资
voidsetsale(int);//设置销售经理的总销售量
voidsetpay(int);//设置销售经理的固定工资
char*getare();//获得销售经理的部门
virtualvoidpromote(){}//虚升职函数
voidpay();//销售经理的计算工资的函数
voiddisplay();//销售经理的显示函数
};
#endif
technician.h:
#include"employee.h"
#ifndeftechnician_h
#definetechnician_h
classtechnician:
publicemployee//定义技术员的类,继承employee类
{
private:
inttime,tpay;//定义技术员的工作时间和工资
public:
technician(char*n,intnu,char*s,intp,intsa,inty,intm,intd);
intgettime();//获得技术员的工作时间
intgetpay();//获得技术员的工资
virtualvoidpromote(){}//虚升职函数
virtualvoidpay();//销售经理的计算工资的函数
virtualvoiddisplay();//销售经理的显示函数
};
#endif
五、参考文献