1)某学校对教师每月工资的计算规定如下:固定工资+课时补贴。教授的固定工资为5000元,每个课时补贴50元。讲师的固定工资为2500元,每个课时补贴25元。
参考如下代码:
#include <iostream>
#include <string>
using namespace std;
// 教师抽象类
class Teacher {
protected:
string name;
int coursetime;
float salary;
public:
Teacher(const string& n, int ct) : name(n), coursetime(ct) {}
virtual ~Teacher() {}
virtual void pay() = 0; // 纯虚函数
virtual void print() = 0; // 纯虚函数
};
// 教授类
class Professor : public Teacher {
public:
Professor(const string& n, int ct) : Teacher(n, ct) {
salary = 5000;
}
void pay() override {
salary = salary + coursetime * 50;
}
void print() override {
cout << "Professor:" << name;
cout << ",salary:" << salary << endl;
}
};
// 讲师类
class Lectuer : public Teacher {
public:
Lectuer(const string& n, int ct) : Teacher(n, ct) {
salary = 2500;
}
void pay() override {
salary = salary + coursetime * 25;
}
void print() override {
cout << "Lectuer:" << name;
cout << ",salary:" << salary << endl;
}
};
int main() {
Teacher *pt;
Professor wl("Wang Lei", 32);
pt=&wl;
pt->print(); // 输出姓名与没加课时费的工资
pt->pay(); // 计算工资
pt->print(); // 输出姓名和工资
Lectuer lm("Li Mei", 48);
pt=&lm;
pt->print(); // 输出姓名与没加课时费的工资
pt->pay(); // 计算工资
pt->print(); // 输出姓名和工资
return 0;
}