#include #include #include using namespace std;

class Employee{ protected: string name; int year; double basicWage;//基本工资 public: Employee(string n,int y,double b):name(n),year(y),basicWage(b){} virtual double getPrize(int y)=0;//纯虚函数 double getBasicWage(int y){ return basicWage*pow(1.1,y-year); } string getName(){ return name; } };

class Saleman:public Employee{ double rate;//提成比例 double sales;//销售额 public: Saleman(string n,int y,double b,double r):Employee(n,y,b),rate(r){ cin>>sales; } double getPrize(int y){ return sales*rate; } };

class Manager:public Employee{ double rate;//提成比例 double sales;//总销售额 public: Manager(string n,int y,double b,double r):Employee(n,y,b),rate(r){ cin>>sales; } double getPrize(int y){ return sales*rate; } };

int main(){ string name; int year; double basicWage,rate,sales; cin>>name>>year>>rate>>sales; basicWage=2000;//Saleman的基本工资为2000 Saleman s(name,year,basicWage,rate); cin>>name>>year>>rate>>sales; basicWage=5000;//Manager的基本工资为5000 Manager m(name,year,basicWage,rate); Employee *e=&s; cout<getName()<<"2022年的实发工资为"<getPrize(2022)+e->getBasicWage(2022)<<endl; e=&m; cout<getName()<<"2022年的实发工资为"<getPrize(2022)+e->getBasicWage(2022)<<endl; return 0;

定义Employee员工类并由Employee类分别派生出Saleman销售员类、Manager经理类完成如下测试。裁判测试程序样例:在mainvoid函数中定义Saleman类对象和Manager类对象各1个Saleman类对象和Manager类对象用输入的内容进行初始化然后定义Employee类指针并通过Employee类指针打印出Saleman类对象和Manager类对象2022年的实发工资

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

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