baidu_34564873 2016-05-10 05:16 采纳率: 33.3%
浏览 1080
已结题

求大神帮忙看看这段代码的问题在哪,求修改一下

图片说明这是题目,代码如下:

#include
#include
using namespace std;

class People
{
public:
People(const string&NO,const string&name,const string&sex,const string&IDNO,const string&Birthday);
virtual void show()=0;
protected:
string name,sex,NO,IDNO,Birthday;
};

class Student:virtual public People
{
public:
Student(const string&NO,const string&name,const string&sex,const string&IDNO,const string&Birthday,int ClassNO);
void show();
protected:
int ClassNO;

};

class Teacher:virtual public People
{
public:
Teacher(const string&NO,const string&name,const string&sex,const string&IDNO,const string&Birthday,const string&principalship,const string&Department);
void show();
protected:
string principalship,Department;

};

class Graduate:virtual public Student
{
public:
Graduate(const string&NO,const string&name,const string&sex,const string&IDNO,const string&Birthday,int ClassNO,const string&Subject,const Teacher&Teacheradviser);
void show();
protected:
string Subject;
Teacher Teacheradviser;
};

class TA:public Graduate,public Teacher
{
public:
TA(const string&NO,const string&name,const string&sex,const string&IDNO,const string&Birthday,int ClassNO,const string&Subject,const Teacher&Teacheradviser,const string&principalship,const string&Department);
void show();
};

People::People(const string&NO,const string&name,const string&sex,const string&IDNO,const string&Birthday)
:NO(NO),name(name),sex(sex),IDNO(IDNO),Birthday(Birthday){}

Student::Student(const string&NO,const string&name,const string&sex,const string&IDNO,const string&Birthday,int ClassNO)
:People(name,sex,NO,IDNO,Birthday),ClassNO(ClassNO){}

Teacher::Teacher(const string&NO,const string&name,const string&sex,const string&IDNO,const string&Birthday,const string&principalship,const string&Department)
:People(name,sex,NO,IDNO,Birthday),principalship(principalship),Department(Department){}

Graduate::Graduate(const string&NO,const string&name,const string&sex,const string&IDNO,const string&Birthday,int ClassNO,const string&Subject,const Teacher&Teacheradviser)
:Student(name,sex,NO,IDNO,Birthday,ClassNO),Subject(Subject),Teacheradviser(Teacheradviser){}

TA::TA(const string&NO,const string&name,const string&sex,const string&IDNO,const string&Birthday,int ClassNO,const string&Subject,const Teacher&Teacheradviser,const string&principalship,const string&Department)
:Graduate(name,sex,NO,IDNO,Birthday,ClassNO,Subject,Teacheradviser),Teacher(name,sex,NO,IDNO,Birthday,principalship,Department){}

void Student::show()
{
cout<<" name: "<<name<<" sex: "<<sex<<" NO: "<<NO<<" IDNO: "<<IDNO<<"Birthday:"<<Birthday<<"ClassNO:"<<ClassNO<<endl;
}

void Teacher::show()
{
cout<<" name: "<<name<<" sex: "<<sex<<" NO: "<<NO<<" IDNO: "<<IDNO<<"Birthday:"<<Birthday<<"principalship:"<<principalship<<"Department:"<<Department<<endl;
}

void Graduate::show()
{
cout<<" name: "<<name<<" sex: "<<sex<<" NO: "<<NO<<" IDNO: "<<IDNO<<"Birthday:"<<Birthday<<"ClassNO:"<<ClassNO<<"Subject:"<<Subject<<"Teacheradviser:"<<Teacheradviser<<endl;
}

void TA::show()
{
cout<<" name: "<<name<<" sex: "<<sex<<" NO: "<<NO<<" IDNO: "<<IDNO<<"Birthday:"<<Birthday<<"ClassNO:"<<ClassNO<<"Subject:"<<Subject<<"Teacheradviser:"<<Teacheradviser<<"principalship:"<<principalship<<"Department:"<<Department<<endl;
}

int main()

{

Student p1("张三","男","1","532931199001150031","1990-01-15",3);
Teacher p2("李四","女","2","532931199001150041","1990-01-15","班主任","英语部");
Graduate p3("王五","男","3","532931199001150051","1990-01-15",3,"计科","李四");
TA p4("赵六","男","4","532931199001150061","1990-01-15",3,"计科","李四","助教","信息部");
p1.show();

p2.show();
p3.show();
p4.show();
return 0;

}


  • 写回答

