- #include <iostream.h>
- #include <math.h>
- const double PI=3.14;
- class Geometric_shape{
- public:
- Geometric_shape()
- {
- }
- virtual double Get_Girth()=0; //周长
- virtual double Get_Area()=0; //面积
- virtual double Get_Volume()=0; //体积
- virtual double Get_SurArea()=0; //表面积
- virtual void print()=0;
- };
- class Rectangle:public Geometric_shape{
- protected:
- double length,width;
- public:
- Rectangle(double l,double w):length(l),width(w){}
- double Get_Girth()
- {
- return 2 * (width + length);
- }
- double Get_Area()
- {
- return width * length;
- }
- virtual double Get_Volume()
- {
- return 0.0;
- }
- virtual double Get_SurArea()
- {
- return 0.0;
- }
- void print()
- {
- cout<<"The Rectangle's Girth is:"<<Get_Girth()<<endl;
- cout<<"The Rectangle's Area is:"<<Get_Area()<<endl;
- }
- };
- class Circle:public Geometric_shape{
- protected:
- double radius;
- public:
- Circle(double l):Geometric_shape(),radius(l){}
- double Get_Girth()
- {
- return 2 * PI * radius;
- }
- double Get_Area()
- {
- return PI * radius * radius;
- }
- virtual double Get_Volume()
- {
- return 0.0;
- }
- virtual double Get_SurArea()
- {
- return 0.0;
- }
- void print()
- {
- cout<<"The Circle's Girth is:"<<Get_Girth()<<endl;
- cout<<"The Circle's Area is:"<<Get_Area()<<endl;
- }
- };
- class Triangle:public Geometric_shape{
- protected:
- double len1,len2,len3;
- public:
- Triangle(double a,double b,double c)
- {
- len1 = a;
- len2 = b;
- len3 = c;
- }
- double Get_Girth()
- {
- return len1 + len2 + len3;
- }
- double Get_Area()
- {
- double p = Get_Girth() / 2;
- return sqrt(p * (p - len1) * (p - len2) * (p - len3));
- }
- virtual double Get_Volume()
- {
- return 0.0;
- }
- virtual double Get_SurArea()
- {
- return 0.0;
- }
- void print()
- {
- cout<<"The Triangle's Grith is:"<<Get_Girth()<<endl;
- cout<<"The Triangle's Area is:"<<Get_Area()<<endl;
- }
- };
- class Box:public Rectangle{
- protected:
- double height;
- public:
- Box(double l,double w,double h):Rectangle(l,w),height(h){}
- double Get_SurArea()
- {
- return 2 * (length * width + width * height + height * length);
- }
- double Get_Volume()
- {
- return length * width * height;
- }
- void print()
- {
- cout<<"The Box's SurArea is:"<<Get_SurArea()<<endl;
- cout<<"The Box's volume is:"<<Get_Volume()<<endl;
- }
- };
- class Column:public Circle{
- private:
- double height;
- public:
- Column(double l,double h):Circle(l),height(h){}
- double Get_SurArea()
- {
- double a;
- a = 2 * Get_Area() + 2 * PI * radius * height;
- return a;
- }
- double Get_Volume()
- {
- return Get_Area() * height;
- }
- void print()
- {
- cout<<"The Cylinder's SurArea is:"<<Get_SurArea()<<endl;
- cout<<"The Cylinder's Volume is:"<<Get_Volume()<<endl;
- }
- };
- class Ball:public Circle{
- public:
- Ball(double l):Circle(l){}
- double Get_SurArea()
- {
- return 4.0 * Get_Area();
- }
- double Get_Volume()
- {
- return 4.0 * Get_Area() * radius /3.0;
- }
- void print()
- {
- cout<<"The Cone's SurArea is:"<<Get_SurArea()<<endl;
- cout<<"The Cone's Volume is:"<<Get_Volume()<<endl;
- }
- };
- void fun(Geometric_shape &p)
- {
- p.print();
- }
- void main()
- {
- Circle c(2.5);
- fun(c);
- Rectangle r(2.4,3.6);
- fun(c);
- Ball b(3.5);
- fun(b);
- Column co(3.5,5.3);
- fun(co);
- Triangle t(2.3,4.2,3.4);
- fun(t);
- Box bo(3,5.2,3.6);
- fun(bo);
- }
面向对象程序设计 第五次实验参考代码
最新推荐文章于 2022-04-15 19:45:43 发布