定义Staff(员工)类,由Staff分别派生出Saleman(销售员)类和Manager(经理)类,再由Saleman(销售员)类和Manager(经理)类采用多重继承方式派生出新类SaleMana
来源:互联网 发布:js将时间转换为时间戳 编辑:程序博客网 时间:2024/06/07 17:15
要求:
(1)在Staff类中包含的数据成员有编号(num)、姓名(name)、出勤率(rateOfAttend)、基本工资(basicSal)和奖金(prize)。在Saleman类中还包含数据成员销售员提成比例(deductRate)和个人销售额(personAmount),在Manager类中还包含数据成员经理提成比例(totalDeductRate)和总销售额(totalAmount)。在SaleManager类中不包含其它数据成员。
(2)各类人员的实发工资公式如下:
员工实发工资 = 基本工资 + 奖金 * 出勤率
销售员实发工资 = 基本工资 + 奖金 * 出勤率+ 个人销售额 * 销售员提成比例
经理实发工资 = 基本工资 + 奖金 * 出勤率+ 总销售额 * 经理提成比例
销售经理实发工资 =基本工资 + 奖金 * 出勤率+ 个人销售额 * 销售员提成比例+ 总销售额 * 经理提成比例
(3)每个类都有构造函数、输出基本信息函数(Output)和输出实发工资函数(OutputWage)。
#include"iostream"using namespace std;class Staff{private:int num;char name[18];double rateofattend;int basicSal;int prize;public:Staff(int a,char *b,double c,int d,int e):num(a),rateofattend(c),basicSal(d),prize(e){strcpy(name,b);}void Output(){cout << num << " " << name << " " << rateofattend << " " << basicSal << " " << prize << " "; }double OutputWage(){return (basicSal+prize*rateofattend);}};class Salemen:virtual public Staff{private:double deductRate;double personAmount;public:Salemen(int a,char *b,double c,int d,int e,double f,double g):Staff(a,b,c,d,e),deductRate(f),personAmount(g){};void Output(){Staff::Output();cout << deductRate << " " << personAmount << " " ; }void display(){cout << deductRate << " " << personAmount << " " ;}double OutputWage(){return (Staff::OutputWage()+deductRate*personAmount);}};class Manager:virtual public Staff{private:double totalDeductRate;double totalAmount;public:Manager(int a,char *b,double c,int d,int e,double f,double g):Staff(a,b,c,d,e),totalDeductRate(f),totalAmount(g){};void Output(){Staff::Output();cout << totalDeductRate << " " << totalAmount << " " ;}void display(){cout << totalDeductRate << " " << totalAmount << " " ;}double OutputWage(){return (Staff::OutputWage()+totalDeductRate*totalAmount);}};class SaleManager:public Salemen,public Manager{public:SaleManager(int a,char *b,double c,int d,int e,double f,double g,double h,double i):Salemen(a,b,c,d,e,h,i),Manager(a,b,c,d,e,f,g),Staff(a,b,c,d,e){}void Output(){Staff::Output();Salemen::display();Manager::display();}double OutputWage(){return (Salemen::OutputWage()+Manager::OutputWage()-Staff::OutputWage());}};void main(){Staff a(1,"liu",1,1000,500);a.Output();a.OutputWage();cout << endl ;Salemen b(2,"l",0.5,1000,500,5000,0.5);b.Output();b.OutputWage();cout << endl ;Manager c(3,"pp",0.5,1000,500,5000,0.5);c.Output();c.OutputWage();cout << endl ;SaleManager d(4,"p",0.5,1000,500,0.5,10000,0.5,3000);d.Output();d.OutputWage();cout << endl ;}
- 定义Staff(员工)类,由Staff分别派生出Saleman(销售员)类和Manager(经理)类,再由Saleman(销售员)类和Manager(经理)类采用多重继承方式派生出新类SaleMana
- 定义Person(人)类,由Person分别派生出Teacher(教师)类和Cadre(干部)类,再由Teacher(教师)类和Cadre(干部)类采用多重继承方式派生出新类TeacherCadre(
- 定义Person(人)类,由Person分别派生出Teacher(教师)类和Cadre(干部)类,再由Teacher(教师)类和Cadre(干部)类采用多重继承方式派生出新类TeacherCadre(
- 分别定义Teacher(教师)类和Cadre(干部)类,采用多重继承方式由这两个类派生出新类Teacher_Cadre(教师兼干部)
- 《第十二周任务二》分别定义Teacher(教师)类和Cadre(干部)类,采用多重继承方式由这两个类派生出新类Teacher_Cadre
- 第12周任务2(分别定义Teacher(教师)类和Cadre(干部)类,采用多重继承方式由这两个类派生出新类Teacher_Cadre(教师兼干部))
- 第十二周实验指导--任务2--分别定义Teacher(教师)类和Cadre(干部)类,采用多重继承方式由这两个类派生出新类Teacher_Cadre(教师兼干部)
- 请贺老师帮我看看这个乱码问题【任务2】分别定义Teacher(教师)类和Cadre(干部)类,采用多重继承方式由这两个类派生出新类Teacher_Cadre
- 《C++第十二周实验报告2-1》--分别定义Teacher(教师)类和Cadre(干部采用多重继承方式由这两个类派生出新类Teacher_Cadre(教师兼干部)
- Chapter11——分别声明Teacher(教师类)和Cadre(干部)类,采用多重继承方式由这两个类派生出新类Teacher_Cadre(教师兼干部)类。
- C++第十二周【任务2】定义Teacher(教师)类和Cadre(干部)类,采用多重继承方式由这两个类派生出新类Teacher_Cadre(教师兼干部)。
- 第十二周任务二 分别定义Teacher(教师)类和Cadre(干部)类,采用多重继承方式有这两个类派生出Teacher_Cadre
- 在程序中定义一个基类Person类,由这个基类派生出Teacher(教师)类和Leader(领导)类。采用多继承的方式由这两个类派生出Teacher_Leader类。并且满足以下要求:
- 第十二周任务一(多重继承方式由这两个类派生出新类Teacher_Cadre(教师兼干部))
- 第十三周--项目2-采用多重继承方式由Teacher类和Cadre类派生出Teacher_Cadre
- 13周项目二(多重继承派生出新类)
- 第十三周 项目二:定义Teacher(教师)类和Cadre(干部)类,采用多重继承方式,派生出Teacher_Cadre(教师兼干部)类
- 类的继承与派生(Shape例子派生Rectangle和Circle,Rectangle派生出Square)
- java类集框架小结
- 甲骨文面试题
- magento 资源配置 mysql4-install-0.1.0.php为什么没有执行 ?
- 定义Person(人)类,由Person分别派生出Teacher(教师)类和Cadre(干部)类,再由Teacher(教师)类和Cadre(干部)类采用多重继承方式派生出新类TeacherCadre(
- 算法练习(字符串压缩)
- 定义Staff(员工)类,由Staff分别派生出Saleman(销售员)类和Manager(经理)类,再由Saleman(销售员)类和Manager(经理)类采用多重继承方式派生出新类SaleMana
- socket编程复习(7)-非阻塞socket
- TX2440裸机程序-LCD
- 代码仔的实验室_现有功能介绍 & 未来功能预告 & 意见征集
- Cocos2d-x基本概念整理(二)CCAction
- 利用Mahout实现在Hadoop上运行K-Means算法
- 集成运算同相放大器和反向放大器的选择
- 深入解释直接初始化与复制初始化的区别
- Android Wi-Fi Display(Miracast)介绍