• p243_5(3)


    源程序:

    #include <iostream>
    #include <cmath>
    #define PI 3.1415926
    using namespace std;

    class Geometry
    {
    public:
    Geometry() {};
    ~Geometry() {};
    virtual double Get_Area()
    {
    return 0.0;
    }
    virtual double Get_Perimeter()
    {
    return 0.0;
    }
    };
    //子类:圆
    class Circle :public Geometry
    {
    protected:
    double radius;
    public:
    Circle() {};
    Circle(double r)
    {
    radius = r;
    }
    ~Circle() {};
    double Get_Area()
    {
    return PI*radius*radius;
    }
    double Get_Perimeter()
    {
    return 2 * PI*radius;
    }
    };

    //圆的子类:球
    class Ball :public Circle
    {
    public:
    Ball(double rr) :Circle(rr)
    {
    }
    double Get_Area()
    {
    return 4 * PI * radius * radius ;
    }
    };

    //圆的子类:圆柱
    class Column :public Circle
    {
    private:
    double h;
    public:
    Column(double rr,double hh) :Circle(rr)
    {
    //r = rr;
    h = hh;
    }
    double Get_Area()
    {
    return 2 * PI * radius * radius + 2 * PI * radius * h;
    }

    double Get_Volume()
    {
    return PI * radius * radius * h;
    }
    };


    //子类:正方形
    class Square :public Geometry
    {
    private:
    double side;
    public:
    Square(double a)
    {
    side = a;
    }
    ~Square() {};
    double Get_Area()
    {
    return side*side;
    }
    double Get_Perimeter()
    {
    return 4*side;
    }
    };

    //子类:三角形
    class Triangle :public Geometry
    {
    private:
    double a,b,c;
    public:
    Triangle(double aa,double bb,double cc)
    {
    a = aa;
    b = bb;
    c = cc;
    }
    ~Triangle() {};
    double Get_Area()
    {
    int dd = (a + b + c) / 2;
    return sqrt(dd*(dd-a)*(dd-b)*(dd-c));
    }
    double Get_Perimeter()
    {
    return a+b+c;
    }
    };

    int main()
    {
    Geometry *p[3];
    p[0] = new Circle(5.5);
    p[1] = new Square(6.6);
    p[2] = new Triangle(3.0,4.0,5.0);

    cout<<"圆的面积为:"<<p[0]->Get_Area()<<endl;
    cout << "圆的周长为:"<< p[0]->Get_Perimeter() << endl;

    cout << "正方形的面积为:" <<p[1]->Get_Area() << endl;
    cout << "正方形的周长为:" <<p[1]->Get_Perimeter() << endl;

    cout << "三角形的面积为:" << p[2]->Get_Area() << endl;
    cout << "三角形的周长为:" << p[2]->Get_Perimeter() << endl;

    system("pause");
    return 1;

    }

    运行结果:

  • 相关阅读:
    【Linux技术】常用的Linux系统调用
    【Linux技术】Windows与Linux系统下的库·初探
    【C/C++】嵌入式程序员应该知道的0X10个C语言问题
    【C/C++】struct探索·extern "C"含义探索 ·C++与C的混合编程·C 语言高效编程的几招
    【Acm】八皇后问题
    【驱动】linux设备驱动·扫盲
    【驱动】linux设备驱动·字符设备驱动开发
    【教程】ubuntu下配置nvc详细教程
    【教程】InstallShield使用完全教程
    【ARM】2410裸机系列-流水灯
  • 原文地址:https://www.cnblogs.com/duanqibo/p/12283538.html
Copyright © 2020-2023  润新知