📄 11.14.cpp
字号:
#include <iostream.h>
const double PI=3.1415;
class Shape
{
public:
virtual double Area()=0;
};
class Triangle:public Shape
{
public:
Triangle(double h,double w)
{ H=h;W=w; }
double Area()
{ return 0.5*H*W; }
private:
double H,W;
};
class Rectangle:public Shape
{
public:
Rectangle(double h,double w)
{ H=h;W=w; }
double Area()
{ return H*W; }
private:
double H,W;
};
class Circle:public Shape
{
public:
Circle(double r)
{ R=r; }
double Area()
{ return PI*R*R; }
private:
double R;
};
class Trapezoid:public Shape
{
public:
Trapezoid(double t,double b,double h)
{ T=t;B=b;H=h; }
double Area()
{
return 0.5*(T+B)*H; }
private:
double T,B,H;
};
class Square:public Shape
{
public:
Square(double s)
{ S=s; }
double Area()
{ return S*S; }
private:
double S;
};
class Application
{
public:
double Compute(Shape *[],int);
};
double Application::Compute(Shape*s[],int n)
{
double sum=0;
for(int i=0;i<n;i++)
sum+=s[i]->Area();
return sum;
}
class MyProgram:public Application
{
public:
MyProgram();
~MyProgram();
double Run();
private:
Shape **s;
};
MyProgram::MyProgram()
{
s=new Shape *[5];
s[0]=new Triangle(3.0,5.0);
s[1]=new Rectangle(5.0,7.0);
s[2]=new Circle(8.5);
s[3]=new Trapezoid(12.0,5.0,6.0);
s[4]=new Square(4.8);
}
MyProgram::~MyProgram()
{
for(int i=0;i<5;i++)
delete s[i];
delete []s;
}
double MyProgram::Run()
{
double sum=Compute(s,5);
return sum;
}
void main()
{
MyProgram M;
cout<<"Area's Sum= "<<M.Run()<<endl;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -