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

原创 2015年07月06日 20:05:22

Description

编写一个程序,定义抽象基类Shape,由它派生出5个派生类: Circle(圆形)、Square(正方形)、Rectangle(矩形)、Trapezoid(梯形)、Triangle(三角形)。
用虚函数分别计算几种图形面积,并求它们之和。
要求用基类指针数组,使它每一个元素指向一个派生类对象。 

Input

圆的半径
正方形的边长
矩形的边长
梯形的上底和下底,高
三角形的底与高

Output

所有图形面积之和(结果保留两位小数)

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:
    Circle(double r=0):radius(r){}
    double area()
    {
        return 3.1415926*radius*radius;
    }
protected:
    double radius;
};
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】---H---虚函数-计算图形面积

题目要求如下: ---------------------------------------------------------------------------------------...

OJ嘻唰唰之填空题(1)删除线性表节点

问题及代码: /* *Copyright(c)2014,烟台大学计算学院 *All rights reserved. *文件名称:test.cpp *作者:陈银丽 *完成日期:2015年7月7日 *...
  • CKL1029
  • CKL1029
  • 2015年07月07日 21:26
  • 634

OJ嘻唰唰之改错题(3)植物与花

问题及代码 /* *Copyright(c)2014,烟台大学计算学院 *All rights reserved. *文件名称:test.cpp *作者:陈银丽 *完成日期:2015年7月4日 *版...
  • CKL1029
  • CKL1029
  • 2015年07月05日 19:30
  • 603

虚函数-计算图形面积

Problem B: C++习题 虚函数-计算图形面积 Description 编写一个程序,定义抽象基类Shape,由它派生出5个派生类: Circle(圆形)、Square(正方形...

C++习题 虚函数-计算图形面积

Problem H: C++习题 虚函数-计算图形面积 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 287  Solved: 226 [S...

c++习题1_H_虚函数-计算图形面积

/* *作者:lws *完成时间:2014/6/14 *描述:编写一个程序,定义抽象基类Shape,由它派生出5个派生类: Circle(圆形)、Square(正方形)、Rectangle(矩形)、T...

嘻唰唰第六批Problem N: 填空题:静态成员---计算学生个数

Description 学生类声明已经给出,在主程序中根据输入信息输出实际建立的学生对象个数,以及所有学生对象的成绩总和。 在下面的程序段基础上完成设计,只提交begin到end部分的代码...

Python函数之计算规则图形的面积

来个直接的吧,看代码;     #coding=utf-8 from __future__ import unicode_literals import sys reload(sys) sys.se...

立体类的面积和体积--虚函数

/* *Copyright(c)2014,烟台大学计算机学院学生 *All rights reserved. *文件名称: *作者:马广明 *完成日期:2014 年 5 月 27 日 *版...

C语言函数求图形面积

#include #include #include //函数原型 void calcCircle(); //计算圆的面积 void calcRectangle(); //计算矩形面积 /*...
  • xyphf
  • xyphf
  • 2017年07月20日 17:08
  • 190
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:OJ嘻唰唰虚函数-计算图形面积
举报原因:
原因补充:

(最多只允许输入30个字)