【5.18】编写一个学生和教师数据输入和显示程序
#include<iostream>
using namespace std;
class person {
public:
void input()
{ cout<<" 编号:"; cin>>no;
cout<<" 姓名: "; cin>>name;
}
void disp()
{ cout<<" 编号:"<<no<<endl;
cout<<" 姓名: "<<name<<endl;
}
private:
int no;
char name[10];
};
class student:public person{
public:
void input()
{ person::input();
cout<<" 班号:";
cin>>depart;
cout<<" 成绩:";
cin>>degree;
}
void disp()
{ person::disp();
cout<<" 班号:"<<depart<<endl;
cout<<" 成绩:"<<degree<<endl;
}
private:
char depart[6];
int degree;
};
class teacher:public person{
private:
char prof[10];
char depart[10];
public:
void input()
{ person::input();
cout<<" 职称:";
cin>>prof;
cout<<" 部门:";
cin>>depart;
}
void disp()
{ person::disp();
cout<<" 职称:"<<prof<<endl;
cout<<" 部门:"<<depart<<endl;
}
};
int main()
{ student student1;
teacher teacher1;
cout<<" 输入一个学生数据:\n";
student1.input();
cout<<" 输入一个教师数据:\n";
teacher1.input();
cout<<" 显示一个学生数据:\n";
student1.disp();
cout<<" 显示一个教师数据:\n";
teacher1.disp();
return 0;
}
【5.19】设计一个虚基类base,包括姓名和年龄私有数据成员以及相关的成员函数
#include<iostream>
#include<string>
using namespace std;
class base
{
string name;
int age;
public:
base(string a,int b)
{
name=a;
age=b;
}
void show()
{
cout<<"name:"<<name<<endl;
cout<<"age:"<<age<<endl;
}
};
class leader:virtual private base
{
string major;
string department;
public:
leader(string a,int b,string c,string d):base(a,b)
{
major=c;
department=d;
}
void show()
{
base::show();
cout<<" 职务:"<<major<<endl;
cout<<"部门:"<<department<<endl;
}
};
class engieer:virtual public base
{
private:
string job;
string major;
public:
engieer(string a,int b,string c,string d):base(a,b),job(c),major(d)
{}
void show()
{
cout<<"职称:"<<job<<endl;
cout<<"专业:"<<major<<endl;
}
};
class chairman:private leader,private engieer
{
public:
chairman(string a,int b,string c,string d,string i,string j):base(a,b),leader(a,b,c,d),engieer(a,b,c,d)
{}
void show()
{
leader::show();
engieer::show ();
}
};
int main()
{
leader a("lxs",18,"经理","管理");
a.show();
engieer b("ccc",18,"C++工程","管理");
b.base::show();
b.show();
chairman chairman1("123",18,"经理","工程","IT","管理");
chairman1.show();
return 0;
}