题目描述

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

输入

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

输出

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

样例输入

12.6
3.5
4.5 8.4
2.0 4.5 3.2
4.5 8.4

样例输出

total of all areas=574.11
#include <iostream>
#include <iomanip>
using namespace std;
class Shape
{
public:Shape(){}virtual float area()const=0;
};
class Circle:public Shape
{
public:Circle(float r):radius(r){}
virtual float area()const {return radius*radius*3.1415926;}
private:float radius;
};
class Square:public Shape
{
public:Square(float l):liang(l){}virtual float area() const{return liang*liang;}
private:float liang;
};
class Rectangle:public Shape
{
public:Rectangle(float a,float b):chang(a),kuan(b){}
virtual float area()const{return chang*kuan;}
private:float chang,kuan;
};
class Trapezoid:public Shape
{
public:Trapezoid(float s,float x,float g):shang(s),xia(x),gao(g){}
virtual float area()const{return (shang+xia)*gao*0.5;}
private:float shang,xia,gao;
};
class Triangle:public Shape
{
public:Triangle(float d,float g):di(d),gao(g){}
virtual float area()const{return di*gao*0.5;}
private:float di,gao;
};
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;
}

[YTU]_2478( C++习题 虚函数-计算图形面积)相关推荐

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

    C++习题 虚函数-计算图形面积 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 122  Solved: 86 [Submit][Status][We ...

  2. 7-3 用虚函数计算各种图形的面积

    7-3 用虚函数计算各种图形的面积 定义抽象基类Shape,由它派生出五个派生类: Circle(圆形).Square(正方形).Rectangle( 长方形).Trapezoid (梯形)和Tria ...

  3. 7-1 用虚函数计算各种图形的面积 (20分) 定义抽象基类Shape,由它派生出五个派生类:Circle(圆形)、Square(正方形)、Rectangle( 长方形)、Trapezoid (梯形)

    7-1 用虚函数计算各种图形的面积 (20分) 定义抽象基类Shape,由它派生出五个派生类:Circle(圆形).Square(正方形).Rectangle( 长方形).Trapezoid (梯形) ...

  4. 7-10 用虚函数计算各种图形的面积 (10 分)

    7-10 用虚函数计算各种图形的面积 (10 分) 定义抽象基类Shape,由它派生出五个派生类:Circle(圆形).Square(正方形).Rectangle( 长方形).Trapezoid (梯 ...

  5. 【PTA】7-2 用虚函数计算各种图形的面积 (10 分)

    定义抽象基类Shape,由它派生出五个派生类:Circle(圆形).Square(正方形).Rectangle( 长方形).Trapezoid (梯形)和Triangle (三角形),用虚函数分别计算 ...

  6. 习题 12.5 编写一个程序,定义抽象基类Shape,由它派生出5个派生类:Cricle,Square, Rectangle, Trapezoid ,Triangle。用虚函数分别计算图形面积。

    习题 12.5 编写一个程序,定义抽象基类Shape,由它派生出5个派生类:Cricle,Square, Rectangle, Trapezoid ,Triangle.用虚函数分别计算图形面积,并求所 ...

  7. C++中虚函数工作原理和(虚)继承类的内存占用大小计算

    转载请标明出处,原文地址:http://blog.csdn.net/hackbuteer1/article/details/7883531 一.虚函数的工作原理       虚函数的实现要求对象携带额 ...

  8. 如何理解虚表及其计算含虚函数的类的大小

    在什么情况下系统会自动生成缺省(默认)的构造函数? 1.在类里面有一个类类型的对象,这个类有自己的缺省构造函数(有缺省的参数,参数有缺省值). class B { B(int data) {  } } ...

  9. C++编程练习:多态实验——利用抽象类和纯虚函数,编程计算正方体、球体和圆柱体的表面积和体积。

    例.要求利用抽象类和纯虚函数,编程设计一个程序计算正方体.球体和圆柱体的表面积和体积,具体要求如下: 1.设计一个抽象类为公共基类 : 2.设计成员函数source_area( ),求表面积: 3.设 ...

最新文章

  1. 如何看待「上帝掷骰子」这场概率骗局
  2. calendar当前时间整点_时间处理相关类
  3. 【PC工具】更新:在线智能抠图工具,在线视频、图片、音频等转换工具,绿色免安装抠图神奇抠图工具...
  4. 【机器学习】一文全览机器学习建模流程(Python代码)
  5. neo4j导入两个文件_Neo4j:找到两个纬度/经度之间的中点
  6. 哦!数组还能这么用,学到了!
  7. h标签对html网页的作用,网页H标签SEO价值的说明与举例
  8. storm生产环境部署问题
  9. 《证券基金经营机构信息技术管理办法》要点简读
  10. Windows 好用的护眼软件
  11. 更好的图片压缩途径: WebP探索之路
  12. ubuntu20.04WPS解决缺失字体的问题
  13. USB数据采集卡,Labjack U12 在工业控制中的用
  14. Linux系统-高琪-专题视频课程
  15. 程序员为什么要学习数据库
  16. 《神奇的数学》读后感_数学王国_奇妙的数学王国读后感10篇
  17. 什么是看门狗?如何操作?喂狗?工作流程?定时器,计数器,看门狗的关系。
  18. 为什么我要在BDTC2016上担任“大数据云服务”分论坛召集人
  19. [内存] 谈谈所谓的要不要关闭虚拟内存
  20. android studio gradle 添加jar,android studio学习----通过gradle来导入jar包

热门文章

  1. 编写XML作为配置文件的高级操作库
  2. 如何提高android串口kernel log等级
  3. A840S黑砖修复过程(2013-05-22修改)
  4. 虚拟机安装Ubuntu14.04打开FireFox提示Server not found
  5. Android 的 ramdisk.img、system.img、userdata.img 作用说明,以及UBoot 系统启动过程
  6. Maximum Allowed Error 7 错误解决
  7. Real6410的NBL1.LSB和NBL2编译下载不能启动的问题
  8. 恒安嘉新面试题java_面了三个大厂,终于拿到offer,数年Java最经典的面试题总结...
  9. ext3文件系统反删除利器-ext3grep
  10. Mysql数据库常用操作整理