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

296人阅读 评论(0)

## 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;

}



0
0

* 以上用户言论只代表其个人观点，不代表CSDN网站的观点或立场
个人资料
• 访问：97126次
• 积分：4153
• 等级：
• 排名：第7693名
• 原创：323篇
• 转载：0篇
• 译文：0篇
• 评论：76条
贺老师链接
文章分类
阅读排行
评论排行
最新评论