求图形面积

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Fiverya/article/details/88884635

请用多态机制,编写一个程序计算三角形、矩形、圆形这三种图形的面积
  设计一个图形(shape)类,类中有数据成员x、y,成员函数有构造函数、求面积函数及输出函数,后两个函数定义为纯虚函数。
  由shape类派生出三角形类、矩形类和圆形类。,为矩形的长和宽,
  在三角形类中x、y分别为三角形的底和高,定义求三角形面积函数及输出函数的具体实现。
  在矩形类中x、y分别为三角形的长和宽,定义求矩形面积函数及输出函数的具体实现。
  在圆形类中x为圆的半径,定义求圆面积函数及输出函数的具体实现(pai=3.14)。
  输入x,y的值,输出各图形面积值。
  输入:10 10
  triangleArea=50
  rectangleArea=100
  circleArea=314

#include<iostream>    
using namespace std;    
class Shape  
{  
    protected:  
    double x,y;  
    public:  
        Shape(double a,double b){x=a,y=b;}  
        virtual double area() {}  
        virtual void print(){}  
};  
class tri:public Shape  
{  
    public:  
    tri(double a,double b):Shape(a,b){}  
    double area(){return x*y*0.5;}  
    void print(){cout<<"triangleArea="<<area()<<endl;}  
};  
class rec:public Shape  
{  
    public:  
    rec(double a,double b):Shape(a,b){}  
    double area(){return x*y;}  
    void print(){cout<<"rectangleArea="<<area()<<endl;}  
};  
class circle:public Shape  
{  
    public:  
    circle(double a,double b):Shape(a,b){}  
    double area(){return 3.14*x*x;}  
    void print(){cout<<"circleArea="<<area()<<endl;}  
};  
int main()    
{    
    double a,b;  
    cin>>a>>b;  
    tri tri1(a,b);  
    rec rec1(a,b);  
    circle circle1(a,b);  
    tri1.print();  
    rec1.print();  
    circle1.print();  
    return 0;    
}  

猜你喜欢

转载自blog.csdn.net/Fiverya/article/details/88884635
今日推荐