欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C++计算圆形、矩形和三角形的面积

程序员文章站 2022-06-24 17:59:03
题目描述运用多态编写程序,声明抽象基类shape,由它派生出3个派生类: circle(圆形)、rectangle(矩形)、triangle(三角形),用一个函数printarea()分别输出以上三者...

题目描述

运用多态编写程序,声明抽象基类shape,由它派生出3个派生类: circle(圆形)、rectangle(矩形)、triangle(三角形),用一个函数printarea()分别输出以上三者的面积(结果保留两位小数),3个图形的数据在定义对象时给定。

输入

圆的半径 矩形的边长 三角形的底与高

输出

圆的面积

矩形的面积

三角形的面积

注意:每一行后有回车符

样例输入

12.6 4.5 8.4 4.5 8.4

样例输出

area of circle=498.76

area of rectangle=37.80

area of triangle=18.90

代码实现

#include<iostream>
#include<iomanip> 
#define pi 3.1415926
using namespace std;
class shape {
    public:
        virtual double printarea()=0;
};
class circle:public shape {
    private:
        double r;
    public:
        circle(double x) {
            r=x;
        }
        virtual double printarea() {
            return pi*r*r;
        }
};
class rectangle:public shape {
    private:
        double w,h;
    public:
        rectangle(double x,double y) {
            w=x,h=y;
        }
        virtual double printarea() {
            return w*h;
        }
};
class triangle:public shape {
    private:
        double w,h;
    public:
        triangle(double x,double y) {
            w=x,h=y;
        }
        virtual double printarea() {
            return w*h/2;
        }
};
double printarea(shape &x) {
	return x.printarea();
}
int main() {
    double a,b,c,d,e;
    cin>>a>>b>>c>>d>>e;
    circle cir(a);
    rectangle rec(b,c);
    triangle tri(d,e);
    cout<<fixed<<setprecision(2)<<"area of circle="<<printarea(cir)<<'\n';
    cout<<fixed<<setprecision(2)<<"area of rectangle="<<printarea(rec)<<'\n';
    cout<<fixed<<setprecision(2)<<"area of triangle="<<printarea(tri)<<'\n';
    return 0;
}

以上所述是小编给大家介绍的c++计算圆形、矩形和三角形的面积,希望对大家有所帮助。在此也非常感谢大家对网站的支持!