#include <iostream>
#include <cmath>
#define PI 3.14
using namespace std;
//图形类
class Graphical
{
public:
Graphical(){}
Graphical(float p1,float a1):perm(p1),area(a1){}
virtual ~Graphical(){}
virtual void show()=0;
protected:
float perm;//周长
float area;
};
//矩形类
class Rectangle: public Graphical
{
public:
Rectangle(){}
Rectangle(float l1,float w1):length(l1),wide(w1){}
~Rectangle(){}
void show() override
{
perm=(length+wide)*2;
area=length*wide;
cout<<"矩形周长:"<<perm<<endl;
cout<<"矩形面积:"<<area<<endl;
}
private:
float length;
float wide;
};
//圆类
class Circle: public Graphical
{
public:
Circle(){}
Circle(float r1):radius(r1){}
~Circle(){}
void show() override
{
perm=2*PI*radius;
area=PI*radius*radius;
cout<<"圆周长为:"<<perm<<endl;
cout<<"圆面积为:"<<area<<endl;
}
private:
float radius;//半径
};
//三角形类
class Triangle: public Graphical
{
public:
Triangle(){}
Triangle(float x1,float y1,float z1):x(x1),y(y1),z(z1){}
~Triangle(){}
void show() override
{
perm=x+y+z;
float p;
p=perm*0.5;
area=sqrt(p*(p-x)*(p-y)*(p-z));
cout<<"三角形周长为:"<<perm<<endl;
cout<<"三角形面积为:"<<area<<endl;
}
private:
float x;
float y;
float z;
};
void shows(Graphical &rs)
{
rs.show();
return;
}
int main(int argc, const char *argv[])
{
//矩形
// Rectangle re((float)2.5,(float)5.0);
// shows(re);
//圆
// Circle ci((float)4.1);
// shows(ci);
//三角形
Triangle tr(3,4,5);
shows(tr);
return 0;
}
c++ 2024.9.5
最新推荐文章于 2024-09-26 21:10:57 发布