定义抽象基类Shape,其中纯虚函数printName()输出几何图形的名称和相应的成员数据、纯虚函数printArea()计算几何图形的面积.并由Shape类派生出5个派生类:Circle(圆形),数据成员为半径、Square(正方形) ,数据成员为边长、Rectangle(长方形) ,数据成员为长和宽、Trapezoid(梯形) ,数据成员为上底、下底和高、Triangle(三角形) ,数据成员为底和高.定义一个指向基类的指针数组,使其每个元素指向一个动态产生的派生类对象,分别调用相应的成员函数显示各个几何图形的属性及面积,最终输出总面积值.程序运行结果如下:程序运行结果如下:输入(依次输入圆半径、正方形边长、长方形长宽、梯形上底下底和高、三角形底边和高):1052 41 2 34 3输出:圆:半径=10,面积:314.159正方形:边长=5,面积:25长方形:长=2,宽=4,面积:8梯形:上底=1,下底=2,高=3,面积:4.5三角形:底边=4,高=3,面积:6总面积:357.659

问题描述:

定义抽象基类Shape,其中纯虚函数printName()输出几何图形的名称和相应的成员数据、纯虚函数printArea()计算几何图形的面积.并由Shape类派生出5个派生类:Circle(圆形),数据成员为半径、Square(正方形) ,数据成员为边长、Rectangle(长方形) ,数据成员为长和宽、Trapezoid(梯形) ,数据成员为上底、下底和高、Triangle(三角形) ,数据成员为底和高.定义一个指向基类的指针数组,使其每个元素指向一个动态产生的派生类对象,分别调用相应的成员函数显示各个几何图形的属性及面积,最终输出总面积值.
程序运行结果如下:
程序运行结果如下:
输入(依次输入圆半径、正方形边长、长方形长宽、梯形上底下底和高、三角形底边和高):
10
5
2 4
1 2 3
4 3
输出:
圆:半径=10,面积:314.159
正方形:边长=5,面积:25
长方形:长=2,宽=4,面积:8
梯形:上底=1,下底=2,高=3,面积:4.5
三角形:底边=4,高=3,面积:6
总面积:357.659

#include
using namespace std;
class Shape{
public:
virtual void printName() = 0;
virtual void printArea() = 0;
};
class Circle : public Shape
{
public:
Circle( float f = 0.0f ) : Shape()
{
fbanjin = f;
}
void printName()
{
cout