建立一个抽象类,然后派生出教师类。要求评选出优秀教师(一年发表了3篇论文)
1条回答 默认 最新
关注 可以参考一下 抽象类base,教师类teacher
//评选优秀教师和优秀学生 #include<iostream.h> #include<string.h> class base//定义基类 { protected: char name[8]; //姓名 int chengji; //chengji 表示学生的成绩 int file; //file 表示论文 public: base(char n[8]) { strcpy(name,n); } base(int ch=0,int f=0)//构造函数,使基类初始化 { chengji=ch; file=f; } virtual bool isgood()=0; //纯虚函数,判断是否优秀 virtual void inputname()=0;// 纯虚函数 ,输入姓名 virtual void inputchji()=0;//纯虚函数,输入成绩 virtual void inputfile()=0;//纯虚函数,输入论文 virtual void show()=0; //纯虚函数,显示优秀的学生和教师 }; class student:public base//定义base派生的student类 { public: student(int ch=0):base(ch,0) { inputname();//调用student的inputname(),输入学生的姓名 inputchji();//调用student的inputchji(),输入学生的成绩 } void inputname() { cout<<"请输入学生的姓名:"; cin>>name; } void inputchji() { cout<<"请输入成绩:"; cin>>chengji; } bool isgood() { if (chengji>90) return true; else return false; } void show()//输出优秀学生的姓名 { if (isgood()) cout<<name<<"是优秀学生"<<endl; } void inputfile(){} }; class teacher:public base//定义base派生的teather类 { public: teacher(int f=0):base(0,f)//初始化基类的成员函数 { inputname();//调用的teacher的inputname(),输入教师的姓名 inputfile();//调用的teacher的inputfile(),输入教师的论文 } void inputname() { cout<<"请输入教师的姓名:"; cin>>name; } void inputfile() { cout<<"请输入此教师一年中的论文:"; cin>>file; } bool isgood()//判断优秀教师的条件 { if (file>3) return true; else return false; } void show() { if (isgood()) cout<<name<<"是优秀教师"<<endl; } void inputchji(){} //由于基类中定义:virtual void inputchji()=0;的纯虚函数,在派生类中必须定义 //否则就会出错,此时这个函数只是形式的需要,在功能方面什么都不做 }; void main()//主函数 { base *p[100];//定义base类的100个对象的指针 int i=0; int cut=0; int type=0; cout<<"请输入要评选的人数:"; cin>>cut;//接收输入的评选的人数 for(i=0;i<cut;i++)//i是计数器 { cout<<"请选择教师(1)或学生(2):"; cin>>type;//输入的是教师(1)还是学生(2) if (type==1)//判断 p[i]=new teacher;//定义teacher新对象 else p[i]=new student;//定义student新对象 } for(i=0;i<cut;i++) { p[i]->show();调用 delete p[i];//删除对象 } }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决评论 打赏 举报无用 1
悬赏问题
- ¥15 Vue3 大型图片数据拖动排序
- ¥15 划分vlan后不通了
- ¥15 GDI处理通道视频时总是带有白色锯齿
- ¥20 用雷电模拟器安装百达屋apk一直闪退
- ¥15 算能科技20240506咨询(拒绝大模型回答)
- ¥15 自适应 AR 模型 参数估计Matlab程序
- ¥100 角动量包络面如何用MATLAB绘制
- ¥15 merge函数占用内存过大
- ¥15 使用EMD去噪处理RML2016数据集时候的原理
- ¥15 神经网络预测均方误差很小 但是图像上看着差别太大