C++練習問題三10、11問題


10.                Wage,   Subsidy,  Rent,  Waterfee,  Elecfee,          Salary,       :
class salary{
private:
double wage,subsidy,rent,waterfee,elecfee;
public:
salary(-----){           }
salary(){            0}
void setXX (double f){xx=f;}
double getXX(){return xx;}
double realsalary()          //      
-------
};
  ,    setXX()            ,    getXX()            ,XX  Wage,Subsidy     , Wage        setWage() getWage(). 
    =Wage+Subsidy-Rent-Waterfee-elecfee
          ,                main.
11.      Worker,     name,  age,    Dept,  salary     。  ,Salary         。  Worker    ,        ,          
// test.cpp :              。
//
#include<iostream>
#include<string.h>
#include<string>

using namespace std;

class Salary{
private:
	double Wage,Subsidy,Rent,WaterFee,ElecFee;
	double RealSalary;
public:
	Salary(int wag=0,int s=0,int r=0,int wat=0,int ele=0){
		Wage=wag;Subsidy=s;Rent=r;WaterFee=wat;ElecFee=ele;
		RealSalary=Wage+Subsidy-Rent-WaterFee-ElecFee;
	}
	void setWage(int xx){Wage=xx;}
	void setSubsidy(int xx){Subsidy=xx;}
	void setRent(int xx){Rent=xx;}
	void setWaterFee(int xx){WaterFee=xx;}
	void setElecFee(int xx){ElecFee=xx;}
	double getWage(){return Wage;}
	double getSubsidy(){return Subsidy;}
	double getRent(){return Rent;}
	double getWaterFee(){return WaterFee;}
	double getElecFee(){return ElecFee;}
	double getRealSalary(){
		return RealSalary;
	}
};
class Worker{
private:
	static int numbers;
	char *name;
	int age;
	char *Dept;
	Salary salary;
public:
	Worker(const char* Name,int Age,const char* Department,int wag=0,int s=0,int r=0,int wat=0,int ele=0):salary(wag,s,r,wat,ele) {
		name=new char[strlen(Name)+1];
		Dept=new char[strlen(Department)+1];
		strcpy(Dept,Department);
		strcpy(name,Name);
		age=Age;
		numbers++;
	}
	void setName(const char *Name){
		name=new char[strlen(Name)+1];
		strcpy(name,Name);
	}
	void setAge(int a){
		age=a;
	}
	void setDept(const char *Department){
		Dept=new char[strlen(Department)+1];
		strcpy(Dept,Department);
	}
	void setSalary(int wag, int s, int r, int wat, int e){
		salary.setWage(wag);
		salary.setSubsidy(s);
		salary.setRent(r);
		salary.setWaterFee(wat);
		salary.setElecFee(e);
	};
	
	static int getNumbers(){
		return numbers;
	}
	char *getName(){
		return name;
	}
	char *getDept(){
		return Dept;
	}
	int getAge(){
		return age;
	}
	double getSalary(){
		return salary.getRealSalary();
	}
};
int Worker::numbers=0;

int main()
{
	
	Worker worker1("JayChen",19,"   ",3000,1000,500,100,50);
	Worker worker2("JayChen1",19,"   ",3000,1000,500,100,50);

	cout<<"worker1"<<endl;
	cout<<"name:      "<<worker1.getName()<<endl;
	cout<<"Department:"<<worker1.getDept()<<endl;
	cout<<"age:       "<<worker1.getAge()<<endl;
	cout<<"salary:    "<<worker1.getSalary()<<endl;
	
	

	return 0;
}