雇员类编程

雇员

#include<iostream>
#include<string.h>
using namespace std;
//在此补全雇员类(Employee)、推销人员类(Salesman)和技术人员类(Tech )的相关代码
class Employee
{
private:
    char* p0;
    char* p1;
    int no;
    float wages;
public:
    virtual void Pay() = 0;
    virtual void Print() = 0;
    friend class Salesman;
    friend class Tech;
};
class Salesman:public Employee
{
private:
    float rate, sales;
public:
    Salesman(char name[10], int No, float rate, float sales)
    {
        p0 = name;
        no = No;
        this->rate = rate;
        this->sales = sales;
    }
    void Pay()
    {
        wages = rate * sales;
    }
    void Print()
    {
        cout << "name=" ;
        while(*p0!='\0')
        {
            cout<<*p0 ;
            p0++;
        }
        
        cout<<"," << "NO=" << no << ",wages=" << wages << ",rate=" << rate << ",sales=" << sales << endl;
    }
};
class Tech: public Employee
{
private:
    float hourRate, workHours;
public:
    Tech (char name[10], int NO, float hourRate, float workHours)
    {
        p0 = name;
        no = NO;
        this->hourRate = hourRate;
        this->workHours = workHours;
    }
    void Pay()
    {
        wages = hourRate * workHours;
    }
    void Print()
    {
        cout << "name=" ;
        while(*p0!='\0')
        {
            cout<<*p0 ;
            p0++;
        }
        cout<< "," << "NO=" << no << ",wages=" << wages << ",hourRate=" << hourRate << ",workHours=" << workHours << endl;
    }
};
void fun(Employee& ref)
{
    ref.Pay();
    ref.Print();
    cout << endl;
}
int main()
{
    char name[10];
    int NO;
    float rate, sales;
    cin >> name >> NO >> rate >> sales;
    Salesman s(name, NO, rate, sales);
    float hourRate, workHours;
    fun(s);
    cin >> name >> NO >> hourRate >> workHours;
    Tech t(name, NO, hourRate, workHours);
    
    fun(t);
    return 1;
}

  • 8
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值