十四周项目二平面面积OJ版

来源:互联网 发布:梦里花落知多少小说下载 编辑:程序博客网 时间:2024/05/18 03:48
/**Copyright (c) 2013 ,烟台大学计算机与控制工程学院*All rights reserved.*作者:王至超*完成日期:2014年05月27*版本号:v1.0*问题描述:*样例输入:*样例输出:*问题分析:用简单的方法,学会活学活用*/#include <iostream>#include <iomanip>using namespace std;class Shape{public:    virtual float area() const    {        return 0.0;    }};class Circle :public Shape{public:    Circle (float r)    {        radius=r;    }    virtual float area()const    {        return 3.14159*radius*radius;    }protected :    float radius;};class Square :public Shape{public:    Square (float r)    {        a=r;    }    virtual float area()const    {        return  a*a;    }protected :    float a;};class Rectangle :public Shape{public:    Rectangle (float r,float s)    {        m=r;        n=s;    }    virtual float area()const    {        return m*n;    }protected :    float m;    float n;};class Trapezoid :public Shape{public:    Trapezoid(float r,float s,float f)    {        m=r;        n=s;        e=f;    }    virtual float area()const    {        return (m+n)*e*0.5;    }protected :    float m;    float n;    float e;};class Triangle :public Shape{public:    Triangle (float r,float s)    {        m=r;        n=s;    }    virtual float area()const    {        return m*n*0.5;    }protected :    float m;    float n;};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