#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 workingYears = currentYear - beginYear + 1; return 60000 + workingYears * 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 getDeductRate(void) { return deductRate; } double getPersonAmount(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 getTotalDeductRate(void) { return totalDeductRate; } double getTotalAmount(void) { return totalAmount; } double getPrize(void) { return totalDeductRate * totalAmount; } };

int main(void) { Saleman s("Tom", 2018, 0.12, 500000); Manager m("Jerry", 2017, 0.05, 8000000);

Employee *p;
p = &s;
cout << s.getName() << "'s salary in 2022: " << s.getBasicWage(2022) + p->getPrize() << endl;

p = &m;
cout << m.getName() << "'s salary in 2022: " << m.getBasicWage(2022) + p->getPrize() << endl;

return 0;

}

C++ 员工类派生销售员和经理类:工资计算与奖金

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

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