/*======================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;
}