7-3 用虚函数计算各种图形的面积
定义抽象基类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;
#define PI 3.14159
class Shape
{
protected:double a, b, c;
public:Shape(double a=0,double b=0,double c=0){this->a = a; this->b = b;this->c = c;}virtual double getmianji() = 0;
};
class Circle:public Shape//(圆形)
{//Circle(圆形)、Square(正方形)、Rectangle( 长方形)、Trapezoid (梯形)和Triangle (三角形)
public:Circle(double a) :Shape(a) {}double getmianji(){return PI * a * a;}
};
class Square :public Shape//(正方形)
{
public:Square(double a) :Shape(a) {}double getmianji(){return  a * a;}
};
class Rectangle :public Shape//(长方形)
{
public:Rectangle(double a,double b) :Shape(a,b) {}double getmianji(){return a*b;}
};
class Trapezoid :public Shape//(梯形)
{
public:Trapezoid(double a,double b,double c) :Shape(a,b,c) {}double getmianji(){return (a + b) * c * 0.5;}
};
class Triangle :public Shape//(三角形)
{
public:Triangle(double a,double b) :Shape(a,b) {}double getmianji(){return a*b*0.5;}
};
int main()
{//12.6 3.5 4.5 8.4 2.0 4.5 3.2 4.5 8.4//要求用基类指针数组double a, b, c;cin >> a;Circle C(a);cin >> a ;Square s(a);cin >> a >> b;Rectangle r(a, b);cin >> a >> b >> c;Trapezoid t1(a, b, c);cin >> a >> b;Triangle t2(a, b);Shape* sp[5] = { &C,&s,&r,&t1,&t2 };double sum = 0;for (int i = 0; i < 5; i++){sum += sp[i]->getmianji();}printf("%0.3f", sum);system("pause");
}

7-3 用虚函数计算各种图形的面积相关推荐

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

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

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

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

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

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

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

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

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

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

  8. python自定义函数求面积_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.setdefaultencoding( ...

最新文章

  1. Leetcode 104. 二叉树的最大深度 解题思路及C++实现
  2. POJ 3264 Balanced Lineup(RMQ)
  3. 小米线刷一直显示flashing_小米空调质量怎么样 小米空调一晚上多少电 看完这篇你就有数了...
  4. win 7系统连接WIFI
  5. 统计图表类库--libchart使用简介
  6. 批处理删除文件夹下所有文件和文件夹
  7. 表情包制作html,人脸表情包制作,如何用人脸制作表情包
  8. 微信小程序canvas2D全新API介绍
  9. 什么是软件EV代码签名证书
  10. 如何才能做好短线交易?这三点你要知道!
  11. 高等代数 线性空间(第8章)1 线性空间与子空间
  12. Java 标准输入输出流(System.in,System.out)使用
  13. 技术人如何打造个人品牌?
  14. 四大盈利互联网经营理念
  15. 谈谈人的视觉特性与电视的关系
  16. latex中插入图片以及固定图片位置
  17. 怒了!!!专科怎么了?搞学历歧视?专科这样做,照样牛掰!
  18. idea创建文件时生成文档注释
  19. 输入股票代码判断深市还是沪市,python
  20. 米公益完结项目结项反馈——环保梦想,你我一同点亮

热门文章

  1. ansys 14.0
  2. 计算机网络-网络层篇-NAT技术
  3. java中基本数据类型和引用数据类型各有什么特点
  4. Android-FrameWork原理与架构分析
  5. 【Git】Git基础
  6. jpg,png,区别
  7. CVSS3.0打分学习
  8. 2的n次方计算,支持大整数,nodejs代码
  9. 西门子SIMATIC IT平台
  10. 中国大学mooc乐学python答案_中国大学MOOC(慕课)_乐学Python_章节考试选修课答案