2015.5.20类

#include<iostream>
using namespace std;

class Point
{
protected:
    double p_X;
    double p_Y;
public:
    Point(){}
    Point(double x,double y):p_X(x),p_Y(y) {}
    void cin_XY(double x,double y);
    void show_Point();
    double get_X()
    {
        return p_X;
    }
    double get_Y()
    {
        return p_Y;
    }
    friend ostream & operator<<(ostream&output, Point &a);
    friend istream & operator>>(istream&input, Point &a);
};
void Point::cin_XY(double x,double y)
{
    p_X=x;
    p_Y=y;
}
void Point::show_Point()
{
    cout<<'('<<p_X<<','<<p_Y<<')'<<endl;
}
ostream & operator<<(ostream &,Point &a)
{
    cout<<'('<<a.p_X<<','<<a.p_Y<<')';
    return cout;
}
istream & operator>>(istream &,Point &a)
{
    cout<<"请分别输入x,y坐标\n";
    cin>>a.p_X>>a.p_Y;
    return cin;
}


class Circle:public Point
{
protected:
    double m_R;
public:
    Circle(){}
    Circle(double x,double y,double r):Point(x,y),m_R(r) {}
    void cin_Circle();
    void show_Circle();
    double get_area();
    double get_R()
    {
        return m_R;
    }
    friend ostream & operator<<(ostream &,Circle &a);
    friend istream & operator>>(istream & ,Circle &a);
};
void Circle::cin_Circle()
{
    cout<<"输入圆心坐标和,半径\n";
    cin>>p_X>>p_Y>>m_R;
}
void Circle::show_Circle()
{
    cout<<"圆心坐标为";
    show_Point();
    cout<<"半径为"<<m_R<<endl;
}
double Circle::get_area()
{
    double a;
    a=m_R*m_R*3.14;
    return a;
}
ostream & operator<<(ostream &,Circle &a)
{
    cout<<"圆心坐标为"<<'('<<a.p_X<<','<<a.p_Y<<')'<<"半径为"<<a.m_R;
    return cout;
}
istream & operator>>(istream &,Circle &a)
{
    cout<<"输入圆心坐标和半径\n";
    cin>>a.p_X>>a.p_Y>>a.m_R;
    return cin;
}
class Volume:public Circle
{
protected:
    double v_Height;
public:
    Volume(){};
    Volume(double a,double b,double c,double d):Circle(a,b,c),v_Height(d){}
    double get_Height(){return v_Height;};
    double get_volume();
    void show_Volume();
    friend ostream &operator<<(ostream&,Volume &a);
};
double Volume::get_volume()
{
    double a;
    a=m_R*m_R*3.14*v_Height;
    return a;
}
void Volume::show_Volume()
{
    cout<<"圆柱体的底面圆心为"<<'('<<p_X<<','<<p_Y<<')'<<"底面半径为"<<m_R<<"高为"<<v_Height<<endl;
}
ostream &operator<<(ostream &,Volume &a)
{
    cout<<"圆柱体的底面圆心为"<<'('<<a.p_X<<','<<a.p_Y<<')'<<"底面半径为"<<a.m_R<<"高为"<<a.v_Height;
    return cout;
}
int main()
{
    Point a(1,5),b;
    a.show_Point();
    cin>>b;
    cout<<a<<b<<endl;

    Circle c,d(4,5,9);
    d.show_Circle();
    cin>>c;
    cout<<c<<endl;

    Volume e(3,4,5,6);
    e.show_Volume();
    cout<<"体积为"<<e.get_volume()<<endl;
    cout<<e;
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值