如下图所示,构造一个Staff员工类为虚基类含有数据成员姓名、年龄、性别、地址、电话,派生出教师类Teacher增加数据成员职称和干部类Cader增加数据成员职务,派生出教师干部类Teacher_Cader增加数据成员工资,要求:
(1)在类中设计void input()和void output()函数实现数据的录入和输出。
(2)设计主程序显示教师干部信息。
已有部分代码,请按题修改一下
#include<iostream>
#include<string>
using namespace std;
class Teacher
{
public:
Teacher(string name1,int age1,string sex1,string title1,string addr1,string tel1)
{
name=name1;
age=age1;
sex=sex1;
title=title1;
addr=addr1;
tel=tel1;
}
void display();
protected:
string name;
int age;
string sex;
string title,addr,tel;
};
void Teacher::display()
{
cout<<"姓名:"<<name<<endl;
cout<<"年龄:"<<age<<endl;
cout<<"性别:"<<sex<<endl;
cout<<"职称:"<<title<<endl;
cout<<"地址:"<<addr<<endl;
cout<<"电话:"<<tel<<endl;
}
class Cadre
{
public:
Cadre(string name1,int age1,string sex1,string post1,string addr1,string tel1);
void display();
protected:
string name;
int age;
string sex;
string post;
string addr;
string tel;
};
Cadre::Cadre(string name1,int age1,string sex1,string post1,string addr1,string tel1):name(name1),age(age1),sex(sex1),post(post1),addr(addr1),tel(tel1)
{
}
void Cadre::display()
{
cout<<"姓名:"<<name<<endl;
cout<<"年龄:"<<age<<endl;
cout<<"性别:"<<sex<<endl;
cout<<"职务:"<<post<<endl;
cout<<"地址:"<<addr<<endl;
cout<<"电话:"<<tel<<endl;
}
class Person:public Teacher,public Cadre
{
public:
Person(string name1,int age1,string sex1,string title1,string post1,string address1,string tel1,float wages1);
void show()
{
Teacher::display();
cout<<"职务:"<<Cadre::post<<endl;
cout<<"工资:"<<wages<<endl;
}
protected:
float wages;
};
Person::Person(string name1,int age1,string sex1,string title1,string post1,string address1,string tel1,float wages1):Teacher(name1,age1,sex1,title1,address1,tel1),Cadre(name1,age1,sex1,post1,address1,tel1),wages(wages1)
{
}
int main()
{
Person person1("小明",18,"男","教授","部长","资阳","18080594922",950000);
person1.show();
system("pause");
return 0;
}