声明抽象基类Shape,由它派生出三个类,圆形Circle,矩形Rectangle,三角形Triangle,用一个函数输出三个面积。
输入格式:
在一行中依次输入5个数,圆的半径,长方形的高和宽,三角形的高和底,中间用空格分隔
输出格式:
圆的面积,长方形的面积,三角形的面积,小数点后保留2位有效数字,每个面积占一行。
输入样例:
在这里给出一组输入。例如:
3 3 4 3 4
输出样例:
在这里给出相应的输出。例如:
28.27 12.00 6.00
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
const double pi = 3.141592654;
class Shape{
public:
virtual double getArea() = 0;
};
class Circle : public Shape{
public:
Circle(double r){
radius = r;
}
virtual double getArea(){
return pi * radius * radius;
}
private:
double radius;
};
class Rectangle : public Shape{
public:
Rectangle(double h,double w){
height = h;
width = w;
}
virtual double getArea(){
return height * width;
}
private:
double height, width;
};
class Triangle : public Shape{
public:
Triangle(double h,double b){
height = h;
base = b;
}
virtual double getArea(){
return height * base / 2;
}
private:
double height, base;
};
int main(){
double radius, height_r, width_r, height_t, base_t;
cin>>radius>>height_r>>width_r>>height_t>>base_t;
Circle c(radius);
Rectangle r(height_r, width_r);
Triangle t(height_t, base_t);
printf("%.2lf\n%.2lf\n%.2lf\n", c.getArea(), r.getArea(), t.getArea());
return 0;
}