商店经销一种货物,货物成箱购进,成箱卖出,购进和卖出时以重量为单位,各箱的重量不一样,单价不一样,因此商店需要记录下目前库存的货物的总重量和总价值。编写一个程序,通过定义类Carlo来模拟商店货物购进和卖出的情况。(本题目主要练习静态数据成员的使用,定义私有变量存每件货物的价格和重量,用静态数据成员存货物的总重量和总价钱,定义构造函数和析构函数,当定义新的对象完成初始化的功能和删除对象时,从总重量和总价钱中减去对象的重量和价格)
时间: 2024-03-23 19:38:16 浏览: 67
行业资料-交通装置-一种成箱水果装卸用智能电动运输车.exe
好的,我已经明白您的问题了。下面是一个参考的解答:
```c++
#include<iostream>
using namespace std;
class Carlo {
private:
double weight; // 单位重量的价值
double price; // 单价
static double totalWeight; // 总重量
static double totalPrice; // 总价值
public:
Carlo(double w, double p); // 构造函数
~Carlo(); // 析构函数
static void show(); // 显示总重量和总价值
};
double Carlo::totalWeight = 0; // 初始化静态成员
double Carlo::totalPrice = 0;
Carlo::Carlo(double w, double p) {
weight = w;
price = p;
totalWeight += weight;
totalPrice += weight * price;
}
Carlo::~Carlo() {
totalWeight -= weight;
totalPrice -= weight * price;
}
void Carlo::show() {
cout << "Total weight: " << totalWeight << endl;
cout << "Total price: " << totalPrice << endl;
}
int main() {
Carlo c1(10, 3.5);
Carlo c2(20, 2.8);
Carlo::show(); // 显示总重量和总价值
Carlo c3(5, 4.2);
Carlo::show(); // 显示总重量和总价值
return 0;
}
```
上述程序定义了一个类`Carlo`,其中包括私有变量:`weight`(每件货物的单位重量)和`price`(每件货物的单价),以及静态变量`totalWeight`(货物的总重量)和`totalPrice`(货物的总价值)。其中构造函数和析构函数分别用于完成对象的初始化和删除,当定义新的对象时,从总重量和总价钱中加上对象的重量和价格,当删除对象时,从总重量和总价钱中减去对象的重量和价格。最后,定义了一个静态方法`show()`用于显示总重量和总价值。
在主函数中,分别通过创建对象`c1`、`c2`和`c3`来模拟商店货物购进和卖出的情况。其中,`c1`和`c2`的重量和单价已经在构造函数中定义好,而`c3`的重量和单价在创建对象时传递进去。在每次创建对象后,调用静态方法`show()`来显示货物的总重量和总价值。
阅读全文