用面向对象方法编写求5个圆柱体的体积和表面积的C++程序。数据成员包括底面半径radius、柱体高height。要求用成员函数实现以下功能: (1)由键盘分别输入5个圆柱体的半径、高; (2)计算圆柱体的体积和表面积; (3)输出5个圆柱体的体积和表面积;
时间: 2024-05-15 14:13:23 浏览: 210
以下是面向对象方式编写求5个圆柱体的体积和表面积的C++程序:
```cpp
#include<iostream>
#include<cmath>
using namespace std;
class Cylinder {
private:
double radius; // 圆柱体底面半径
double height; // 圆柱体高
public:
void setRadius(double r) { radius = r; } // 设置底面半径
void setHeight(double h) { height = h; } // 设置高度
double getVolume() { return M_PI * radius * radius * height; } // 计算圆柱体体积
double getArea() { return 2 * M_PI * radius * (height + radius); } // 计算圆柱体表面积
};
int main() {
Cylinder c[5]; // 定义5个圆柱体对象
double r, h; // 临时变量,用于输入半径和高度
// 由键盘分别输入5个圆柱体的半径、高
for (int i = 0; i < 5; i++) {
cout << "请输入第" << i+1 << "个圆柱体的半径和高度:";
cin >> r >> h;
c[i].setRadius(r);
c[i].setHeight(h);
}
// 计算并输出圆柱体的体积和表面积
double totalVolume = 0, totalArea = 0; // 总体积和总表面积
for (int i = 0; i < 5; i++) {
double volume = c[i].getVolume();
double area = c[i].getArea();
totalVolume += volume;
totalArea += area;
cout << "第" << i+1 << "个圆柱体的体积为:" << volume << endl;
cout << "第" << i+1 << "个圆柱体的表面积为:" << area << endl;
}
cout << "5个圆柱体的总体积为:" << totalVolume << endl;
cout << "5个圆柱体的总表面积为:" << totalArea << endl;
return 0;
}
```
程序流程如下:
1. 定义 `Cylinder` 类,包括私有数据成员 `radius` 和 `height`,以及公有成员函数 `setRadius`、`setHeight`、`getVolume` 和 `getArea`。
2. 在 `main` 函数中,定义一个长度为5的 `Cylinder` 数组,用于存放5个圆柱体对象。
3. 使用 `for` 循环,由键盘分别输入5个圆柱体的半径和高度,调用 `setRadius` 和 `setHeight` 函数设置圆柱体的底面半径和高度。
4. 使用 `for` 循环,计算并输出5个圆柱体的体积和表面积,同时累加各自的总体积和总表面积。
5. 输出5个圆柱体的总体积和总表面积。
阅读全文