圆的类的设计,感觉我的类比书上的要繁琐。
一圆形游泳池,现在需要在其周围建一圆形过道,并在其四周上栅栏.
栅栏价格为35元/米,过道造价为20元/平方米.过道宽度为3米,游泳池半径
由键盘输入.要求变成计算并输出过道和栅栏的造价.
我的思路是这样的。
#include<iostream>
using namespace std;
#define PI 3.1415926
#define CONCRETE_PRICE 20
#define FENCE_PRICE 35
//圆类的定义
class Circle{
public:
Circle()//默认构造函数
{
r=1;
compute();
}
Circle(float r)//带参数的构造函数
{
this->r=r;
}
float GetC();//外界接口,获取圆的周长成员函数
float GetS();//外界接口,获取圆的面积成员函数
void SetR(float);//外界接口,设置圆的半斤函数
private:
float r,s,c;
void compute();//计算圆的周长和面积
};
void Circle::compute()
{
s=PI*r*r;
c=2*PI*r;
}
void Circle::SetR(float r)
{
this->r=r;
}
float Circle::GetS()
{
compute();
return s;
}
float Circle::GetC()
{
compute();
return c;
}
int main()
{
float r,price;
Circleyuan1;//声明对象圆1
Circle yuan2;//声明对象圆2
cout<<"请输入小圆的半斤\n";
cin>>r;
yuan1.SetR(r);
r+=3;//大圆的半径等于小圆的半斤加3
yuan2.SetR(r);
price=(yuan2.GetC()-yuan1.GetC())*FENCE_PRICE;
cout<<"过道价格为="<<price<<endl;
price=(yuan2.GetS()-yuan1.GetS())*CONCRETE_PRICE;
cout<<"栅栏价格为="<<price<<endl;
return 0;
}