第十一周项目五 点,圆,柱类族的设计

来源:互联网 发布:恒腾网络股票行情 编辑:程序博客网 时间:2024/06/08 06:11

问题及代码

/*    ALL rights reserved.                           *文件名称: 初学对象11                       作者:李长鸿                       完成时间:2015.5.26                 *问题描述: 日期时间类的多继承   */  #include<iostream>#include<Cmath>using namespace std;double const l=3.14;class Point{    double x,y;public:    Point(double a=0,double b=0):x(a),y(b) {}    void setp()    {        char a,b,c;        cout<<"请输入圆心的坐标(格式为(3,1)):";        cin>>a>>x>>b>>y>>c;        while(a!='('||b!=','||c!=')')        {            cout<<"输入有误,请按照格式重新输入:";            cin>>a>>x>>b>>y>>c;        }    }    void outp()    {        cout<<"圆心坐标为:"<<"("<<x<<","<<y<<")"<<"; ";    }    ~Point()    {        cout<<"点类使用结束,谢谢!"<<endl;    }};class Circle:public Point{    double r;public:    Circle(double a,double b,double c):Point(a,b),r(c) {}    double getr()    {        return r;    }    void setc()    {        setp();        cout<<"请输入半径:";        cin>>r;        while(r<=0)        {            cout<<"您输入的半径r已小于等于0,请重新输入正确的半径:";            cin>>r;        }    }    void outc()    {        outp();        cout<<"圆的半径为:"<<r<<"; "<<"面积为:"<<area()<<"; ";    }    double area();    ~Circle()    {        cout<<"圆类使用结束,谢谢!"<<endl;    }};class Cylinder:public Circle{    double h;public:    Cylinder(double a,double b,double c,double d):Circle(a,b,c),h(d) {}    void seth()    {        cout<<"请输入圆柱体的高:";        cin>>h;        while(h<=0)        {            cout<<"您输入的圆柱体的高h已小于等于0,请重新输入正确的高:";            cin>>h;        }    }    double geth()    {        return h;    }    double cylinderarea();    ~Cylinder()    {        cout<<"圆柱体使用结束,谢谢!"<<endl;    }};istream &operator>>(istream&in,Cylinder&p){    p.setc();    p.seth();}ostream &operator<<(ostream&out,Cylinder&p){    p.outc();    out<<"圆柱的高为:"<<p.geth()<<";  "<<"体积为:"<<p.cylinderarea()<<endl;}double Cylinder::cylinderarea(){    return 2*l*getr()*geth()+2*area();}double Circle::area(){    return l*r*r;}int main(){    Cylinder cyl(3,5,7,7);    cout<<cyl;    cin>>cyl;    cout<<cyl;    cout<<endl;    return 0;}


总结:还是之前忘了那些&&&&&&&。。。。。唉

0 0
原创粉丝点击