有某个圆形游泳池,现需要在其周围建一个圆型过道,并沿着过道的外围修上栅栏。栅栏的价格为35元/米,过道的造价为20元/平方米。过道的宽度为3米,游泳池半径由键盘输入。要求编程计算并输出过道和栅栏的造价(需要定义类与对象)。使用C++
时间: 2024-10-24 11:07:04 浏览: 31
3 游泳池_计算游泳池面积_
要实现这个需求,我们需要定义一个`Circle`类来表示游泳池及其相关的属性,如半径。接着,我们可以创建一个`Passage`类来表示过道,计算其长度和面积。最后,我们将这两个类结合起来,以对象的形式存储信息,并计算总造价。
首先,我们定义`Circle`类:
```cpp
class Circle {
private:
float radius;
public:
// 构造函数
Circle(float r) : radius(r) {}
// 计算周长和面积
float circumference() const {
return 2 * M_PI * radius;
}
float area() const {
return M_PI * pow(radius, 2);
}
};
```
然后,我们定义`Passage`类,计算过道的造价:
```cpp
class Passage {
private:
float width;
float price_per_meter;
float price_per_square_meter;
public:
Passage(float w, float pm, float psm) : width(w), price_per_meter(pm), price_per_square_meter(psm) {}
// 计算过道的长度和面积
float length() const {
return 2 * M_PI * (radius + width);
}
float cost() const {
// 过道的长度按米计价,面积按平方米计价
return length() * price_per_meter + width * width * price_per_square_meter;
}
};
// 主函数
int main() {
float r;
cout << "输入圆的半径值:" << endl;
cin >> r;
Circle pool(r);
float passage_width = 3; // 固定过道宽度
float fence_price_per_meter = 35; // 栅栏价格
float passage_price_per_square_meter = 20; // 过道价格
Passage passage(passage_width, fence_price_per_meter, passage_price_per_square_meter);
float total_cost = passage.cost(); // 总造价
cout << "过道和栅栏的总造价是:" << total_cost << endl;
return 0;
}
```
在这个程序中,用户输入圆的半径,`Circle`类负责计算周长和面积,而`Passage`类则计算过道的长度和成本。最终,主函数打印出总造价。
阅读全文