- 2022-2023(1)C++程序设计实验7-by Lyx
- 编程题
- 1. 继承与派生-11章课后第9题
【问题描述】
分别声明Teacher(教师)类和Cadre(干部)类,采用多重继承方式由这两个类派生出新类Teacher_Cadre(教师兼干部)类。要求:
(1)在两个基类中都包含姓名、年龄、性别、地址、电话等数据成员;
(2)在Teacher类中还包含数据成员title(职称),在Cadre类中还包含数据成员post(职务),在Teacher_Cadre类中还包含数据成员wages(工资);
(3)对两个基类中的姓名、年龄、性别、地址、电话等数据成员用相同的名字,在引用这些数据成员时,指定作用域;
(4)在类体中声明成员函数,在类外定义成员函数;
(5)在派生类Teacher_Cadre的成员函数show中调用Teacher类中的display函数,输出姓名、年龄、性别、职称、地址、电话,然后再用cout语句输出职务与工资。
【输入形式】
姓名 年龄 性别 职称 地址 电话 工资
【输出形式】
姓名 年龄 性别 职称 地址 电话 工资
【样例输入】
ZhangSan 18 male lecturer TaishanRoad143 18633335555 principal 90000
【样例输出】
ZhangSan 18 male lecturer TaishanRoad143 18633335555 principal 90000
1. #include<iostream> 2. #include<string> 3. using namespace std; 4. class Teacher 5. { 6. protected: 7. string name; 8. int age; 9. string sex; 10. string address; 11. string phone; 12. string title; 13. public: 14. void display() 15. { 16. cout<<name<<" "<<age<<" "<<sex<<" "<<title<<" "<<address<<" "<<phone<<" "; 17. } 18. }; 19. class Cadre 20. { 21. protected: 22. string post; 23. public: 24. void display() 25. { 26. cout<<post<<" "; 27. } 28. }; 29. class Teacher_Cadre:public Teacher,public Cadre 30. { 31. private: 32. int wages; 33. public: 34. Teacher_Cadre(string Name,int Age,string Sex,string Title,string Address,string Phone,string Post,int Wages) 35. { 36. name=Name,age=Age,sex=Sex,title=Title,address=Address,phone=Phone,post=Post,wages=Wages; 37. } 38. void display() 39. { 40. Teacher::display(),Cadre::display(); 41. cout<<wages; 42. } 43. }; 44. int main() 45. { 46. string n,s,t,a,po,ph; 47. int ag,w; 48. cin>>n>>ag>>s>>t>>a>>ph>>po>>w; 49. Teacher_Cadre P(n,ag,s,t,a,ph,po,w); 50. P.display(); 51. return 0; 52. }