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<}
salesman.cpp:
#include"salesman.h"
#includesalesman:
:
getsale()
{
returnsale;
}
salesman:
:
getpay()
{
pay();
returnspay;
}
d,int
salesman:
:
salesman(char*n,intnu,char*s,intp,intsa,inty,intm,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<<"所属部门:
"<}
salesmanager.cpp:
#include"salesmanager.h"
#include
d,int
salesmanager:
:
salesmanager(char*n,intnu,char*s,intp,intsa,inty,intm,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<<"所属部门:
"<}
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<}
头文件:
empolyee.h:
#ifndefempolyee_h
#defineempolyee_h
staticcharp[4][20]={
{"总经理"},
{"销售经理"},
{"销售员"},
{"技术人员"}
//定义时间类
//定义时间类的年月日
//时间类的构造函数
};
classdate
{
private:
intyear,month,day;
public:
date(){}
voidsetyear(inty=1988){year=y;}
intgety(){returnyear;}
intgetm(){returnmonth;}
intgetd(){returnday;}
};
classemployee
{
private:
charname[20];
intnum;
charsex[4];
datebdate;
intposition;
intsalary;
public:
employee(){}employee(char*n,intnu,char*s,intintgetyear();
//基类,被雇佣者
//名字
//编号
//性别
//出生时间
//职位
//薪水
//基类构造函数
y,intm,intd);//基类构造函数的重载
voidsetmonth(intm=5){month=m;}voidsetday(intd=16){day=d;}
intgetmonth();
intgetday();char*getname();
intgetnum();char*getsex();
intgetposition();
intgetsalary();
virtualvoidpromote(){}virtualvoidpay()=0;
virtualvoiddisplay()=0;};
#endif
//虚升职函数
//纯虚的计算工资函数
//纯虚的显示函数
main.h:
#include#includeusingnamespacestd;#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{
private:
intmpay;
//定义经理类,继承
//定义经理类的工资
employee类
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
{
private:
intsale,spay;
intarea;
//定义储存部门的数组,以便后面你用整数来表示
//定义销售员的类,继承employee类
//定义销售量,和销售员的工资变量
//定义销售员的部门
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:
intgetsmpay();intgetmpay();voidsetsale(int);
//获得销售经理的工资
//获得销售经理的固定工资
//设置销售经理的总销售量
salesmanager(char*n,intnu,char*s,intp,intsa,inty,intm,intd,inta);
//设置销售经理的固定工资
//获得销售经理的部门
//虚升职函数
voidsetpay(int);char*getare();
virtualvoidpromote(){}
voidpay();
//销售经理的计算工资的函数
voiddisplay();
//销售经理的显示函数
};
#endif
technician.h:
#include"employee.h"
#ifndeftechnician_h
#definetechnician_h
//定义技术员的类,继承employee类
//定义技术员的工作时间和工资
classtechnician:
publicemployee{
private:
inttime,tpay;
intgettime();intgetpay();
//获得技术员的工作时间
//获得技术员的工资
technician(char*n,intnu,char*s,intp,intsa,inty,intm,intd);
//虚升职函数
//销售经理的计算工资的函数
//销售经理的显示函数
public:
virtualvoidpromote(){}virtualvoidpay();virtualvoiddisplay();
};
#endif
五、参考文献