第1个回答 推荐于2016-12-02
#include "iostream.h"
class Circle//基类圆
{
public:
double r;
public:
void print()
{
cout<<"半径为:"<<r<<endl;
}
Circle(double x)//圆的构造函数
{
r=x;
}
double GetR()//获取圆的半径
{
return r;
}
};
class Sphere:public Circle//球类
{
public:
Sphere(double x):Circle(x)//球的构造函数
{
}
double GetTheSphereArea()//获取球的表面积
{
double R=GetR();
return (4*3.14*R*R);
}
double GetTheSphereVolume()//获取球的体积
{
double R=GetR();
return ((3.14*R*R*R)*3/4);
}
};
class Cylinder:public Circle//圆柱类
{
public:
double h;
Cylinder(double x ,double y):Circle(x)//圆柱类的构造函数
{
h=y;
}
double GetTheCylinderArea()//获圆柱类的表面积
{
double R=GetR();
return (2*3.14*R*R+2*3.14*R*h);
}
double GetTheCylinderVolume()//获圆柱类的体积
{
double R=GetR();
return (3.14*R*R*h);
}
};
class Vec:public Circle//圆锥类
{
public:
double h;
Vec(double x ,double y):Circle(x)//圆锥类的构造函数
{
h=y;
}
double GetTheVecArea()//获圆锥类的表面积
{
double R=GetR();
return (2*3.14*R*R+2*3.14*R*h);//求表面积公式不会,你自己写吧
}
double GetTheVecVolume()//获圆锥类的体积
{
double R=GetR();
return (3.14*R*R*h)/3;
}
};
void main()//主函数
{
Sphere Sphere1(2.5);//初始球类对象
double a=Sphere1.GetTheSphereArea();
cout<<"球的表面积为"<<a<<endl;
a=Sphere1.GetTheSphereVolume();
cout<<"球的体积为"<<a<<endl;
//其余的类似;
}本回答被提问者采纳
第2个回答 2007-12-16
#include<iostream.h>
#include<math.h>
//#define PI 3.14
class Point
{
protected:
float x1,y1;
public:
Point(float a,float b)
{x1=a;y1=b;}
void SetPoint()
{
float a;float b;
cout<<"input x1,y1:";
cin>>a>>b;
x1=a;y1=b;
//cout<<"点为:("<<x1<<","<<y1<<")"<<endl;
}
};
class Line:public Point
{
protected:
double l;
float x2,y2;
public:
Line():Point(0,0){x2=3.0;y2=4.0;}
Line(float a,float b,float c,float d):Point(c,d){x2=a;y2=b;}
void SetLine()
{
SetPoint();
cout<<"input x2,y2:";
cin>>x2>>y2;
cout<<"线段的两点是:("<<x1<<","<<y1<<"); "<<"("<<x2<<","<<y2<<")\n";
}
double length()
{
l=sqrt(fabs((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)));
return l;
}
};
class Figure
{
public:
virtual double area()=0;//面积
virtual void girth()=0;//周长
virtual void barea()=0;//表面积
virtual void cubage()=0;//体积
};
class Rectangle:public Line,virtual public Figure//长方形
{
protected:
Line l1;
Line l2;
double area1;
public:
double area()
{
double s1,s2;
l1.SetLine();
s1=l1.length();
cout<<"线段的长度是: "<<s1<<endl;
l2.SetLine();
s2=l2.length();
cout<<"线段的长度是: "<<s2<<endl;
area1=s1*s2;
cout<<"长方形的面积是:"<<area1<<endl;
return area1;
}
void girth()
{
double s1,s2;
s1=l1.length();
s2=l2.length();
cout<<"长方形的周长是:"<<2*(s1+s2)<<endl;
}
void barea(){}
void cubage(){}
};
class Squre:public Line,virtual public Figure//正方形
{
protected:
Line l1;
double area2;
public:
double area()
{
double s1;
l1.SetLine();
s1=l1.length();
cout<<"线段的长度是: "<<s1<<endl;
area2=s1*s1;
cout<<"正方形的面积是:"<<area2<<endl;
return area2;
}
void girth()
{
double s1;
s1=l1.length();
cout<<"正方形的周长是:"<<4*s1<<endl;
}
void barea(){}
void cubage(){}
};
class Cuboid:public Rectangle//长方体
{
private:
Line l3;
public:
void barea()
{
double s1,s2,s3;
l1.SetLine();
cout<<"线段的长度是: "<<l1.length()<<endl;
l2.SetLine();
cout<<"线段的长度是: "<<l2.length()<<endl;
l3.SetLine();
cout<<"线段的长度是: "<<l3.length()<<endl;
s1=l1.length()*l3.length();
s2=l2.length()*l3.length();
s3=l1.length()*l3.length();
cout<<"长方体的表面积是:"<<2*(s1+s2+s3)<<endl;
}
void cubage()
{cout<<"长方体的体积是:"<<l1.length()*l2.length()*l3.length()<<endl;}
};
class SquareBody:public Squre//正方体
{
public:
void barea()
{
l1.SetLine();
cout<<"线段的长度是: "<<l1.length()<<endl;
cout<<"正方体的表面积是:"<<6*l1.length()*l1.length()<<endl;
}
void cubage()
{cout<<"正方体的体积是:"<<l1.length()*l1.length()<<endl;}
};
void main()
{
Figure *ptr;
Rectangle obj1;
Squre obj2;
Cuboid obj3;
SquareBody obj4;
cout<<"以下为长方形:"<<endl;
cout<<"************************************************************"<<endl;
ptr=&obj1;
ptr->area();
ptr->girth();
cout<<endl;
cout<<"以下为正方形:"<<endl;
cout<<"************************************************************"<<endl;
ptr=&obj2;
ptr->area();
ptr->girth();
cout<<endl;
cout<<"以下为长方体:"<<endl;
cout<<"************************************************************"<<endl;
ptr=&obj3;
ptr->barea();
ptr->cubage();
cout<<endl;
cout<<"以下为正方体:"<<endl;
cout<<"************************************************************"<<endl;
ptr=&obj4;
ptr->barea();
ptr->cubage();
cout<<"************************************************************"<<endl;
cout<<"程序结束,谢谢指导"<<endl;
}