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;
}
运行结果:
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步