xu han shu ji suan tu xing mian ji

来源:互联网 发布:不用网络的监控摄像头 编辑:程序博客网 时间:2024/06/10 05:21
#include <iostream>#include <iomanip>using namespace std;class Shape{    public:    virtual double area()=0;};class Circle:public Shape{    public:    Circle(double r):R(r){}    virtual double area()    {        return 3.1415926*R*R;    }    private:    double R;};class Square:public Shape{    public:    Square(double l):length(l){}    virtual double area()    {        return length*length;    }    private:    double length;};class Rectangle:public Shape{    public:    Rectangle(double l,double w):length(l),width(w){}    virtual double area()    {        return length*width;    }    private:    double length;    double width;};class Trapezoid:public Shape{    public:    Trapezoid(double a,double b,double c):length1(a),length2(b),base(c){}    virtual double area()    {        return (length1+length2)*base*0.5;    }    private:    double length1;    double length2;    double base;};class Triangle:public Shape{    public:    Triangle(double h,double b):height(h),base(b){}    virtual double area()    {        return 0.5*height*base;    }    private:    double height;    double base;};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