[YTU]_2922(Shape系列-8)
生活随笔
收集整理的這篇文章主要介紹了
[YTU]_2922(Shape系列-8)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Description
小聰又想借用小強的Shape類了,但是不巧的是小強去考英語四級去了,但是小聰自力更生創建了Point類,但是他沒有寫Point類、繼承Point類的Circle類、繼承Circle類的Cylinder類這3個類的構造函數,請你幫忙補充這幾個類未完成的函數。 小聰寫的各種類 #include <iostream.h>#define PI 3.14159
class Point
{
public:
? Point(float=0,float=0);
? void setPoint(float,float);
? float getX()const ;
? float getY()const ;
? friend ostream & operator<<(ostream &,const Point &);
protected:
? float x,y;
};
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;
};
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 volume() const;
? friend ostream& operator<<(ostream&,const Cylinder&);
?protected:
? float height;
}; //小聰用于測試的函數 int main()
{
?Cylinder cy1(3.5,6.4,5.2,10);
?cy1.setHeight(15);
?cy1.setRadius(7.5);
?cy1.setPoint(5,5);
?cout<<"new cylinder:\n"<<cy1;
?Point &pRef=cy1;
?cout<<"pRef as a point:"<<pRef;
?Circle &cRef=cy1;
?cout<<"cRef as a Circle:"<<cRef;
?return 0;
} 提示:不用提交全部程序,只提交補充部分。
Input
無
Output
輸出小聰測試的各個數據
Sample Output
new cylinder: Center=[5,5], r=7.5, h=15 area=1060.29, volume=2650.72 pRef as a point:[5,5] cRef as a Circle:Center=[5,5], r=7.5, area=176.714#include <iostream> using namespace std; #define PI 3.14159 class Point { public:Point(float=0,float=0);void setPoint(float,float);float getX()const ;float getY()const ;friend ostream & operator<<(ostream &,const Point &); protected:float x,y; }; 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; }; 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 volume() const;friend ostream& operator<<(ostream&,const Cylinder&);protected:float height; };Point::Point(float a,float b){x=a;y=b;} float Point::getX()const {return x;} float Point::getY() const {return y;} void Point::setPoint(float xx,float yy) {x=xx;y=yy;} ostream &operator<<(ostream &cout,const Point &p) {cout<<"["<<p.x<<','<<p.y<<']'<<endl;return cout;} Circle::Circle(float x,float y,float r):Point(x,y),radius(r){} void Circle::setRadius(float rr) {radius=rr;} float Circle::getRadius() const {return radius;} float Circle::area() const {return PI*radius*radius;} ostream& operator<<(ostream&cout,const Circle &c) {cout<<"Center=["<<c.x<<','<<c.y<<"], r="<<c.radius<<", area="<<c.area()<<endl;return cout;} Cylinder::Cylinder(float x,float y,float r,float h):Circle(x,y,r),height(h){} void Cylinder::setHeight(float h) {height=h;} float Cylinder::getHeight()const {return height;} float Cylinder::area()const {return PI*radius*radius;} float Cylinder::volume()const {return PI*radius*radius*getHeight();}ostream & operator<<(ostream &cout,const Cylinder& c){cout<<"Center=["<<c.getX()<<","<<c.getY()<<"], "<<"r="<<c.getRadius()<<", "<<"h="<<c.getHeight()<<endl<<"area="<<2*PI*c.radius*c.getHeight()+2*PI*c.radius*c.radius<<", volume="<<PI*c.radius*c.radius*c.getHeight()<<endl;return cout;} int main() {Cylinder cy1(3.5,6.4,5.2,10);cy1.setHeight(15);cy1.setRadius(7.5);cy1.setPoint(5,5);cout<<"new cylinder:\n"<<cy1;Point &pRef=cy1;cout<<"pRef as a point:"<<pRef;Circle &cRef=cy1;cout<<"cRef as a Circle:"<<cRef;return 0; }總結
以上是生活随笔為你收集整理的[YTU]_2922(Shape系列-8)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [YTU]_2921( Shape系列-
- 下一篇: 类似二分查找算法