爱悠闲 > 十四周任务二————计算总面积

十四周任务二————计算总面积

作者: zcyhr2012 相关  |  发布日期 : 2014-09-10  |  热度 : 997°
/*

* 程序的版权和版本声明部分

* Copyright (c)2013, 烟台大学计算机学院学生

* All rightsreserved.

* 文件名称:score.cpp                           

* 作    者:   刘元龙                         

* 完成日期: 2013 年5 月 31  日

* 版本号: v1.0      

* 输入描述:

* 问题描述:

* 输出:

*/
#include<iostream>
using namespace std;
//空基类
class shape
{
  public:
  virtual double area()
   {
       cout<<"没和我说是什么形状,我怎么计算面积:";
   }

};


//圆类
class circle:public shape
{
  public:
  circle(double);
  double area();
  protected:
  double r;
};
circle::circle(double R)
{
    r=R;
}
double circle::area()
{
    double s;
    s=3.14*r*r;
    return s;
}
//矩形类
class rectangle:public shape
{
    public:
    rectangle(double,double);
    double area();
    protected:
    double x,y;
};

rectangle::rectangle(double X,double Y)
{
    x=X;
    y=Y;
}
double rectangle::area()
{
    double s;
    s=x*y;
    return s;
}
//三角形类
class triangle:public shape
{
    public:
    triangle(double,double);
    double area();
    protected:
    double a,b,c;
};

triangle::triangle(double X,double Y)
{
    a=X;
    b=Y;

}

double triangle::area()
{
    double s;
    s=(a*b)/2;
    return s;
}


int main()
{
    circle c1(12.6),c2(4.9);//建立Circle类对象c1,c2,参数为圆半径
    rectangle r1(4.5,8.4),r2(5.0,2.5);//建立Rectangle类对象r1,r2,参数为矩形长、宽
    triangle t1(4.5,8.4),t2(3.4,2.8); //建立Triangle类对象t1,t2,参数为三角形底边长与高
    shape *pt[6]= {&c1,&c2,&r1,&r2,&t1,&t2}; //定义基类指针数组pt,使它每一个元素指向一个派生类对象
    double areas=0.0; //areas为总面积
    for(int i=0; i<6; i++)
    {
        areas=areas + pt[i]->area();
    }
    cout<<"totol of all areas="<<areas<<endl;   //输出总面积
    return 0;
}


运行结果: