# OJ嘻唰唰虚函数-计算图形面积

## Sample Input

12.6
3.5
4.5 8.4
2.0 4.5 3.2
4.5 8.4

## Sample Output

total of all areas=574.11

#include <iostream>
#include <iomanip>
using namespace std;
class  Shape
{
public:
virtual double area()=0;
};
class Circle:public Shape
{
public:
double area()
{
}
protected:
};
class Square:public Shape
{
public:
Square(double l=0):longth(l){}
double area()
{
return longth*longth;
}
protected:
double longth;
};
class Rectangle:public Shape
{
public:
Rectangle(double w=0,double h=0):width(w),height(h){}
double area()
{
return width*height;
}
protected:
double width;
double height;
};
class Trapezoid:public Shape
{
public:
Trapezoid(double s=0,double x=0,double g=0):shang(s),xia(x),gao(g){}
double area()
{
return (shang+xia)*gao/2;
}
protected:
double shang;
double xia;
double gao;
};
class Triangle:public Shape
{
public:
Triangle(double b=0,double h=0):base(b),height(h){}
double area()
{
return base*height/2;
}
protected:
double base;
double height;
};

int main()

{

float r,a,b,w1,w2,w,h;

cout<<fixed<<setprecision(2);

cin>>r;

Circle circle(r);

cin>>a;

Square square(a);

cin>>a>>b;

Rectangle rectangle(a,b);

cin>>w1>>w2>>h;

Trapezoid trapezoid(w1,w1,h);

cin>>w>>h;

Triangle triangle(w,h);

Shape *pt[5]= {&circle,&square,&rectangle,&trapezoid,&triangle};

double areas=0.0;

for(int i=0; i<5; i++)

areas=areas+pt[i]->area();

cout<<"total of all areas="<<areas<<endl;

return 0;

}



• 本文已收录于以下专栏：

举报原因： 您举报文章：OJ嘻唰唰虚函数-计算图形面积 色情 政治 抄袭 广告 招聘 骂人 其他 (最多只允许输入30个字)