C++実習7


ユーザクラスの継承
実習7は、まず、ユーザクラスpersonをベースクラスとして設計し、そのデータメンバーは名前と身分証明書番号であり、データメンバーのアドレスと年齢を含み、メンバー関数には入力データと表示データがある.personの派生クラスの学生studentを生成し、studentはデータメンバーの電話番号とC++成績を含み、メンバー関数には入力データと表示データがある.学生成績クラスscoreを設計し、studentクラスとaddクラスの派生クラスであり、2つのクラスのすべての属性を継承し、scoreクラス自体にはデータメンバーの数学成績と英語成績があり、メンバー関数には入力データと表示データがある.職員クラスemployeeはpersonクラスを継承し、クラスにはメンバーがいません.メインプログラムを作成して実行結果を観察します.
#include
#include
#include
using namespace std;

class People{
public:
    People(){}
    People(char*,char* );
    void Input();
    void Display();
    ~People(){ cout << "  People     " << endl;}
private:
    char _name[32];
    char _id[20];       

};
People::People(char*m,char* i){
    strcpy(_name,m);
    strcpy(_id,i);
}
void People::Input(){
    cout<<"     :"; 
    cin.getline(_name,32);
    cout<<"       :";
    cin>>_id;
}
void People::Display(){
    cout<<"  :"<<_name class="hljs-built_in">cout<<"   :"<class Add{
public:
    Add(){}
    Add(char*, int );
    void AddInput();
    void Display(); 
    ~Add()  {cout << "  Add     "<< endl;}
private:
    char size[32];
    int age;
};
Add::Add(char*A_size,int A_age){
    strcpy(size,A_size);
    age=A_age;
}
void Add::AddInput(){
    cout<<"     :"; 
    scanf("%s",size);
    cout<<"     :";
    cin>>age;
}
void Add::Display(){
    cout<<"  :"<cout<<"  :"<class Student:virtual public People{
public:
    Student(){}
    Student(char *m,char* i,char* t,float cpp):People(m,i)  {strcpy(tell,t);cppgrate=cpp;}
    void StuImput();
    void Display(); 
public:
    char tell[15];
    int cppgrate;
};
void Student::StuImput(){
    cout<<"    :";
    scanf("%s",tell);
    cout << "  c++  :";
    cin >>cppgrate; 
}
void Student::Display(){
    cout<<"  :"<cout<<"c++  :"<class Score :virtual public Student,public Add{
public:
    Score(){}
//  Score(char *m="\0",float i=0,float t=0,float cpp=0,char*A_size="\0",int A_age=0,float math=0,float english=0):Student(m,i,t,cpp),Add(A_size,A_age){mathgrate=math;enggrate=english;}
    Score(char *m,char* i,char* t,float cpp,char*A_size,int A_age,float math,float english):Student(m,i,t,cpp),Add(A_size,A_age)
    {
        mathgrate=math;
        enggrate=english;   
    }
//  Score();
    void Input();
    void Display(); 

private:
    int mathgrate;
    int enggrate;
};
void Score::Input(){
    cout<<"      :";
    cin >>mathgrate;
    cout<<"      :";
    cin >>enggrate;
}
void Score::Display(){
    cout<<"    :"<cout<<"    :"<class Employee :virtual public People{

};

int main()
{

    Score tangyh;
    tangyh.People::Input();
    tangyh.StuImput();
    tangyh.AddInput();
    tangyh.Input();

    tangyh.People::Display();
    tangyh.Add::Display();
    tangyh.Student::Display();
    tangyh.Display();

    Employee s;
    s.Input();
    s.Display();

    Add a;
    a.AddInput();
    a.Display();
    Student st;
    st.Input();
    st.StuImput();
    st.Display();
    st.People::Display();


    return 0;   
}

クラス#クラス#
機能
Peopleクラス
データ・メンバー名、ID、入出力
Addクラス
データメンバーアドレス、携帯番号、入出力
Studentクラス
peopleクラスの新しい追加データメンバー年齢、Cpp成績を継承し、入出力
Scoreクラス
studentクラスとaddクラスを継承数学英語成績入出力を追加
Employeeクラス
peopleクラス空クラスの継承