求用c++程序设计以下题目:

2025-04-09 00:31:29
推荐回答(1个)
回答1:

这完全是体力活 没有任何技术含量

从头往下写就行了

弄个简单点的 给你参考吧

people里面我加了两个属性 name和age

不需要可以拿掉

#include 
#include 

using namespace std;

class people
{
public:
char name[10];
int age;
people(char *n, int a):age(a){strcpy(name, n);}
void print(){cout << "people: "<< name << " " << age << endl;}
};

class student:public virtual people
{
public:
char classNO[7];
student(char *name, int age, char *c):people(name, age){strcpy(classNO, c);}
void print(){cout << "student: "<< name << " " << age << " " << classNO << endl;}
};

class teacher:public virtual people
{
public:
char pship[11];
char departt[21];
teacher(char *name, int age, char *p, char *d):people(name, age)
{
strcpy(pship, p);
strcpy(departt, d);
}
void print(){cout << "teacher: "<< name << " " << age << " " << pship << " " << departt << endl;}
};

class graduate:public virtual student
{
public:
char subject[21];
teacher adviser;
graduate(char *name, int age, char *classNO, char *s, teacher t):people(name, age), student(name, age, classNO), adviser(t)
{
strcpy(subject, s);
}
void print()
{
cout << "graduate: "<< name << " " << age << " " << classNO << " " << subject << endl;
cout << "adviser ";
adviser.print();
}
};

class TA:public graduate ,public teacher 
{
public:
TA(char *name, int age, char * classNO, char *subject, teacher t, char *pship, char *depart):
people(name, age), student(name, age, classNO),
graduate(name, age, classNO, subject, t), teacher(name, age, pship, depart)
{}
void print(){
cout << "TA:" << name << " " << age << " " << classNO << " " << subject << " " << pship << " " << departt<< endl;
cout << "adviser ";
adviser.print();
}
};
int main()
{
people p("li", 10);
p.print();
student s("zh", 15, "1010");
s.print();
teacher t("ya", 35, "ship", "dep");
t.print();
graduate g("gg", 22, "1111", "subj", t);
g.print();
TA T("ta", 30, "1234", "subj1", t, "psh1", "dep1");
T.print();
}