编写一个程序定义抽象类有他派生五个派生类 圆 正方形 矩形 梯形 三角形用函数分别求面积 总面积 要求用基类指针数组
2013-06-12 17:00
801 查看
#include<iostream>
using namespace std;
class Shape
{public:
virtual double area()const=0;
};
class Circle:public Shape
{public:
Circle(double r):radius(r){}
virtual double area() const{return 3.14159*radius*radius;};
protected:
double radius;
};
class Square:public Shape
{public:
Square(double s):side(s){}
virtual double area()const{return side*side;}
protected:
double side;
};
class Rectangle:public Shape
{public:
Rectangle(double w, double h):width(w),height(h){}
virtual double area()const{return width*height;}
protected:
double width,height;
};
class Trapezoid:public Shape
{
public:
Trapezoid(double t,double b,double h):top(t),bottom(t),height(h){}
virtual double area()const{return 0.5*(top*bottom)*height;}
protected:
double top,bottom,height;
};
class Triangle:public Shape
{
public:
Triangle(double w,double h):width(w),height(h){}
virtual double area()const{return 0.5*width*height;}
protected:
double width,height;
};
int main()
{ Circle circle(12.6);
Square square(3.5);
Rectangle rectangle(4.5,8.4);
Trapezoid trapezoid(2.0,4.5,3.2);
Triangle triangle(4.5,8.4);
Shape *pt[5]={&circle,&square,&rectangle,&trapezoid,&triangle};]
double areas=0.0;
for(int i=0;i<5;i++)
{areas=areas+pt[i]->area();}
cout<<"total of all area="<<areas<<endl;
return 0;
}
using namespace std;
class Shape
{public:
virtual double area()const=0;
};
class Circle:public Shape
{public:
Circle(double r):radius(r){}
virtual double area() const{return 3.14159*radius*radius;};
protected:
double radius;
};
class Square:public Shape
{public:
Square(double s):side(s){}
virtual double area()const{return side*side;}
protected:
double side;
};
class Rectangle:public Shape
{public:
Rectangle(double w, double h):width(w),height(h){}
virtual double area()const{return width*height;}
protected:
double width,height;
};
class Trapezoid:public Shape
{
public:
Trapezoid(double t,double b,double h):top(t),bottom(t),height(h){}
virtual double area()const{return 0.5*(top*bottom)*height;}
protected:
double top,bottom,height;
};
class Triangle:public Shape
{
public:
Triangle(double w,double h):width(w),height(h){}
virtual double area()const{return 0.5*width*height;}
protected:
double width,height;
};
int main()
{ Circle circle(12.6);
Square square(3.5);
Rectangle rectangle(4.5,8.4);
Trapezoid trapezoid(2.0,4.5,3.2);
Triangle triangle(4.5,8.4);
Shape *pt[5]={&circle,&square,&rectangle,&trapezoid,&triangle};]
double areas=0.0;
for(int i=0;i<5;i++)
{areas=areas+pt[i]->area();}
cout<<"total of all area="<<areas<<endl;
return 0;
}
相关文章推荐
- 写一个程序,定义抽象基类Shape,由它派生出3个派生类,Circle(圆形)、Rectangle(矩形)、Triangle(三角形)。用如下的main()函数,求出定义的几个几何体的面积和。
- 写一个程序,定义抽象基类Shape,由它派生出3个派生类,Circle(圆形)、Rectangle(矩形)、Triangle(三角形)。用如下的main()函数,求出定义的几个几何体的面积和
- 《第十三周任务三》写一个程序,定义抽象基类Shape,由它派生出3个派生类,Circle(圆形)、Rectangle(矩形)、Triangle(三角形)。用如下的mian()函数,求出定义的几个几何体
- 第十三周【任务三】【任务3】写一个程序,定义抽象基类Shape,由它派生出3个派生类,Circle(圆形)、Rectangle(矩形)、Triangle(三角形)。
- 写一个程序,定义抽象基类Shape,由它派生出3个派生类: Circle(圆形)、Rectangle(矩形)、Triangle(三角形)
- 飛飛(四十七)定义抽象基类Shape,由它派生出3个派生类,Circle(圆形)、Rectangle(矩形)、Triangle(三角形)。用如下的main()函数,求出定义的几个几何体的面积和。
- CPoint作为基类,派生出描述一条直线的类Cline,再派生出一个矩形类CRect。要求成员函数能求出两点间的距离、矩形的周长和面积等
- 5.7 编写一个程序,其中有一个函数指针*parea,通过它分别指向计算圆的面积函数 circle 和矩形面积函数 rect 来计算给定圆的面积和矩形面积。
- C++用抽象类,派生类求圆,正方形,矩形,梯形,三角形面积
- 第13周任务3(定义抽象基类Shape,由它派生出3个派生类,Circle(圆形)、Rectangle(矩形)、Triangle(三角形))
- 编写一个程序,要求用户输入最多10个高尔夫成绩,并将其存储在一个数组中。 程序允许用户提早结束输入,并在一行上显示所有成绩,然后报告平均成绩。 请使用3个数组处理函数来分别进行输入、显示和计算
- 1、通过程序设计几何图形(Shape)、矩形(Rectangle)、圆形(Circle)、正方形(Square)几种类型,能够利用接口和多态性计算几何图形的面积和周长并显示。 2、按以下要求编写程序
- 定义一个图形类及其子类(三角形和矩形),分别计算其面积和周长。
- 设计一个抽象类CSolid,含有用于求表面积及体积的两个纯虚函数。设计派生类CCube、CBall、CCylinder,分别表示正方体、球体及圆柱体。在main()函数中,定义CSolid *p;(p
- 已知一个抽象类Shapge,该类中有一个方法GetArea。 要求定义一个Rectangle类,继承Shape类,实现GetArea方法计算矩形面积。
- 编写一个程序,其main()调用一个用户定义的函数(以光年值为参数,并返回对应天文单位 的值).该程序按下面的格式要求用户输入光年值
- 写一个程序,定义抽象基类Shape,由它派生出5个派生类
- 在程序中定义一个基类Person类,由这个基类派生出Teacher(教师)类和Leader(领导)类。采用多继承的方式由这两个类派生出Teacher_Leader类。并且满足以下要求:
- C++第十三周【任务3】定义抽象基类Shape,由它派生出3个派生类,Circle(圆形)、Rectangle(矩形)、Triangle(三角形)
- 写一个程序,定义抽象基类Shape,由它派生出3个派生类