c++问题,上次少发了一些内容

编写一个程序实现小型公司的工资管理。该公司主要有4类人员:经理,兼职技术人员,销售员和销售经理。要求存储这些人员的编号、姓名和月工资,计算月工资并显示全部信息。月工资的计算办法是:经理拿固定月薪8000元;兼职技术人员按每小时100元领取月薪;销售员按当月销售额的4%提成;销售经理既拿固定工资也领取销售提成,固定月工资5000元,提成为所管辖部门当月销售总额的5%。

img

不是写代码了么,不采纳也不重复。而且题目有错误,部门月销售额200万,5%提成的话,是10万,不是1万,所以销售经理收入怎么只有15000呢?应该是千分之五
按照你的样例写的

typedef struct _emp
{
    int id;
    string name;
}emp;
 
#include <iostream>
using namespace std;
#include <string>
 
class employee
{
protected:
    int id;
    string name;
public:
    employee(int id,string name) : id(id),name(name) {}
    string getName() {return name;}
    virtual double getSalary() = 0;
};
 
class manager : virtual public employee
{
protected:
    double salary;
public:
    manager(int id,string name) : employee(id,name) {salary = 8000;}
    double getSalary() {return salary;}
};
 
class technician : public employee
{
private:
    double  workHours;
public:
    technician(int id,string name,double workhours) : employee(id,name),workHours(workhours) {}
    double getSalary() {return 100*workHours;}
};
 
class salesman : virtual public  employee
{
protected:
    double sales;
public:
    salesman(int id,string name,double sales) : employee(id,name),sales(sales) {}
    double getSalary() {return sales * 0.04;}
};
 
class salesmanager: public salesman,manager
{
public:
    salesmanager(int id,string name,double sales) : salesman(id,name,sales),manager(id,name),employee(id,name){salary = 5000;}
    double getSalary() {return sales * 0.005 + manager::getSalary();}
};
 
int main()
{

    emp e[4];
    for(int i=0;i<4;i++)
    {
        cout<<"职工编号:";
        cin>>e[i].id;
        cout<<"职工姓名:";
        cin>>e[i].name;
    }
    manager *man = new manager(e[0].id,e[0].name);
    cout<<man->getName()<<"的月薪是:"<<man->getSalary()<<endl;
    double workhours;
    cout<<e[1].name<<"本月工作时数:";
    cin>>workhours;
    technician *tech = new technician(e[1].id,e[1].name,workhours);
    cout<<tech->getName()<<"的月薪是:"<<tech->getSalary()<<endl;

    double sales;
    cout<<e[2].name<<"本月销售额:";
    cin>>sales;
    salesman *sale = new salesman(e[2].id,e[2].name,sales);
    cout<<sale->getName()<<"的月薪是:"<<sale->getSalary()<<endl;

    cout<<e[3].name<<"所管部门月销售额:";
    cin>>sales;
    salesmanager *sm = new salesmanager(e[3].id,e[3].name,sales);
    cout<<sm->getName()<<"的月薪是:"<<sm->getSalary()<<endl;
        
}

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632