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

定义抽象基类Shape,由它派生出五个派生类:Circle(圆形)、Square(正方形)、Rectangle( 长方形)、Trapezoid (梯形)和Triangle (三角形),用虚函数分别计算各种图形的面积,输出它们的面积和。要求用基类指针数组,每一个数组元素指向一个派生类的对象。PI=3.14159f,单精度浮点数计算。

输入格式:

输入在一行中,给出9个大于0的数,用空格分隔,分别代表圆的半径,正方形的边长,矩形的宽和高,梯形的上底、下底和高,三角形的底和高。

输出格式:

输出所有图形的面积和,小数点后保留3位有效数字。

输入样例:

12.6 3.5 4.5 8.4 2.0 4.5 3.2 4.5 8.4

输出样例:

578.109

代码如下:

#include <iostream>
using namespace std;
class Shape{public :virtual float getArea(){return 0;}
};
class Circle:public Shape{private :float radius;public :Circle(float a):radius(a){}float getArea(){return radius*radius*3.14159f;}
};
class Square:public Shape{private :float len;public :Square(float a):len(a){}float getArea(){return len*len;}
};
class Trapezoid :public Shape{private:float up,down,height;public :Trapezoid(float a,float b,float c):up(a),down(b),height(c){}float getArea(){return (up+down)*height/2;}
};
class Rectangle:public Shape{private :float width,height;public :Rectangle(float a,float b):width(a),height(b){}float getArea(){return width*height;}
};
class Triangle:public Shape{private :float height,down;public :Triangle(float a,float b):down(a),height(b){}float getArea(){return height*down/2;}
};
int main(){float a,b,c,d,e,f,g,h,i;scanf("%f %f %f %f %f %f %f %f %f",&a,&b,&c,&d,&e,&f,&g,&h,&i);Shape *array[5];//新建一个指针数组Circle c1(a);array[0]=&c1;//取内容传入Square s(b);array[1]=&s;Rectangle r(c,d);array[2]=&r;Trapezoid t(e,f,g);array[3]=&t;Triangle tr(h,i);array[4]=&tr;float sum=0;for(int j=0;j<5;j++)sum+=array[j]->getArea();//不能是array[j].getArea()否则会报错printf("%0.3f",sum);
}

这个错误需要注意。

谷雨忍住没上网查,果然自己写才是最有成就感的事情。

7-10 用虚函数计算各种图形的面积 (10 分)相关推荐

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

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

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

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

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

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

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

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

  5. [YTU]_2478( C++习题 虚函数-计算图形面积)

    题目描述 编写一个程序,定义抽象基类Shape,由它派生出5个派生类: Circle(圆形).Square(正方形).Rectangle(矩形).Trapezoid(梯形).Triangle(三角形) ...

  6. 【函数计算月报】2018年10月刊

    重点新闻 阿里新任 CEO 张勇首次电视采访:云计算将是阿里未来主要业务 阿里巴巴新任 CEO 张勇在接受 CNBC 的电视采访时表示坚信未来的每项业务都将由云计算提供支持,非常乐意在新的数字时代建立 ...

  7. 长方形和圆形都属于几何图形,都有周长和面积,并且它们都有自己的周长和面积计算公式。使用抽象类的知识设计一个程序,可以计算不同图形的面积和周长。

    [案例目标] 学会"图形的面积与周长计算程序设计"的实现思路. 独立完成"图形的面积与周长计算程序设计"的源代码编写.编译及运行. 理解和掌握面向对象的设计过程 ...

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

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

  9. python自定义函数求面积_Python函数之计算规则图形的面积

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

最新文章

  1. 第 3 次读 Effective Java,这 58 个技巧最值!
  2. unknown error 1130,unknown error 1045
  3. SUSE Linux SFTP服务器配置
  4. 【Android 逆向】Android 逆向基本概念 ( 软件运行时内存结构 | 文件与内存之间的联系 )
  5. (Spring)声明式事务
  6. [SinGuLaRiTy] 2017 百度之星程序设计大赛 初赛A
  7. L1-042. 日期格式化
  8. SAP Spartacus cxFocus单元测试Expected null to equal -1的错误分析
  9. mybatisplus 强制制空 空覆盖原来的字符串
  10. android 录音原始文件_音频采集:Android基于AudioRecord的实现
  11. 相似图像搜索的哈希算法思想及实现(差值哈希算法和均值哈希算法)
  12. 论文浅尝 | EARL: Joint Entity and Relation Linking for QA over KG
  13. redis rua解决库存问题_库存秒杀问题-redis解决方案- 接口限流
  14. 开万人 AI 大会什么感受?陆奇任大会主席 | AI ProCon 2020
  15. vue 写门户网站_你不得不知道的Vue项目技巧
  16. ExtJS 组件添加子组件
  17. python AES对称加密文件、解密文件
  18. 83 项开源视觉 SLAM 方案够你用了吗?
  19. 用友u9一些常用sql分享
  20. Acwing - 算法基础课 - 笔记(数学知识 · 二)

热门文章

  1. 组织变革方法论:华为从IBM得到的关键启示
  2. 一款强大的芯片nRF52840及利用蓝牙5.0实现数据远程采集
  3. 立体视觉(一)立体标定
  4. Python批量美化excel表的格式
  5. ssm+java茶楼管理系统mwozt(程序+lw+源码+远程部署)
  6. 学习Java,会让你变得越来越自信
  7. iOS Autolayout笔记
  8. RSA公钥加密和私钥加密的区别
  9. adb流化显示功能_红鱼儿
  10. php教程十 超全局变量