1. 程式人生 > >第十二週專案二教師兼幹部類

第十二週專案二教師兼幹部類

/*
 * Copyright (c) 2014, 煙臺大學計算機學院
 * All rights reserved.
 * 作    者:紀麗娜
 * 完成日期:2014 年05月13日
 * 版 本 號:v1.0
 * 問題描述:
(第11章習題9)分別定義Teacher(教師)類和Cadre(幹部)類,
採用多重繼承方式由這兩個類派生出新類Teacher_Cadre(教師兼幹部)。要求:
(1)在兩個基類中都包含姓名、年齡、性別、地址、電話等資料成員。
(2)在Teacher類中還包含資料成員title(職稱),在Cadre類中還包含資料成員post(職務),
在Teacher_Cadre類中還包含資料成員wages(工資)。
(3)對兩個基類中的姓名、年齡、性別、地址、電話等資料成員用相同的名字,
在引用這些資料成員時,指定作用域。
(4)在類體中宣告成員函式,在類外定義成員函式。
(5)在派生類Teacher_Cadre的成員函式show中呼叫Teacher類中的display函式,
輸出姓名、年齡、性別、職稱、地址、電話,然後再用cout語句輸出職務與工資。
*/
#include <iostream>
using namespace std;
class Teacher
{
   protected:
      string name;
      int age;
      int sex; //1代表男的,0代表女的
      string addr;
      string title;
  public:
     Teacher(string nam,int ag,int se,string ad,string tit):name(nam),age(ag),sex(se),addr(ad),title(tit){}
     void display();
};
void Teacher::display()
{
    cout<<"name: "<<name<<endl;
    cout<<"age: "<<age<<endl;
    cout<<"sex: ";
    (sex==1)?cout<<"man\n":cout<<"woman\n";//1代表男的,0代表女的
    cout<<"addr: "<<addr<<endl;
    cout<<"title: "<<title<<endl;
}


class  Cadre
{
protected:
      string name;
      int age;
      int sex; //1代表男的,0代表女的
      string addr;
      string post;
public:
    Cadre (string nam,int ag,int se,string ad,string pos):name(nam),age(ag),sex(se),addr(ad),post(pos){}
    void display();
};
void Cadre::display()
{
    cout<<"name: "<<name<<endl;
    cout<<"age: "<<age<<endl;
    cout<<"sex: ";
    (sex==1)?cout<<"man\n":cout<<"woman\n"; //1代表男的,0代表女的
    cout<<"addr: "<<addr<<endl;
    cout<<"post:"<<post<<endl;
}


class  Teacher_Cadre: public Teacher,public Cadre
{
protected:
    int wage;
public:
    Teacher_Cadre(string nam,int ag,int se,string ad,string tit,string pos,int wa):
    Teacher(nam,ag,se,ad,tit),Cadre(nam,ag,se,ad,pos),wage(wa){}
    void show();
};

void Teacher_Cadre::show()
{
    Teacher::display();
    cout<<"post:"<<post<<endl;
    cout<<"wages: "<<wage<<endl;
}
int main()
{
    Teacher_Cadre lk("nanana",23,1,"dezhouxiajin","mkf","CEO",450000);
    cout<<"1 , Teacher_Cadre: "<<endl;
    lk.show();
    cout<<"2 , Cadre: "<<endl;
    Cadre ln("lklklk",22,0,"lyilyi","CEO");
    ln.display();
    cout<<"3 , Teacher: "<<endl;
    Teacher erbi("cccddd",21,1,"dezhouxiajin","CEO");
    erbi.display();
    return 0;

}