C++面向对象程序设计课后答案6.1

mian.cpp

#include "point.h"
#include "circle.h"
#include "cylinder.h"
#include <iostream>
using namespace std;

int main()
{
/*
Point p(3.5,6.4);
cout<<"x="<<p.getX()<<",y="<<p.getY()<<endl;
p.setPoint(8.5,6.8);
cout<<"p(new)"<<p<<endl;

Circle c(3.5,6.4,8);
cout<<c<<endl;
c.setPoint(5.5,5.5);
c.setRadius(7);
cout<<c<<endl;
*/
Cylinder cy1(3.5,6.4,5.2,10);
cout<<cy1<<endl;
cy1.setHeight(20);
cy1.setRadius(10);
cy1.setPoint(10,5);
cout<<cy1<<endl;
return 0;
}

circle.cpp

#include <iostream>
using namespace std;
#include "circle.h"

Circle :: Circle(float a,float b,float r):Point(a,b),radius(r){}
void Circle::setRadius(float r)
{
   radius=r;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
}
float Circle::getRadius() const{return radius;}
float Circle::area() const{return 3.14159*radius*radius;}
ostream &operator <<(ostream &output,const Circle &p)
{
output<<"center=["<<p.x<<","<<p.y<<"],r="<<p.radius<<",area="<<p.area()<<endl;
return output;
}

Circle.h

#ifndef  CIRCLE_H
#define  CIRCLE_H
#include "point.h"
class Circle : public Point
{

   
public:
     Circle(float x=0,float y=0,float r=0);
     void setRadius(float);
     float getRadius() const;
     float area() const;
     friend ostream & operator<<(ostream &,const Circle &);
   protected:
     float radius;
};
#endif


point.cpp

#include <iostream>
using namespace std;
#include "point.h"


Point ::Point(float a,float b)
{
x=a;
y=b;
}
void Point::setPoint(float a,float b)
{
   x=a;
   y=b;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
}


ostream &operator <<(ostream &output,const Point &p)
{
output<<"["<<p.x<<","<<p.y<<"]"<<endl;
return output;
}

point.h

#ifndef _POINT_H
#define _POINT_H
#include <iostream>
using namespace std;
class Point
{
   public:
   Point(float a,float b);  
   void setPoint(float a,float b);
   float getX()  const{return x;}
   float getY()  const{return y;}
   friend ostream & operator <<(ostream &,const Point &);
   protected :
      float x;
      float y;
};
#endif

cylinder.cpp

#include "cylinder.h"


Cylinder :: Cylinder(float a,float b,float r,float h):Circle(a,b,r),height(h){}
void Cylinder::setHeight(float h)
{
   height=h;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
}
float Cylinder::getHeight() const{return height;}
float Cylinder::area() const{return 2*Circle::area()+3.14159*radius*radius;}
float Cylinder::volumn() const{return area()*height;}
ostream &operator <<(ostream &output,const Cylinder &p)
{
output<<"center=["<<p.x<<","<<p.y<<"],r="<<p.radius<<",h="<<p.height<<"\narea="<<p.area()<<",volumn="<<p.volumn()<<endl;
return output;
}

cylinder.h

#ifndef  CYLINDER_H
#define  CYLINDER_H
#include "Circle.h"
class Cylinder : public Circle
{

   public:
     Cylinder(float x=0,float y=0,float r=0,float h=0);
     void setHeight(float);
     float getHeight() const;
     float area() const;
     float volumn() const;
     friend ostream & operator<<(ostream &,const Cylinder &);
   protected:
     float height;
};
#endif

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值