while(flag)
{
flag=0;
cout<<"必修课程“"<<(*student)[i].getName()<<"”的成绩(0-100):";
cin>>mark;
while(cin.fail())
{
//cout<<cin.fail()<<endl;
cin>>mark;
}
try{dynamic_cast<ObligatoryCourse &>((*student)[i]).setMark(mark);}
catch(ExceptionCourse a)
{
cout<<"\n"<<a.what();
a.print();
cout<<"\n";
flag=1;
}
}