有一个圆形游泳池,现在需要在其周围建一过道,并在其四周围上矩形栅栏,如图所示。若过道造价为20元/平方米。要求计算并输出过道的造价。请定义一个Circle类,内有私有数据成员radius表示半径,并有若干成员函数;定义一个Rectangle类,内有私有数据成员length、width表示长和宽,并有若干成员函数。(设圆周率PI = 3.14159,所有数据均为double类型)
输入格式:
输入一行数据a b c,分别表示游泳池半径、栅栏的长和宽。其中a>0,b>2*a,c>2*a。
输出格式:
对每一行的输入数据,输出过道的造价。
输入样例:
3 7 8
输出样例:
554.514
#include<bits/stdc++.h>
#define PI 3.14159
using namespace std;
double a,b,c;
class Circle{
private:
double radius;
public:
Circle(double);
double GetR();
};
Circle::Circle(double radius){
this->radius=radius;
}
double Circle::GetR(){
return radius;
}
class Rectangle{
private:
double lenth,width;
public:
Rectangle(double,double);
double GetL();
double GetW();
};
Rectangle::Rectangle(double lenth,double width){
this->lenth=lenth;
this->width=width;
}
double Rectangle::GetL(){
return lenth;
}
double Rectangle::GetW(){
return width;
}
int main(){
cin>>a>>b>>c;
Circle cir(a);
Rectangle rec(b,c);
double ans=rec.GetL()*rec.GetW()-cir.GetR()*cir.GetR()*PI;
cout<<ans*20;
return 0;
}