3732 - 游泳池改造预算

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 128 MB

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


由键盘输入游泳池半径(小数)。
编程计算并依次输出过道和栅栏的造价(四舍五入保留到小数点后1位)。
要求:采用面向对象程序设计的方式,要用到构造函数、使用const定义常量

题目输入

题目输出

输入/输出样例

输入格式

10.0

输出格式

4335.4
2858.8

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; 
}