用C++编写一个程序,一圆形游泳池,现在需在其周围建一圆形过道,过道为3米,并在过道四周围上栅栏。栅栏价格为35元/米,过道造价为20元/平方米。游泳池半径由键盘输入。要求通过设计类Circle,计算并输出过道个栅栏的造价(提示:其中类的数据成员均设为私有成员)
时间: 2024-03-11 16:50:16 浏览: 96
好的,以下是用C++编写的程序,实现了上述要求:
```c++
#include <iostream>
using namespace std;
const double FENCE_PRICE = 35.0; // 栅栏价格(元/米)
const double PATH_PRICE = 20.0; // 过道造价(元/平方米)
class Circle {
private:
double radius; // 游泳池半径
public:
Circle(double r) { radius = r; } // 构造函数
double getRadius() { return radius; } // 获取半径
double getArea() { return 3.14159 * radius * radius; } // 获取面积
double getFenceCost() { return 2 * 3.14159 * radius * FENCE_PRICE; } // 计算栅栏造价
double getPathCost() { // 计算过道造价
double path_radius = radius + 3; // 过道半径
Circle path(path_radius); // 创建过道对象
return path.getArea() * PATH_PRICE;
}
};
int main() {
double radius;
cout << "请输入游泳池半径:";
cin >> radius;
Circle pool(radius); // 创建游泳池对象
cout << "栅栏造价:" << pool.getFenceCost() << "元" << endl;
cout << "过道造价:" << pool.getPathCost() << "元" << endl;
return 0;
}
```
程序实现过程:
1. 定义常量 `FENCE_PRICE` 和 `PATH_PRICE` 表示栅栏和过道的单价。
2. 定义类 `Circle`,包含私有数据成员 `radius` 表示游泳池半径。
3. 在类 `Circle` 中定义公有成员函数 `getRadius()` 和 `getArea()`,分别用于获取半径和面积。
4. 在类 `Circle` 中定义公有成员函数 `getFenceCost()`,用于计算栅栏的造价。栅栏长度为游泳池周长乘以 2,其中周长等于 $2\pi r$。
5. 在类 `Circle` 中定义公有成员函数 `getPathCost()`,用于计算过道的造价。过道半径为游泳池半径加上 3,过道面积等于过道圆形面积减去游泳池圆形面积。
6. 在 `main()` 函数中,从键盘输入游泳池半径,创建 `Circle` 对象,调用 `getFenceCost()` 和 `getPathCost()` 函数分别计算栅栏和过道的造价,并输出结果。
注意事项:
1. 类的数据成员需要设置为私有成员,通过公有成员函数访问。
2. 在类中可以定义其他类对象作为数据成员,这样可以方便地实现一些计算。
3. 注意计算过道面积时的半径要加上过道宽度,即游泳池半径加上 3。
阅读全文