C++練習問題三10、11問題
2974 ワード
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;
}