【说明】 设计一个评选优秀教师和学生的程序,其类结构如图6所示。当输入一系列教师或学生的记录后,将优秀学生及教师的姓名列出来。
【程序】 #include<iostream.h> #include<stdio.h> enum boolean {False,True} class base { protected: char name[8]; public: void getname() {cout<<"姓名:" ;cin>>name; } void printname() {cout<<"姓名:"<<name<<endU3 virtual boolean isgood() =0; } class student: (1) { int num; public: void getnum() cout<<"考试成绩:" cin>>num; boolean isgood() {return (2) ;{ }; class teacher: (3) public base int num; public: void getnum() cout<<"每年发表论文数:" ;cin>>num; boolean isgood() {return (4) ;} }; void main() base* p[50]; student * pstud; teacher * ptech; char ch; int count =0; do cout<<"输入教师(t)或学生(s):" cin>>ch; if(ch ==’s’) { pstud = new student; pstud ->getname(); pstud ->getnum(); p[count ++ ] = pstud; } else if(ch == ’t’) { ptech = newteacher; ptech - >getname( ) ptech ->getnum(); p[count++]=ptech; } else cout<<"输入错误<<endl; cout<<"继续输入码(Y/n)"; cin>>ch; } while(ch == ’y’) for(int i=0;i<count;i++) { if( (5) ) //若为优秀,则输出 p[i]->printname(); } }