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;


}


运行结果:

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

来个直接的吧,看代码;     #coding=utf-8 from __future__ import unicode_literals import sys reload(sys) sys.se...
  • qq_34137397
  • qq_34137397
  • 2017年04月12日 23:20
  • 2348

Java计算图形面积周长(4)

在计算图形面积长度需要用到Java中输入语句。 import java.util.*; public class Calculate{ public static void main(String...
  • LEE18254290736
  • LEE18254290736
  • 2015年12月01日 17:13
  • 1417

C++代码计算任意多边形的面积

刚刚开通了博客,今天正好有时间来完成自己的第一篇博客文章。希望对有需要的朋友有所帮助。            今天写了一个小代码:计算任意多边形的面积。临近毕业,毕设也忙得很,还好最近完成的差不多了...
  • Y_15751004297
  • Y_15751004297
  • 2017年05月16日 20:30
  • 1335

【OJ】---H---虚函数-计算图形面积

题目要求如下: ---------------------------------------------------------------------------------------...
  • u012369143
  • u012369143
  • 2014年06月27日 12:27
  • 431

第十四周 oj 利用虚函数-计算图形面积

#include #include using namespace std; class Shape { public: virtual double area() const...
  • u012369140
  • u012369140
  • 2014年05月27日 14:33
  • 621

OJ嘻唰唰之友元类(1)计算两点之间的距离

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

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

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

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

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

15 oj 虚函数-计算图型面积 73-76行为何这样写,不懂

/*编写一个程序,定义抽象基类Shape,由它派生出5个派生类: Circle(圆形)、Square(正方形)、Rectangle(矩形)、Trapezoid(梯形)、Triangle(三角形)。...
  • u012369106
  • u012369106
  • 2014年06月03日 17:25
  • 787

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

Problem H: C++习题 虚函数-计算图形面积 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 287  Solved: 226 [S...
  • u012332009
  • u012332009
  • 2014年06月11日 16:43
  • 661
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:OJ嘻唰唰虚函数-计算图形面积
举报原因:
原因补充:

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