/*
2薪酬(10分)
题目内容:
为某销售公司定义一个员工类employee,其中包含工号、姓名、基本工资3个数据成员。
由employee类派生出销售员工类salesman,salesman类里包含成员函数print,可以输出销售员工的工号、姓名、薪酬,其中销售员工的薪酬就是基本工资。
由salesman类再派生出销售经理类salesmanager,salesmanager类里包含一个数据成员com表示每月的销售额,也包含print,功能为输出销售经理的工号、姓名、薪酬,其中销售经理的薪酬为基本工资加上销售额的百分之一。
要求三个类里面均具有各自的构造函数。
输入格式:
第一行输入一个销售员工的工号、姓名、基本工资;
第二行输入一个销售经理的工号、姓名、基本工资、销售额。
输出格式:
第一行输出销售员工的工号、姓名、薪酬;
第二行输出销售经理的工号、姓名、薪酬。
输入样例:
1001 wangjun 4000
1002 duyan 2000 800000
输出样例:
1001 wangjun 4000
1002 duyan 10000
*/
#include<iostream>
#include<cstring>
#include<cmath>
using namespace std;
class Employee{
protected:
int id;
string name;
int baseSalary;
int salary;
public:
Employee(int &id,string &name,int &baseSalary);
};
Employee::Employee(int &id,string &name,int &baseSalary):id(id),name(name),baseSalary(baseSalary){
salary=baseSalary;
}
class Salesman:public Employee{
public:
void print();
Salesman(int &id,string &name,int &baseSalary);
};
Salesman::Salesman(int &id,string &name,int &baseSalary):Employee(id,name,baseSalary){}
void Salesman::print(){
cout<<id<<" "<<name<<" "<<salary<<endl;
}
class Salesmanager:public Salesman
{
protected:
int com;
public:
Salesmanager(int &id,string &name,int &baseSalary,int &com);
};
Salesmanager::Salesmanager(int &id,string &name,int &baseSalary,int &com):Salesman( id,name,baseSalary),com(com){
salary+=com*0.01;
}
int main()
{ int id,baseSalary,com;
string name;
cin>>id>>name>>baseSalary;
Salesman salesman=Salesman(id,name,baseSalary);
cin>>id>>name>>baseSalary>>com;
Salesmanager manager=Salesmanager(id,name,baseSalary,com);
salesman.print();
manager.print();
return 0;
}