Problem B: 学校的构成(I)

博客介绍了通过定义Student、Teacher和School三个类来模拟学校,Student类有年级数据成员,Teacher类有工资数据成员,School类由前两者对象组合。还给出了输入输出要求及样例,包括输入的格式和输出的内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Description

学校是老师和学生组成的。现在定义Student、Teacher和School三个类来模拟一个学校。
Student类只有一个int类型的数据成员,表示学生的年级;Teacher类只有一个double类型的数据成员,表示该教师的工资;School类是由1个Student类的对象、1个Teacher类的对象组合而成。定义它们的构造函数和析构函数,使程序能产生样例所示的输出。

Input

输入4行,第1行和第3行是2个int类型的正整数;第2行和第4行是double类型的正数。

Output

见样例。

Sample Input

3
1600.31
4
2451.34

Sample Output

A student grade 3 is created.
A teacher with salary 1600.31 is created.
A school is created.
A student grade 4 is created.
A teacher with salary 2451.34 is created.
A student grade 4 is created.
A teacher with salary 2451.34 is created.
A school is created.
A school is erased.
A teacher with salary 2451.34 is erased.
A student grade 4 is erased.
A teacher with salary 2451.34 is erased.
A student grade 4 is erased.
A school is erased.
A teacher with salary 1600.31 is erased.
A student grade 3 is erased.

HINT

Append Code

int main()
{
    int g;
    double s;
    cin>>g>>s;
    School sch(g, s);
    cin>>g;
    Student stu(g);
    cin>>s;
    Teacher tea(s);
    School(g, s);
    return 0;
}

Sample Code

#include<iostream>
 
using namespace std;
 
class Student
{
    int grade;
public:
    Student(int g):grade(g){cout<<"A student grade "<<grade<<" is created."<<endl;}
    ~Student(){cout<<"A student grade "<<grade<<" is erased."<<endl;}
};
 
class Teacher
{
    double salary;
public:
    Teacher(double s):salary(s){cout<<"A teacher with salary "<<salary<<" is created."<<endl;}
    ~Teacher(){cout<<"A teacher with salary "<<salary<<" is erased."<<endl;}
};
 
class School
{
    Student s;
    Teacher t;
public:
    School(int g,double s):s(g),t(s){cout<<"A school is created."<<endl;}
    ~School(){cout<<"A school is erased."<<endl;}
};
int main()
{
    int g;
    double s;
    cin>>g>>s;
    School sch(g, s);
    cin>>g;
    Student stu(g);
    cin>>s;
    Teacher tea(s);
    School(g, s);
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值