学生类
#include<iostream>
using namespace std;
class student
{
protected:
string name;
int id;
public:
student(){}
student(string n,int i):name(n),id(i){}
void setnameid()
{
cin >> name >> id;
}
void displaynameid()
{
cout << "姓名:" << name << " " << "学号:" <<id<< endl;
}
virtual void setmajor() = 0;
virtual string getmajor() = 0;
virtual void setadvisor() = 0;
virtual string getadvisor() = 0;
};
class understud:public student
{
protected:
string subject;
public:
understud(){}
understud(string n,int i,string s):student(n,i),subject(s){}
void setmajor()
{
cin >> subject;
}
string getmajor()
{
return subject;
}
};
class poststu :public understud
{
private:
string advitor;
public:
poststu(string n="***",int i=-1,string s="###",string a="&&&"):understud(n,i,s),advitor(a){}
void setadvisor()
{
cin >> advitor;
}
string getadvisor()
{
return advitor;
}
};
int main()
{
int n;
cin >> n;
if (n == 0)
{
poststu p;
student* s1 = &p;
s1->displaynameid();
cout << s1->getmajor() << endl;
cout << s1->getadvisor() << endl;
}
else
{
poststu p;
student* s1 = &p;
s1->setnameid();
s1->setmajor();
s1->setadvisor();
s1->displaynameid();
cout << s1->getmajor() << endl;
cout<<s1->getadvisor()<<endl;
}
}

浙公网安备 33010602011771号