C++雇主类、雇员类、收入类的声明和功能的实现

雇员类employee的声明如下:

class employee{

private:

    string name;

    int id;

public:

    ......

    ......set(.....);   //设置数据成员

    double earnings(){return 0;}

    void print();//输出雇员的姓名和id

};

类commissionEmployee是指总收入是"销售额*提成比例"的雇员

class commissionEmployee:public employee{

private:

        double grossSales;//销售额

        double commissionRate; //提成比例

public:

        ......

        ......set(.....);   //设置数据成员

        double earnings();//返回总收入

        void print();//输出雇员的姓名,id和总收入

};

类basePlusCommissionEmployee是指总收入是"基本工资+销售额*提成比例"的雇员

class basePlusCommissionEmployee:public commissionEmployee{

private:

        double baseSalary;  //基本工资

public:

        ......

        ......set(.....);   //设置数据成员

        double earnings();//返回总收入

        void print();//输出雇员的姓名,id和总收入

};

 

完成以上三个类的定义,编写主函数进行验证。

void main()

{

basePlusCommissionEmployee  ce;

ce.set("wang", 123, 30000, 0.2, 500);

ce.print();

}

运行结果如下:

wang123

6500

实现代码:

#include<iostream>
#include<string>
using namespace std;
class employee{

private:

    string name;

    int id;

public:
    void set(const string &name_,int id_)
	{
		name=name_;
		id=id_;
	} 

    double earnings(){return 0;}

    void print()
	{
		cout<<name<<id<<endl;
	}

};


class commissionEmployee:public employee{

private:

        double grossSales;

        double commissionRate; 

public:


        void set(double grossSales_,double commissionRate_)
		{
		    grossSales=grossSales_;
            commissionRate=commissionRate_;
		}   

        double earnings(double baseSalary_)
		{
			return grossSales*commissionRate+baseSalary_;
		}

        void print(double baseSalary_)
		{
           cout<<grossSales*commissionRate+baseSalary_;
		}

};

class basePlusCommissionEmployee:public commissionEmployee{

private:

        double baseSalary;  

public:


        void set(const string& name_,int id_,double grossSales_,double commissionRate_,double baseSalary_ )
		{
            baseSalary=baseSalary_;
			employee::set(name_,id_);
			commissionEmployee::set(grossSales_,commissionRate_);

		};   

        double earnings()
		{
		}

        void print()
		{
			employee::print();
			commissionEmployee::print(baseSalary);
		}
};
void main()
{
	basePlusCommissionEmployee  ce;
	ce.set("wang",123, 30000, 0.2, 500);
	ce.print();
	cout<<endl;
}

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值