第十三周实验报告3

来源:互联网 发布:光之教堂数据 编辑:程序博客网 时间:2024/04/29 04:58
/* (程序头部注释开始)* 程序的版权和版本声明部分* Copyright (c) 2012, 烟台大学计算机学院学生 * All rights reserved.* 文件名称:Shape抽象类* 作 者: 于宸* 完成日期: 2012 年 05 月 20 日* 版 本 号: 1.067* 对任务及求解方法的描述部分* 输入描述: ......* 问题描述: ......* 程序输出: ......* 程序头部的注释结束*/
#include<iostream>   using namespace std;  const double PI = 3.14159;  class Shape  {  public:      virtual double area() const =0;    };   class Circle: public Shape  {  public:      Circle(double radius);                                        virtual double area() const;  protected:      double radius;                                                 //半径   };   class Rectangle: public Shape  {  public:      Rectangle(double length, double width);     virtual double area() const;  protected:      double length;    double width;  };    class Triangle: public Shape  {  public:    Triangle(double base, double height);     virtual double area() const;  protected:     double base;     double height;  };    Circle::Circle(double radius)  {     this->radius = radius;  }   double Circle::area() const  {     return PI * radius * radius;  }    Rectangle::Rectangle(double length, double width)  {      this->length = length;      this->width = width;  }    double Rectangle::area() const  {     return length * width;  }  Triangle::Triangle(double base, double height)  {     this->base = base;     this->height = height;  }    double Triangle::area() const  {     return 0.5 * base * height;  }   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;   //输出总面积      system("pause");    return 0;  }  

 

 

 



原创粉丝点击