从Student类和Teacher类多重派生Graduate类

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_27928585/article/details/80236686

题目内容:

已知基类Person定义如下:
class Person
{
char Name[10];
char Sex[10];
int Age;
public:
void Register(char *name,int age,char *sex);
void ShowMe();
};
请通过继承的方法建立两个派生类,其中
派生类Teacher:
1.新增的数据成员有:
char Dept[20];
int Salary;
2.新增的成员函数有:
Teacher(char *name,int age,char *sex,char *dept,int salary);
void Show() //显示新增数据成员
派生类Student:
1.新增的数据成员有:
char ID[12];
char Class[12];
2.新增的成员函数有:
Student(char *name,int age,char *sex,char *ID,char *Class);
void Show()//显示新增数据成员
请通过继承的方法从Teacher和Student中建立派生类Graduate,其中
1.新增的成员函数有:
Graduate(char *name,int age,char *sex,char *dept,int salary,char *id,char *classid);
2.重写的成员函数有:
void ShowMe()//显示数据成员,要求调用基类的Show和ShowMe
在主程序中建立一个派生类Graduate的对象,利用成员函数显示对象的数据成员。

输入格式:

Graduate对象的初始化信息

输出格式:

按照输出样例格式输出Graduate对象的信息

输入样例:

李木子 22 f 电信学院 2300 04035003 硕401

输出样例:

班级 硕401
学号 04035003
姓名 李木子
性别 女
年龄 22
工作单位 电信学院
月薪 2300

时间限制:500ms内存限制:32000kb


#include<iostream>
#include <cstring>
using namespace std;

class Person
{
private:
    char Name[10];
    char Sex[10];
    int Age;
public:
    void Register(char *name,int age,char *sex)
    {
        strcpy(Name, name);
        Age = age;
        strcpy(Sex, sex);
    };
    void ShowMe()
    {
        cout<<"姓名 "<<Name<<endl;
        if(Sex[0] == 'f')
        {
            cout<<"性别 "<<"女"<<endl;
        }
        else
        {
            cout<<"性别 "<<"男"<<endl;
        }
        cout<<"年龄 "<<Age<<endl;
    };
};

class Teacher:public Person
{
private:
    char Dept[20];
    int Salary;
public:
    Teacher(char *name,int age,char *sex,char *dept,int salary)
    {
        Register(name, age, sex);
        strcpy(Dept, dept);
        Salary = salary;
    };
    void Show()
    {
        cout<<"工作单位 "<<Dept<<endl;
        cout<<"月薪 "<<Salary<<endl;
    };//显示新增数据成员
};

class Student:public Person
{
private:
    char ID[12];
    char Class[12];
public:
    Student(char *name,int age,char *sex,char *ID,char *Class)
    {
        Register(name, age, sex);
        strcpy(this->ID, ID);
        strcpy(this->Class, Class);
    };
    void Show()
    {
        cout<<"班级 "<<Class<<endl;
        cout<<"学号 "<<ID<<endl;
    };//显示新增数据成员
};


class Graduate:public Teacher,public Student
{
public:
    Graduate(char *name,int age,char *sex,char *dept,int salary,char *id,char *classid):Student(name,age,sex,id,classid),Teacher(name,age,sex,dept,salary)
    {

    };
    void ShowMe()
    {
        Student::Show();
        Student::ShowMe();
        Teacher::Show();
    };
};

int main()
{
    char name[10],sex[10],dept[20],id[12],classid[12];
    int age,salary;
    cin>>name>>age>>sex>>dept>>salary>>id>>classid;
    Graduate g(name,age,sex,dept,salary,id,classid);
    g.ShowMe();
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_27928585/article/details/80236686