用cpp设计程序,可随时求出程序中所存在的矩形总数和总面积。
时间: 2024-10-15 10:09:08 浏览: 5
在C++中,我们可以设计一个包含矩形类(Rectangle)和一些辅助函数的程序来达到这个目标。首先,我们需要定义一个Rectangle类,包含宽度(width)、高度(height)以及静态变量来追踪总数(nTotalNumber)和总面积(nTotalArea)。然后,我们还需要实现相应的构造函数、析构函数以及求面积的方法。
```cpp
#include <iostream>
class Rectangle {
public:
// 构造函数
Rectangle(int w, int h) : width(w), height(h) {
nTotalNumber++;
nTotalArea += area();
}
~Rectangle() {} // 析构函数,这里默认为空,如果需要清理资源可以自定义
// 求矩形面积
int area() const { return width * height; }
// 获取总数和总面积的方法
static int getTotalNumber() { return nTotalNumber; }
static int getTotalArea() { return nTotalArea; }
private:
int width, height;
static int nTotalNumber = 0;
static int nTotalArea = 0;
};
// 辅助函数,用于更新总数和总面积
void updateTotalStats(const Rectangle& rect) {
Rectangle::nTotalNumber++;
Rectangle::nTotalArea += rect.area();
}
// 打印总数和总面积
void printTotalStats() {
std::cout << "矩形总数: " << Rectangle::getTotalNumber() << std::endl;
std::cout << "总面积: " << Rectangle::getTotalArea() << std::endl;
}
int main() {
Rectangle rect1(5, 3);
Rectangle rect2(7, 9);
// 更新统计信息
updateTotalStats(rect1);
updateTotalStats(rect2);
// 打印当前的总数和总面积
printTotalStats();
return 0;
}
```
在这个程序中,每次创建一个新的Rectangle对象时,都会自动更新总数和总面积。通过`printTotalStats`函数,你可以随时查看这些信息。注意,这个设计假设你不会直接修改静态变量`nTotalNumber`和`nTotalArea`,否则需要考虑线程安全问题。
阅读全文