3732 - 游泳池改造预算
一圆形游泳池如下图所示,现在需要在其周围建一圆形过道,并在其四周围上栅栏。栅栏价格为35元/米,过道造价为20元/平方米。过道宽度为3米。

由键盘输入游泳池半径(小数)。
编程计算并依次输出过道和栅栏的造价(四舍五入保留到小数点后1位)。
要求:采用面向对象程序设计的方式,要用到构造函数、使用const定义常量
Input
Output
Examples
Input
10.0
Output
4335.4 2858.8
Solution C++
#include<iostream> #include<cmath> #include<iomanip> using namespace std; const float PI = atan(1)*4; const float FENCE_PRICE=35;//栅栏单价 const float AISLE_PRICE=20;//过道单价 class Circle{ public: Circle(float r);//构造函数 float perimeter();//计算圆的周长 float area();//计算圆的面积 private: float radius;//圆的半径 }; //构造函数初始化数据成员radius Circle::Circle(float r){ radius=r; } //计算圆的周长 float Circle::perimeter(){ return 2*PI*radius; } //计算圆的面积 float Circle::area(){ return PI*radius*radius; } int main() { float radius; cin>>radius; Circle pool(radius);//游泳池边界对象 Circle fence(radius+3);//栅栏对象 //计算过道造价并输出 float aisleCost=(fence.area()-pool.area())*AISLE_PRICE; cout<<fixed<<setprecision(1); cout<<aisleCost<<endl; //计算栅栏造价并输出 float fenceCost=(fence.perimeter()*FENCE_PRICE); cout<<fenceCost<<endl; return 0; }