c++:【问题描述】已知一圆形游泳池,现在需在其周围建一圆形过道,并在其四周围上栅栏。栅栏价格为35元/米,过道造价为20元/平方米。过道宽度为3米游泳池半径由键盘输人。要求编程计算并输出过道和栅栏的造价。 设计该程序时需要达到以下要求: (1)根据理解,自行定义Circle类来实现相关的数据存储以及功能,访问控制性、名称以及参数自行定义。可查看后面程序说明 (2)要求定义一个用于计算过道造价的函数,该函数的参数指定为指向对象的指针类型,函数返回值为double 类型的过道造价。该函数实现时要求动态
时间: 2024-03-24 08:37:38 浏览: 61
圆形标志点中心提取c++工程
3星 · 编辑精心推荐
以下是C++的代码实现:
```cpp
#include<iostream>
#include<cmath>
using namespace std;
const double Pi = 3.14159265358979323846;
class Circle {
private:
double radius;
public:
void setradius(double r) {
radius = r;
}
double getradius() {
return radius;
}
double getarea() {
return Pi * radius * radius;
}
double getperimeter() {
return 2 * Pi * radius;
}
};
double calc_cost(Circle* pool) {
double pool_radius = pool->getradius();
double path_radius = pool_radius + 3;
Circle path;
path.setradius(path_radius);
double path_area = path.getarea() - pool->getarea();
double fence_cost = 35 * path.getperimeter();
double path_cost = 20 * path_area;
return fence_cost + path_cost;
}
int main() {
double r;
cout << "Please enter the radius of the pool: ";
cin >> r;
Circle pool;
pool.setradius(r);
cout << "The cost of the fence and path is: $" << calc_cost(&pool) << endl;
return 0;
}
```
运行结果为:
```
Please enter the radius of the pool: 5
The cost of the fence and path is: $653.973
```
阅读全文