C++程序。关于类的继承和派生的

假设高校中人员有学生,普通教师,教授3类人员,学生分不同专业方向的,普通教师分布在不同的系,教授是特殊的教员,不同的教授分级别,如果普通教员在职学习,则他兼有教师和学生身... 假设高校中人员有学生,普通教师,教授3类人员,学生分不同专业方向的,普通教师分布在不同的系,教授是特殊的教员,不同的教授分级别,如果普通教员在职学习,则他兼有教师和学生身份,需要用到类之间的继承关系,编写程序,能根据输入的姓名输出对应人员的信息。 展开
 我来答
百度网友995f2ea
2012-06-10 · TA获得超过113个赞
知道小有建树答主
回答量:160
采纳率:0%
帮助的人:250万
展开全部
#include<iostream>
#include<string>
using namespace std;
class People
{
public:
virtual void input() =0;
virtual void output() =0;
People(string n="name"):name(n){}
protected:
string name;
};
class Student:virtual public People
{
public:
void input();
void output();
Student(string m="major",string n="name"):major(m),People(n){}
protected:
string major;
};
void Student::input()
{
cout<<"输入学生信息:"<<endl;
cout<<"姓名:";
cin>>name;
cout<<"专业:族仿";
cin>>major;
}
void Student::output()
{
cout<<"学生姓名:"<<name<<" 专业:"<<major<<endl;
}
class ComTeacher:virtual public People
{
public:
void input();
void output();
ComTeacher(string d="department",string n="name"):department(d),People(n){}
protected:
string department;
};
void ComTeacher::input()
{
cout<<"输入普通教师信息:"<<endl;
cout<<"姓名:";
cin>>name;
cout<<"系:";
cin>>department;
}
void ComTeacher::output()
{
cout<<"普通教师姓名:"<<name<<" 系:"<<department<<endl;
}
class Professor:public People
{
public:
void input();
void output();
Professor(string l="level",string n="name"):level(l),People(n){}
private:
string level;
};
void Professor::input()
{
cout<<"输入教授信息:"<<endl;
cout<<"姓名:";
cin>>name;
cout<<"级别:";
cin>>level;
}
void Professor::output()
{
cout<<"教授姓名:"<<name<<" 级别:"源穗枣<<level<<endl;
}
class ComInstructor:public Student,public ComTeacher
{
public:
void input();
void output();
ComInstructor(string n="name",string m="major",string d="department"):People(n),Student(m,n),ComTeacher(d,n){}
};
void ComInstructor::input()
{
cout<<"输入普通教员信息:"<<endl;
cout<<"姓名:";
cin>>name;
cout<<"专业:";
cin>>major;
cout<<"系";
cin>>department;
}
void ComInstructor::output()
{
cout<<"教授姓名:"<<name<<" 专业:"<<major<<" 系:"<<department<<endl;
}
int main()
{
Student stu;
ComTeacher comtea;
Professor pro;
ComInstructor comins;
People * p;

p=&stu;雹拆
p->input();
p->output();

p=&comtea;
p->input();
p->output();

p=&pro;
p->input();
p->output();

p=&comins;
p->input();
p->output();

return 0;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式