我是c++新手,求大神指教这题

2.构造一圆形游泳池,现在需要在其周围建一圆形过道,并在其四周围上栅栏。栅栏价格为35元/米,过道造价为20元/平方米。过道宽度为3米,游泳池半径由键盘输入。要求编程计算... 2.构造一圆形游泳池,现在需要在其周围建一圆形过道,并在其四周围上栅栏。
栅栏价格为35元/米,过道造价为20元/平方米。过道宽度 为3米,
游泳池半径由键盘输入。要求编程计算并输出过道和栅栏的造价。

例如,程序测试如下:
从键盘上输入游泳池的半径:10
栅栏造价为:2857.4
过道造价为:4333.2

我之前写出来了,但是老师说我的代码方法不好,让我按下面的提示写,我应该怎么写才行

提示:思考游泳池应该是一个环,但构造环的类不是最好的构造方法,面向对象体现的是堆积木的方法。
所以应该构造的是圆的类,由圆拼成环。

我之前写的代码#include<iostream.h>
#define pi 3.1415927
class Cir
{
public:
void zha(float r);
void guo(float r);
void pri();
private:
float price;
};
void Cir::zha(float r)
{
price=2*pi*r*35;
}
void Cir::guo(float r)
{
price=pi*r*r*20-pi*(ra-3)*(ra-3)*20;
}
void Cir::pri()
{
cout<<price;
}
main()
{
float r;
Cir c;
cin>>r;
r=r+3;
c.zha(r);
cout<<"栅栏造价为:";
c.pri();
cout<<endl;
c.guo(r);
cout<<"过道造价为:";
c.pri();
}
展开
 我来答
XRCPL
推荐于2017-09-13 · TA获得超过1649个赞
知道小有建树答主
回答量:804
采纳率:100%
帮助的人:343万
展开全部
#include<iostream>
using namespace std;
#define PI 3.14
class Circle//构造圆类
{
private:
int r;//圆半径
public:
Circle(int a){r=a;}
~Circle(){}
float Perimeter(int r)//求圆周长
{
return 2*r*PI;
}
float Area(int r)//求圆周长
{
return PI*r*r;
}
void input()
{
cout<<"输入游泳池半径:";
cin>>r;
cout<<endl;
}
int getR()
{
return r;
}
};
class Cir:public Circle//构造环类,从圆类继承,只要定义出环的宽度,就可以定义出环
{
private:
int width;//环的宽度
public:
Cir(int a,int w):Circle(a){width=w;}
~Cir(){}
float Per()//求环的外围造价
{
return Perimeter(getR()+width)*35;
}
float Are()
{
return 20*(Area(getR()+width)-Area(getR()));
}
void InputW()
{
input();
cout<<"输入过道宽度:";
cin>>width;
cout<<endl;
}
};
int main()
{
Cir cir(0,0);
cir.InputW();
cout<<"栅栏造价为:"<<cir.Per()<<"元,"<<endl;
cout<<"过道造价为:"<<cir.Are()<<"元。"<<endl;
return 0;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式