第十二周【项目1 - 教师兼干部类】

骑猪看日落 2022-08-04 17:29 203阅读 0赞
  1. 问题及代码:
  2. /* 【项目1 - 教师兼干部类】
  3. *Copyright (c) 2014,烟台大学计算机学院
  4. *ALL right reserved
  5. *文件名: 教师兼干部类
  6. *作者;童宇
  7. *完成日期:2015 年 5月 24日
  8. *版本号v1.0
  9. *问题描述:
  10. 分别定义Teacher(教师)类和Cadre(干部)类,采用多重继承方式由这两个类派生出新类Teacher_Cadre(教师兼干部)。
  11. *输入描述:
  12. (1)在两个基类中都包含姓名、年龄、性别、地址、电话等数据成员。
  13. (2)在Teacher类中还包含数据成员title(职称),在Cadre类中还包含数据成员post(职务),在Teacher_Cadre类中还包含数据成员wages(工资)。
  14. (3)对两个基类中的姓名、年龄、性别、地址、电话等数据成员用相同的名字,在引用这些数据成员时,指定作用域。
  15. (4)在类体中声明成员函数,在类外定义成员函数。
  16. (5)在派生类Teacher_Cadre的成员函数show中调用Teacher类中的display函数,输出姓名、年龄、性别、职称、地址、电话,然后再用cout语句输出职务与工资。
  17. *程序输出:
  18. */
  19. #include <iostream>
  20. using namespace std;
  21. class Teacher
  22. {
  23. protected:
  24. string name;
  25. int age;
  26. char sex;
  27. string ad;
  28. string tel;
  29. string title;
  30. public:
  31. Teacher(string ,int ,char ,string ,string ,string );
  32. void display();
  33. };
  34. Teacher::Teacher(string name,int age,char sex,string ad,string tel,string title): name(name),age(age),sex(sex),ad(ad),tel(tel),title(title) { }
  35. void Teacher::display()
  36. {
  37. cout<<"name:"<<name<<endl;
  38. cout<<"age:"<<age<<endl;
  39. cout<<"sex:"<<sex<<endl;
  40. cout<<"address:"<<ad<<endl;
  41. cout<<"tel:"<<tel<<endl;
  42. cout<<"title:"<<title<<endl;
  43. }
  44. class Cadre
  45. {
  46. protected:
  47. string name;
  48. int age;
  49. char sex;
  50. string ad;
  51. string tel;
  52. string post;
  53. public:
  54. Cadre(string ,int ,char ,string ,string ,string );
  55. };
  56. Cadre::Cadre(string name,int age,char sex,string ad,string tel,string post): name(name),age(age),sex(sex),ad(ad),tel(tel),post(post) { }
  57. class Teacher_Cadre:public Teacher,public Cadre
  58. {
  59. public:
  60. Teacher_Cadre(string name,int age,char sex,string title,string post,string ad,string tel,float wages);
  61. void show( );
  62. private:
  63. double wages;
  64. };
  65. Teacher_Cadre::Teacher_Cadre(string name,int age,char sex,string title,string post,string ad,string tel,float wages):Teacher(name,age,sex,title,ad,tel),Cadre(name,age,sex,post,ad,tel),wages(wages) {}
  66. void Teacher_Cadre::show( )
  67. {
  68. Teacher::display();
  69. cout<<"post:"<<Cadre::post<<endl;
  70. cout<<"wages:"<<wages<<endl;
  71. }
  72. int main()
  73. {
  74. Teacher_Cadre te_ca("ZhengQu-Wang",20,'f',"prof.","president","135 Beijing Road,Shanghai","(021)61234567",1534.5);
  75. te_ca.show( );
  76. return 0;
  77. }

运行结果:

Center

发表评论

表情:
评论列表 (有 0 条评论,203人围观)

还没有评论,来说两句吧...

相关阅读