作业题目:
假设某销售公司有一般员工、销售员工和销售经理。月工资的计算方法是:
一般员工月薪=基本工资
销售员工月薪=基本工资+销售额提成率
销售经理月薪=基本工资+职务工资+销售额*提成率
编写程序,定义一个表示一般员工的基类Employee,它包含三个表示员工基本信息的数据成员:编号 number、姓名name 和基本工资basicSalary。
由Employee类派生销售员工Salesman类,Salesman类包含两个新数据成员:销售额sales和静态数据成员提成比例commrate
再由Salesman类派生表示销售经理的Salesmanager类。Salesmanager类包含新数据成员:岗位工资jobSalary。
为这些类定义初始化数据的构造函数,以及输入数据input、计算工资pay和输出工资条print的成员函数。
设该公司员工的基本工资是2000元,销售经理的岗位工资是3000元,提成率=5/1000。在main函数中,输入若干个不同类型的员工信息测试你的类结构。
新增功能:① 在类Salesman与类Salesmanager中增加奖励函数award,用于判断这两类员工每月的销售额是否达到奖励条件。
②将原题目中静态数据成员提成比例commrate改为动态的数据成员,这样更符合现实的需求,在重载流插入运算符的时输入该数据成员。
#include <iostream>
using namespace std;
class Employee
{
public:
char number[10];
char name[10];
double basicSlary;
Employee(double);
void printEm();
friend istream& operator >>(istream& in, Employee& x);
};
Employee::Employee(double a):basicSlary(a) {
}
void Employee::printEm()
{
cout << "一般员工工资条:" << endl;
cout << "姓名" << "\t" << "编号" << "\t" << "工资" << endl;
cout << name << "\t" << number << "\t" << basicSlary << endl;
}
//Employee >>
istream& operator >>(istream& in, Employee& x)
{