1条回答 默认 最新

  • 小灸舞 2016-05-10 06:47
    关注

    问题有点多:
    1.构造p3和p4的时候传参不对
    2.不能直接这样<<Teacheradviser,因为你没有重载过<<
    3.构造函数也不对
    PS:稍微帮楼主改了下

     #include<iostream>
    #include<string>
    using namespace std;
    class People
    {
    public:
        People(const string&NO,const string&name,const string&sex,const string&IDNO,const string&Birthday);
        People(){}
        virtual void show()=0;
    protected:
        string NO,name,sex,IDNO,Birthday;
    };
    class Student:virtual public People
    {
    public:
        Student(){}
        Student(const string&NO,const string&name,const string&sex,const string&IDNO,const string&Birthday,int ClassNO);
        void show();
    protected:
        int ClassNO;
    };
    class Teacher:virtual public People
    {
    public:
        Teacher(const string&NO,const string&name,const string&sex,const string&IDNO,const string&Birthday,const string&principalship,const string&Department);
        void show();
    protected:
        string principalship,Department;
    };
    class Graduate:virtual public Student
    {
    public:
        Graduate(const string&NO,const string&name,const string&sex,const string&IDNO,const string&Birthday,int ClassNO,const string&Subject,const Teacher&Teacheradviser);
        void show();
    protected:
    
        Teacher Teacheradviser;
        string Subject;
    };
    class TA:public Graduate,public Teacher
    {
    public:
        TA(const string&NO,const string&name,const string&sex,const string&IDNO,const string&Birthday,int ClassNO,const string&Subject,const Teacher&Teacheradviser,const string&principalship,const string&Department);
        void show();
    };
    People::People(const string&NO,const string&name,const string&sex,const string&IDNO,const string&Birthday)
        :NO(NO),name(name),sex(sex),IDNO(IDNO),Birthday(Birthday){}
    Student::Student(const string&NO,const string&name,const string&sex,const string&IDNO,const string&Birthday,int ClassNO)
        :People(name,sex,NO,IDNO,Birthday),ClassNO(ClassNO)
    {
        this->NO = NO;
        this->name = name;
        this->sex = sex;
        this->IDNO = IDNO;
        this->Birthday = Birthday;
        this->ClassNO = ClassNO;
    }
    Teacher::Teacher(const string&NO,const string&name,const string&sex,const string&IDNO,const string&Birthday,const string&principalship,const string&Department)
        :People(name,sex,NO,IDNO,Birthday),principalship(principalship),Department(Department)
    {
        this->NO = NO;
        this->name = name;
        this->sex = sex;
        this->IDNO = IDNO;
        this->Birthday = Birthday;
    }
    Graduate::Graduate(const string&NO,const string&name,const string&sex,const string&IDNO,const string&Birthday,int ClassNO,const string&Subject,const Teacher&Teacheradviser)
        :Student(name,sex,NO,IDNO,Birthday,ClassNO),Subject(Subject),Teacheradviser(Teacheradviser)
    {
        this->NO = NO;
        this->name = name;
        this->sex = sex;
        this->IDNO = IDNO;
        this->Birthday = Birthday;
        this->ClassNO = ClassNO;
    }
    TA::TA(const string&NO,const string&name,const string&sex,const string&IDNO,const string&Birthday,int ClassNO,const string&Subject,const Teacher&Teacheradviser,const string&principalship,const string&Department)
        :Graduate(name,sex,NO,IDNO,Birthday,ClassNO,Subject,Teacheradviser),Teacher(name,sex,NO,IDNO,Birthday,principalship,Department)
    {
        this->NO = NO;
        this->name = name;
        this->sex = sex;
        this->IDNO = IDNO;
        this->Birthday = Birthday;
        this->ClassNO = ClassNO;
    }
    void Student::show()
    {
        cout<<" name: "<<name<<" sex: "<<sex<<" NO: "<<NO<<" IDNO: "<<IDNO<<" Birthday:"<<Birthday<<" ClassNO:"<<ClassNO<<endl;
    }
    void Teacher::show()
    {
        cout<<" name: "<<name<<" sex: "<<sex<<" NO: "<<NO<<" IDNO: "<<IDNO<<" Birthday:"<<Birthday<<" principalship:"<<principalship<<" Department:"<<Department<<endl;
    }
    void Graduate::show()
    {
        cout<<" name: "<<name<<" sex: "<<sex<<" NO: "<<NO<<" IDNO: "<<IDNO<<" Birthday:"<<Birthday<<" ClassNO:"<<ClassNO<<" Subject:"<<Subject<<endl;
    }
    void TA::show()
    {
        cout<<" name: "<<name<<" sex: "<<sex<<" NO: "<<NO<<" IDNO: "<<IDNO<<" Birthday:"<<Birthday<<" ClassNO:"<<ClassNO<<" Subject:"<<Subject<<" principalship:"<<principalship<<" Department:"<<Department<<endl;
    }
    int main()
    {
    
        Student p1("1","张三","男","532931199001150031","1990-01-15",3); 
        Teacher p2("2","李四","女","532931199001150041","1990-01-15","班主任","英语部");
        Graduate p3("3","王五","男","532931199001150051","1990-01-15",3,"计科",p2);
        TA p4("4","赵六","男","532931199001150061","1990-01-15",3,"计科",p2,"助教","信息部");
        p1.show();
    
        p2.show();
        p3.show();
        p4.show();
        return 0;
    
    }
    

    图片说明

    评论

报告相同问题?

悬赏问题

  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 关于#python#的问题:自动化测试