编写程序1、某公司的雇员分为以下若干类:抽象类Employee:这是所有员工总的父类;数据成员:员工的姓全的生日月份。成员函数:string getname0),获取员工姓名;float getSalary (int month) 根据参数月份来确定工资
时间: 2024-03-23 15:35:53 浏览: 79
好的,这是一个抽象类,需要使用纯虚函数来实现。以下是C++代码实现:
```cpp
#include <iostream>
#include <string>
using namespace std;
class Employee {
public:
Employee(string name, string birthday) : name(name), birthday(birthday) {}
virtual ~Employee() {}
virtual string getName() const = 0;
virtual float getSalary(int month) const = 0;
protected:
string name;
string birthday;
};
class Salesman : public Employee {
public:
Salesman(string name, string birthday, float basicSalary, float commission) :
Employee(name, birthday), basicSalary(basicSalary), commission(commission) {}
virtual ~Salesman() {}
virtual string getName() const {
return name;
}
virtual float getSalary(int month) const {
return basicSalary + commission * sales[month];
}
void addSales(int month, float amount) {
sales[month] += amount;
}
private:
float basicSalary;
float commission;
float sales[12] = {0};
};
class Manager : public Employee {
public:
Manager(string name, string birthday, float salary) :
Employee(name, birthday), salary(salary) {}
virtual ~Manager() {}
virtual string getName() const {
return name;
}
virtual float getSalary(int month) const {
return salary;
}
private:
float salary;
};
int main() {
Salesman s("Alice", "1990-01-01", 2000, 0.05);
Manager m("Bob", "1980-01-01", 5000);
s.addSales(1, 5000);
s.addSales(2, 6000);
s.addSales(3, 7000);
cout << s.getName() << " gets " << s.getSalary(3) << " in March." << endl;
cout << m.getName() << " gets " << m.getSalary(3) << " in March." << endl;
return 0;
}
```
这里定义了一个抽象类`Employee`,包含了员工的基本信息和纯虚函数`getName`和`getSalary`。其中,`getName`用于获取员工姓名,`getSalary`用于获取员工在某个月份的工资。
另外,还定义了两个派生类`Salesman`和`Manager`,分别表示销售员和经理。销售员的工资由基本工资和销售提成组成,经理的工资是固定的。
在`main`函数中,创建了一个销售员和一个经理,并给销售员添加了一些销售记录。最后输出了两个员工在3月份的工资。
阅读全文