C++.Homework.Classes and Objects.02


/*======================ClassSalary.h===================*/

class Salary{
    private:
        double Wage,Subsidy,Rent,WaterFee,ElecFee;
    public:
Salary(){
this->Wage=0,this->Subsidy=0,this->Rent=0,this->WaterFee=0,this->ElecFee=0;
};
        Salary(double Wa,double Su,double Re,double WF,double EF){
this->Wage=Wa,this->Subsidy=Su,this->Rent=Re,this->WaterFee=WF,this->ElecFee=EF;
};
        void setWage(double Wa){this->Wage=Wa;};
        void setSubsidy(double Su){this->Subsidy=Su;};
        void setRent(double Re){this->Rent=Re;};
        void setWaterFee(double WF){this->WaterFee=WF;};
        void setElecFee(double EF){this->ElecFee=EF;};
        double getWage(){return this->Wage;};
        double getSubsidy(){return this->Subsidy;};
        double getRent(){return this->Rent;};
        double getWaterFee(){return this->WaterFee;};
        double getElecFee(){return this->ElecFee;};
        double RealSalary(){return Wage+Subsidy-Rent-WaterFee-ElecFee; };
};


/*======================ClassWorker.h===================*/

class Worker{
private:
char name[10];
int age;
char Dept[10];
static int number;
public:
Salary salary;
Worker():salary(){
strcpy(name,"NULL");
age=0;
strcpy(Dept,"NULL");
number++;
}
Worker(char *name,int age,char *Dept,double Wa,double Su,double Re,double WF,double EF):salary(Wa,Su,Re,WF,EF){
strcpy(this->name,name);
this->age=age;
strcpy(this->Dept,Dept);
number++;
}
char *getName(){return name;};
int getAge(){return age;};
char *getDept(){return Dept;};
static int getNumber(){return number;};
};
int Worker::number=0;                                                        //定义并初始化number


/*======================main.cpp===================*/

#include <iostream>
#include <iomanip>
#include <stdio.h>
#include"ClassSalary.h"
#include"ClassWorker.h"
using namespace std;
void main(){
char N[]="张三";
char D[]="销售部";
Worker W1,W2(N,25,D,3000,500,200,100,100);
cout<<"For Worker1:"<<endl<<"name     Dept     age wage subsidy rent WaterFee ElecFee RealSalary"<<endl;
printf("%-8s %-8s ",W1.getName(),W1.getDept());
cout<<setw(3)<<W1.getAge()<<" ";
cout<<setw(4)<<W1.salary.getWage()<<" "<<setw(7)<<W1.salary.getSubsidy()<<" "<<setw(4)<<W1.salary.getRent()<<" "<<setw(8)<<W1.salary.getWaterFee()<<" "<<setw(7)<<W1.salary.getElecFee()<<" "<<setw(10)<<W1.salary.RealSalary()<<endl;
cout<<"For Worker2:"<<endl<<"name     Dept     age wage subsidy rent WaterFee ElecFee RealSalary"<<endl;
printf("%-8s %-8s ",W2.getName(),W2.getDept());
cout<<setw(3)<<W2.getAge()<<" ";
cout<<setw(4)<<W2.salary.getWage()<<" "<<setw(7)<<W2.salary.getSubsidy()<<" "<<setw(4)<<W2.salary.getRent()<<" "<<setw(8)<<W2.salary.getWaterFee()<<" "<<setw(7)<<W2.salary.getElecFee()<<" "<<setw(10)<<W2.salary.RealSalary()<<endl;
cout<<"The number of workers is:"<<Worker::getNumber()<<endl;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值