2.4 设计评选优秀教师和学生的程序,其类结构如图 12.5 所示。当输入一系列教师 或学生的记录后,将优秀学生及教师的姓名列出来。 图 12.5 类结构 类 base char name[8]; 含

本文介绍了一个使用C++实现的程序设计案例,该程序能够通过继承和多态特性来判断并展示优秀教师与学生的名单。具体而言,通过设定学生考试成绩高于90分和教师年度发表论文数量超过3篇的标准,利用基类的虚函数实现多态调用。
#define _CRT_SECURE_NO_WARNINGS
/*
12.4 设计评选优秀教师和学生的程序,其类结构如图 12.5 所示。当输入一系列教师
或学生的记录后,将优秀学生及教师的姓名列出来。
图 12.5 类结构
类 base
char name[8];
含虚函数 isgood() 姓名
类 student
如果考试成绩超过 90 分,
则 isgood()返回 True
类 teacher
如果一年发表的论文超过 3 篇,
则 isgood()返回 True
*/
#include<iostream>
#include <math.h>
using namespace std;


class base
{
public:
char name[8];


bool virtual isgood() = 0;
void virtual getname() = 0;
};
class student:public base
{
int score;
public:
student(char n[], int s)
{
strcpy(name, n);
score = s;
}
void getname()
{
cout << name <<"   "<< endl;
}
bool isgood()
{
if (score > 90)
{
return true;
}
return false;
}
};


class teacher :public base
{
int paper;
public:
teacher(char n[], int p)
{
strcpy(name, n);
paper = p;
}
void getname()
{
cout << name << "   " << endl;
}
bool isgood()
{
if (paper > 3)
{
return true;
}
return false;
}
};
void main()
{
base *p;
char *a = "xiaohua";
char *b = "xiaohu";
char *t1 = "liutea";
char *t2 = "litea";






student s(a,88);
p = &s;
if (p->isgood()){ p->getname(); }
student s1(b, 92);
p = &s1;
if (p->isgood()){ p->getname(); }
teacher te1(t1, 2);
p = &te1;
if (p->isgood()){ p->getname(); }
teacher te2(t2, 4);
p = &te2;
if (p->isgood()){ p->getname(); }












system("pause");


}

























































1. 设计一个评选优秀教师学生程序,其类结构1所示。当输入一系列教师学生记录后,将优秀学生教师姓名列出 2.编写一个程序实现杂志销售管理。当输入一系列杂志销售记录后,将销售良好(书每月售500本以上,杂志每月2500本以上)的杂志名称显示出来。 3.扩写程序: 以下程序的功能为计算正方体的表面积体积。增加两个GlobeCylinder,求球体圆柱体的表面积体积。在基中定义的公共数据成员radius,可作为正方体的边长、球体的半径、圆柱体的底面半径。(补充类结构4、声明二维坐标作为基派生出圆, 把圆作为基,派生圆柱体。 其中,基二维坐标有成员数据:x、y坐标值;有成员函数:构造函数实现对基成员数据的初始化、输出的成员函数,要求输出坐标位置。 派生有新增成员数据:半径(R);有成员函数:构造函数实现对成员数据的初始化、计算圆面积的成员函数、输出半径的成员函数。 派生圆柱体新增数据有高(H);新增成员函数有:构造函数、计算圆柱体体积的函数输出所有成员的函数。请完成程序代码的编写、调试。 实验步骤如下: 先定义一个基point,及其成员函数,先测试一下: 然后以public的继承方式定义子circle 再定义一个派生cylinder 最后在main主函数中定义对象,调用函数实现其功能。
1 、结构体与的编写: (A)利用struct关键字定义一个学生结构体(包括学号、姓名、性别):名:student, num、name、sex,在主函数定义两个对象stud1,stud2,对stud1对象赋值并输出,对第2个对象stud2赋值输出; (B)利用class关键字将1改成的编写,其它不变 (C)将输出封装成display,输入封装成setdata函数,分别在里面定义2函数,在主函数中输入输出; (D)将上面两成员函数移至外定义并输出 (E)将setdata函数利用对象的引用做函数参数,在主函数中输入输出 2、(1)定义一个时间,属性包括小时、分、秒,定义两成员函数:settime,showtime,分别以两种方式、内定义成员函数内外定义成员函数 (2)对1两成员函数分别利用对象的引用做参数、默认参数做参数进行编写与调用并输出。属性 3、编写一个程序,模拟电梯的功能。功能接口包括电梯上行按钮、下行按钮、楼层选择电梯在行驶过程中的楼层显示。 要求: (1)、由用户选择按上行按钮还是下行按钮,选择操作后再由用户输入要进入的楼层,进而电梯开始运行,显示所到的每一楼层层数。 (2.如果是上行,则选择输入的楼层号不能比当前楼层号小,否则应给出不合法提示。 (3). 如果是下行,则选择输入的楼层号不能比当前楼层号大,否则应给出不合法提示。 (4.电梯一旦开始运作就会始终运行,直到窗口关闭。 (5.电梯在经过不同楼层时,最好每个楼层的显示之间能有延迟,最终停靠的楼层的输出形式能更加醒目。如果可以,在电梯最初开始运行时,能在电梯由内部显示当前日期(提示:实现这些功能时,需要调用系统api,实现时间显示功能可以使用CDate)。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值