2023.4.24记录

声明抽象基类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;
}

posted @ 2023-04-24 22:37  suN(小硕)  阅读(15)  评论(0编辑  收藏  举报