#include #include using namespace std;

class Employee { private: string name; //姓名 int beginYear; //参加工作年份 public: Employee(string value1, int value2) { name = value1; beginYear = value2; } int getBeginYear(void) { return beginYear; } string getName(void) { return name; } double getBasicWage(int currentYear) { int workYear = currentYear - beginYear + 1; return 60000 + workYear * 1000; } virtual double getPrize(void) = 0; //虚函数,返回员工的奖金 };

class Saleman : public Employee { private: double deductRate; //提成比例 double personAmount; //个人销售额 public: Saleman(string value1 = "CPP", int value2 = 2022, double value3 = 0.1, double value4 = 0.0) : Employee(value1, value2) { deductRate = value3; personAmount = value4; } double DeductRate(void) { return deductRate; } double PersonAmount(void) { return personAmount; } double getPrize(void) { return deductRate * personAmount; } };

class Manager : public Employee { private: double totalDeductRate; //经理提成比例 double totalAmount; //总销售额 public: Manager(string value1 = "CPP", int value2 = 2022, double value5 = 0.02, double value6 = 0.0) : Employee(value1, value2) { totalDeductRate = value5; totalAmount = value6; } double TotalDeductRate(void) { return totalDeductRate; } double TotalAmount(void) { return totalAmount; } double getPrize(void) { return totalDeductRate * totalAmount; } };

int main(void) { Saleman s("张三", 2018, 0.1, 100000); Manager m("李四", 2015, 0.02, 500000);

Employee *p;
p = &s;
cout << p->getName() << "的实发工资:" << p->getBasicWage(2022) + p->getPrize() << endl;

p = &m;
cout << p->getName() << "的实发工资:" << p->getBasicWage(2022) + p->getPrize() << endl;

return 0;
Employee类分别派生出Saleman类和Manager类定义Employee员工类并由Employee类分别派生出Saleman销售员类、Manager经理类完成如下测试。Employee类结构说明:Employee类的数据成员包括:①私有数据成员:姓名namestring。②私有数据成员:参加工作年份beginYearint。Employee类的成员函数包括:①构造函数Employeest

原文地址: https://www.cveoy.top/t/topic/fEjg 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录