7-3 用虚函数计算各种图形的面积
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 用虚函数计算各种图形的面积相关推荐
- 7-1 用虚函数计算各种图形的面积 (20分) 定义抽象基类Shape,由它派生出五个派生类:Circle(圆形)、Square(正方形)、Rectangle( 长方形)、Trapezoid (梯形)
7-1 用虚函数计算各种图形的面积 (20分) 定义抽象基类Shape,由它派生出五个派生类:Circle(圆形).Square(正方形).Rectangle( 长方形).Trapezoid (梯形) ...
- 7-10 用虚函数计算各种图形的面积 (10 分)
7-10 用虚函数计算各种图形的面积 (10 分) 定义抽象基类Shape,由它派生出五个派生类:Circle(圆形).Square(正方形).Rectangle( 长方形).Trapezoid (梯 ...
- 【PTA】7-2 用虚函数计算各种图形的面积 (10 分)
定义抽象基类Shape,由它派生出五个派生类:Circle(圆形).Square(正方形).Rectangle( 长方形).Trapezoid (梯形)和Triangle (三角形),用虚函数分别计算 ...
- C++习题 虚函数-计算图形面积
C++习题 虚函数-计算图形面积 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 122 Solved: 86 [Submit][Status][We ...
- [YTU]_2478( C++习题 虚函数-计算图形面积)
题目描述 编写一个程序,定义抽象基类Shape,由它派生出5个派生类: Circle(圆形).Square(正方形).Rectangle(矩形).Trapezoid(梯形).Triangle(三角形) ...
- 长方形和圆形都属于几何图形,都有周长和面积,并且它们都有自己的周长和面积计算公式。使用抽象类的知识设计一个程序,可以计算不同图形的面积和周长。
[案例目标] 学会"图形的面积与周长计算程序设计"的实现思路. 独立完成"图形的面积与周长计算程序设计"的源代码编写.编译及运行. 理解和掌握面向对象的设计过程 ...
- Python函数之计算规则图形的面积
来个直接的吧,看代码; #coding=utf-8 from __future__ import unicode_literals import sys reload(sys) sys.setdefa ...
- python自定义函数求面积_Python函数之计算规则图形的面积
来个直接的吧,看代码; #coding=utf-8 from __future__ import unicode_literals import sys reload(sys) sys.setdefa ...
- python函数算面积_Python函数之计算规则图形的面积
#coding=utf-8 from __future__ import unicode_literals import sys reload(sys) sys.setdefaultencoding( ...
最新文章
- Leetcode 104. 二叉树的最大深度 解题思路及C++实现
- POJ 3264 Balanced Lineup(RMQ)
- 小米线刷一直显示flashing_小米空调质量怎么样 小米空调一晚上多少电 看完这篇你就有数了...
- win 7系统连接WIFI
- 统计图表类库--libchart使用简介
- 批处理删除文件夹下所有文件和文件夹
- 表情包制作html,人脸表情包制作,如何用人脸制作表情包
- 微信小程序canvas2D全新API介绍
- 什么是软件EV代码签名证书
- 如何才能做好短线交易?这三点你要知道!
- 高等代数 线性空间(第8章)1 线性空间与子空间
- Java 标准输入输出流(System.in,System.out)使用
- 技术人如何打造个人品牌?
- 四大盈利互联网经营理念
- 谈谈人的视觉特性与电视的关系
- latex中插入图片以及固定图片位置
- 怒了!!!专科怎么了?搞学历歧视?专科这样做,照样牛掰!
- idea创建文件时生成文档注释
- 输入股票代码判断深市还是沪市,python
- 米公益完结项目结项反馈——环保梦想,你我一同点亮