/*
乘坐电梯时一般有总人数和总重量限制。
编写一个程序,统计乘客进出电梯时总人数和总重量的变化情况。
假设测试期间共有3人进出电梯,其中第1人的姓名和体重为默认值,第2人和第3人的姓名和体重由键盘输入。
输入输出格式参考样例。
【输入形式】
从键盘依次输入两位乘客的姓名和体重,格式为“姓名1 体重1 姓名2 体重2”,其中姓名为字符串(长度不限),
体重为正整数(单位为公斤),相邻两个输入之间均以一个空格分隔。
【输出形式】
每当一位乘客进入电梯时,都会以“姓名 体重 come in"格式显示当前乘客的个人信息,
每当一位乘客离开电梯时,都会以“姓名 体重 go out"格式显示当前乘客的个人信息;
每当一位乘客进入或离开电梯后,都会以“Now:count=总人数,weights=总重量”格式
显示当前电梯内所有乘客的总人数和总重量信息。
*/
#include <iostream>
#include <string>
using namespace std;
class Passenger
{
public:
//构造函数
/*********************默认***************/
Passenger()
:Name("Unknown"),Weight(50)
{
cout << Name << " " << Weight << " come in" << endl;
count++;
weights+=Weight;
cout << "Now: count = " << count << ", weights = " << weights << endl;
}
/**************************含参********************/
Passenger(string name,int weight):Name(name),Weight(weight)
{
cout << Name << " " << Weight << " come in" << endl;
count++;
weights+=Weight;
cout << "Now: count = " << count << ", weights = " << weights << endl;
}
//析构函数
~Passenger()
{
cout << Name << " " << Weight << " go out" << endl;
count--;
weights-=Weight;
cout << "Now: count = " << count << ", weights = " << weights << endl;
}
static void showState()
{
}
private:
static int count;
static int weights;
string Name;
int Weight;
};
//初始化
int Passenger::count=0;
int Passenger::weights=0;
int main() {
string name1, name2;
int weight1, weight2;
cin >> name1 >> weight1 >> name2 >> weight2;
Passenger p1; // Default passenger
Passenger::showState();
Passenger *p2;
p2 = new Passenger(name1, weight1);
delete p2;
p2 = new Passenger(name2, weight2);
delete p2;
return 0;
}