c++继承与类
(1)法一:
#include<iostream>
#include<string>
using namespace std;
class worker {
private:
double Wage, Subsidy, Rent, Waterfee, Elecfee;
string name;
string dept;
int age;
public:
void setname(string workername) { name = workername; }; //定义工人名字
void setdept(string workerdept) {dept= workerdept; }; //工人工作部门
void setage(int ag) { age = ag; }//工人年龄
string getname() { return name; }
string getdept() { return dept; }
int getage() { return age; }
worker(double w, double s, double r, double wf, double e) { Wage = w, Subsidy = s, Rent = r, Waterfee = wf, Elecfee = e; }
worker() { Wage = 0; Subsidy = 0; Rent = 0; Waterfee = 0; Elecfee = 0; }
void setwage(double f) { Wage = f; };
void setsubsidy(double f) { Subsidy = f; };
void setrent(double f) { Rent = f; };
void setwaterfee(double f) { Waterfee = f; };
void setelecfee(double f) { Elecfee = f; };
double getwage() { return Wage; }
double getsubsidy() { return Subsidy; }
double getrent() { return Rent; }
double getwaterfee() { return Waterfee; }
double getelecfee() { return Elecfee; }
double getrealwage() { return Wage + Subsidy - Rent - Waterfee - Elecfee; }//计算实发工资;
};
int main()
{
while (1) {
double w; double s, r, wf, e;
worker b;
string workername, workerdept;
int ag;
b.setwage(100);
static int count; //定义静态变量人数
cout << endl;
cout << "工人名字:"; cin >> workername; b.setname(workername);
cout << "工人工作部门:"; cin >> workerdept; b.setdept(workerdept);
cout << "工人年龄:"; cin >> ag; b.setage(ag);
cout << "输入基本工资:"; cin >> w; b.setwage(w);
cout << "输入岗位津贴:"; cin >> s; b.setsubsidy(s);
cout << "输入房租:"; cin >> r; b.setrent(r);
cout << "输入水费:"; cin >> wf; b.setwaterfee(wf);
cout << "输入电费:"; cin >> e; b.setelecfee(e);
cout << "工人名字:" << b.getname() << endl;
cout << "工作部门:" << b.getdept() << endl;
cout << "工人年龄:" << b.getage() << endl;
cout << "基本工资:" << b.getwage() << endl;
cout << "津贴:" << b.getsubsidy() << endl;
cout << "房租:" << b.getrent() << endl;
cout << "水费:" << b.getwaterfee() << endl;
cout << "电费:" << b.getelecfee() << endl;
cout << "实发工资:" << b.getrealwage() << endl;
count = count + 1;
cout << "人数:" << count;
}
return 0;
}
(2)法二:
#include<iostream>
#include<string>
using namespace std;
class Salary {
private:
double Wage, Subsidy, Rent, Waterfee, Elecfee;
public:
Salary(double w, double s, double r, double wf, double e) { Wage = w, Subsidy = s, Rent = r, Waterfee = wf, Elecfee = e; }
Salary() { Wage = 0; Subsidy = 0; Rent = 0; Waterfee = 0; Elecfee = 0; }
void setwage(double f) { Wage = f; };
void setsubsidy(double f) { Subsidy = f; };
void setrent(double f) { Rent = f; };
void setwaterfee(double f) { Waterfee = f; };
void setelecfee(double f) { Elecfee = f; };
double getwage() { return Wage; }
double getsubsidy() { return Subsidy; }
double getrent() { return Rent; }
double getwaterfee() { return Waterfee; }
double getelecfee() { return Elecfee; }
double getrealwage() { return Wage + Subsidy - Rent - Waterfee - Elecfee; }//计算实发工资;
};
class worker :public Salary{
private:
double Wage, Subsidy, Rent, Waterfee, Elecfee;
string name;
string dept;
int age;
public:
void setname(string workername) { name = workername; }; //定义工人名字
void setdept(string workerdept) { dept = workerdept; }; //工人工作部门
void setage(int ag) { age = ag; }//工人年龄
string getname() { return name; }
string getdept() { return dept; }
int getage() { return age; }
};
int main()
{
while (1) {
double w; double s, r, wf, e;
worker b;
string workername, workerdept;
int ag;
static int count; //定义静态变量人数
cout << endl;
cout << "工人名字:"; cin >> workername; b.setname(workername);
cout << "工人工作部门:"; cin >> workerdept; b.setdept(workerdept);
cout << "工人年龄:"; cin >> ag; b.setage(ag);
cout << "输入基本工资:"; cin >> w; b.setwage(w);
cout << "输入岗位津贴:"; cin >> s; b.setsubsidy(s);
cout << "输入房租:"; cin >> r; b.setrent(r);
cout << "输入水费:"; cin >> wf; b.setwaterfee(wf);
cout << "输入电费:"; cin >> e; b.setelecfee(e);
cout << "工人名字:" << b.getname() << endl;
cout << "工作部门:" << b.getdept() << endl;
cout << "工人年龄:" << b.getage() << endl;
cout << "基本工资:" << b.getwage() << endl;
cout << "津贴:" << b.getsubsidy() << endl;
cout << "房租:" << b.getrent() << endl;
cout << "水费:" << b.getwaterfee() << endl;
cout << "电费:" << b.getelecfee() << endl;
cout << "实发工资:" << b.getrealwage() << endl;
count = count + 1;
cout << "人数:" << count;
}
return 0;
}