7-2 例4-3游泳池改造预算 (20分)

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

7a08ad96-69ef-42b8-9889-114a2010c7a0.png

输入格式:
输入一个整数或小数。

输出格式:
分两行输出:在第一行中输出栅栏的造价。在第二行输出过道的造价。

输入样例:
10

输出样例:
Fencing Cost is $2858.85
Concrete Cost is $4335.4

学c++之前自己写的代码是这样的

#include <iostream>

using namespace std;

int main(){
double r,cr,ar;
float pi=3.1415926;
cin>>r;
cr=35*2*pi*(r+3);
ar=((r+3)*(r+3)*pi)*20-(r*r*pi)*20;
cout<<"Fencing Cost is $"<<cr<<endl;
cout<<"Concrete Cost is $"<<ar;
return 0;

}


几点注意
这里的pi不是3.14
平方的函数pow(底数,指数) 别忘导包 include <math.h>

后来老师强调要注意面向对象而不是要面向过程 就把代码改成了这样

#include<iostream>
 using namespace std ;
 const double pi=3.1415926;
 class Circle{
 private:
     double r;
 public :
    Circle(double r);//这个地方你在类里面就不需要在declean是在类里面了
   double area();
  double peremiter();
 };
 Circle::Circle(double casual_r){
  r=casual_r;//它相当于把对象带来的那个值给了成员变量
 };

double Circle::area(){
  return pi*r*r;

 };
 double Circle::peremiter(){
 return 2*pi*r;
 };
 int main(){
 int casual_r;
 cin>>casual_r;
 Circle c1(casual_r); //内层游泳池
 Circle c2(casual_r+3);
 cout<<"Fencing Cost is $"<<c2.peremiter()*35<<endl;
 cout<<"Concrete Cost is $"<<(c2.area()-c1.area())*20<<endl;

 }

当然 这只是最后的成品并不是一开始这样,中间出现过很多笑人的错误,站在这里,予以警示

在声明类里面的函数时又强调了一遍它在这个类里,这样是没有意义的。
在这里插入图片描述
当调用普通的函数时,因为半径本身就是这个对象的数据成员 可以直接访问他。这样再塞一个参数,这是不必要的,因为这里是直接调用的对象的成员变量 没有搞清楚他们的关系 他们的关系实际是这样的。
在这里插入图片描述
生成对象后给他分配成员变量(这是他们成员变量的内存空间是单独的)
但是所有的对象所占用的成员函数是相同的内存空间。

其实在写函数时都默认的调用了this所指的成员变量当无参时,this是可以省略的,当有参数时,是不能省略的。

在这里插入图片描述
创建对象的时候不能叠在一起。
在这里插入图片描述
调用函数的时候不用括号。
在这里插入图片描述
写函数的时候不加返回值类型。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值