c++代码9
程序员文章站
2022-07-13 23:46:06
...
9.设计评选优秀教师和优秀学生候选人的程序。如果学生的分数大于 90,则可评为优秀生;如果教师发 表的论文数大于 3,则可评为优秀教师。具体要求如下:
(1)定义基类Base:
①保护数据成员 char name[8]; //存放姓名
int num; //存放分数或论文数
②公有成员函数 Base( ): 构造函数,输入姓名;
void print( ):功能函数,输出数据成员;
virtual int Isgood( )=0:纯虚函数,用于判断是否满足条件;
(2)由基类派生学生类Student,定义公有成员函数:
Student ( ): 构造函数,输入分数;
int Isgood( ):根据优秀学生的标准,满足条件返回1,否则返回0; (3)由基类派生教师类Teacher,定义公有成员函数:
Teacher ( ): 构造函数,输入论文数;
int Isgood( ):根据优秀教师的标准,满足条件返回1,否则返回0; (4)在主函数中定义学生数组和教师数组,输入一系列教师或学生的记录后,将优秀教师及学生候选 人的情况列出来,并体现运行的多态性。
#include<iostream>
using namespace std;
class Base{
protected:
char name[8];
int num;
public :
Base( ){
cout<<"姓名:";
cin>>name;
}
void print( ){
cout<<"姓名:"<<name<<'\t'<<num<<'\n';
}
virtual int Isgood( )=0;
};
class Student:public Base{
public :
Student( ) {
cout<<"考试成绩:";
cin>>num;
}
int Isgood( ){
return (num>90)?1:0;
}
};
class Teacher:public Base{
public :
Teacher( ){
cout<<"每年发表论文数:";
cin>>num;
}
int Isgood( ){
return (num>3)?1:0;
}
};
int main( ){
cout<<"请输入学生情况:\n";
Student s[5];
cout<<"\n请输入教师情况:\n";
Teacher t[5];
cout<<"\n优秀学生候选人:\n";
int i;
Base *p;
for(i=0,p=s;i<5;i++,p++)
if(p->Isgood())p->print();
cout<<"\n优秀教师候选人:\n";
for(i=0,p=t;i<5;i++,p++)
if(p->Isgood())p->print();
}
下一篇: Linux C ————9、指针