⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 teacher_student.cpp

📁 这是一个用VC++编的一个评优秀教师和优秀学生的程序。
💻 CPP
字号:
#include <iostream.h>
#include <string.h>

class Base	//抽象类
{
protected:
	char name[8];
public:
	Base(char *n="")
	{
		strcpy(name,n);
	}
	virtual bool isgood()=0;	//纯虚函数
	virtual void display()=0;	//提供了一个入口
};
class Student:virtual public Base	//类的继承 有三种方式1 private 2 protected 3 public
{
	float score;
public:
	Student(char *n="",float s=0):Base(n)
	{
		score=s;
	}
	virtual bool isgood(){
		if (score>=90)
			return true;
		else
			return false;
	}
	void display(){ cout<<name<<"    "<<score<<endl; }	//派生类中virtual 可以省略
};
class Teacher:virtual public Base	//virtual 消除多继承中的多义性
{
	int articles;
public:
	Teacher(char *n="",int a=0):Base(n)
	{
		articles=a;
	}
	virtual bool isgood(){
		if (articles>3)
			return true;
		else
			return false;
	}
	void display(){ cout<<name<<"   "<<articles<<endl; }
};

void main()
{
	Base *p[2][10];	//基类指针 p[0]教师 p[1]学生
	int choice;		//菜单选择
	char isContinue;	
	char name[20];	//姓名
	float score;
	int articles;
	int tcount=0,scount=0,i;//分别记录教师的人数,学生人数,i循环变量
	do{
		cout<<"1.教师   \n2.学生\n";
		cout<<"请选择(1-2):";
		cin>>choice;
		switch(choice)
		{
		case 1:
			cout<<"教师姓名:";
			cin>>name;
			cout<<"论文数:";
			cin>>articles;
			p[0][tcount]=new Teacher(name,articles);
			tcount++;
			break;
		case 2:
			cout<<"姓名:";
			cin>>name;
			cout<<"成绩:";
			cin>>score;
			p[1][scount]=new Student(name,score);
			scount++;
			break;
		default:
			cout<<"\n选择错误!\n";
		}
		cout<<"\n是否继续输入信息(Y/N)?";
		cin>>isContinue;
	}while((tcount<=9 && scount<=9) && (isContinue=='y'||isContinue=='Y'));

	cout<<"\n优秀教师:\n";
	cout<<"--------------------------------\n";
	for(i=0;i<tcount;i++)
		if(p[0][i]->isgood())
			p[0][i]->display();

	cout<<"\n优秀学生:\n";
	cout<<"--------------------------------\n";
	for(i=0;i<scount;i++)
		if(p[1][i]->isgood())
			p[1][i]->display();
}




⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -