评选优秀

#include<stdio.h>
#include <windows.h>
#include <time.h>
#include <math.h>
#include <conio.h>
#include <iostream>
using namespace std; 

class base//说明一个基类
{
public:
    int mar;//标志优秀教师和优秀学生
    void getname(){cout << "姓名:" ;cin >> name;}//成员函数
    void printneme(){cout << "姓名:" << name << endl;}
    virtual bool excell() = 0; //判断优秀与否,纯虚函数
protected:
    char name[8];
};

class student:public base
{
    int num;
public:
    void getnum(){cout << "考试成绩:"; cin >> num;}
    bool excell(){return (num > 90)? true:false;}//子类中定义基类的虚函数
};

class teacher:public base
{
    int num;
public:
    void getnum(){cout << "每周发表贴子数:"; cin >> num;}
    bool excell(){return (num > 3)? true:false;}
};

void main(void)
{
    base *p[50];
    student *pstu;
    teacher *pteach;
    int count = 0;
    char ch;
    do
    {
        cout << "输入老师(t)输入学生(s):";
        cin >> ch;
        if (ch == 's')
        {
            pstu = new student;
            pstu -> getname();
            pstu -> getnum();
            pstu -> mar = 0;
            p[count++] = pstu;
           
        }
        else if (ch == 't')
        {
            pteach = new teacher;
            pteach -> getname();
            pteach -> getnum();
            pteach -> mar = 1;
            p[count++] = pteach;
        }
        else
            cout << "输入错误" << endl;
        cout << "重新输入吗(Y/N)";
        cin >> ch;
    } while (ch == 'y');
    for (int i = 0; i < count; i++)
    {
        if ((p[i] -> mar) == 0)
        {
            if (p[i] -> excell() == true)
            {
                cout << "优秀学生:";
                p[i] -> printneme();
            }
        }
        else
        {
            cout << "优秀教师:";
            p[i] -> printneme();
        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东皇※太一

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值