一.题目描述
椭球类(考察类的构建、构造函数及成员函数的定义与使用)
Description
定义一个椭球(Ellipsoid)类,具体要求如下:
(1) 数据成员包含三个轴的半径r1、r2、r3及圆周率PI=3.1416;
(2) 构造函数:给椭球中的数据成员赋初值。如果不给定任何初始值,则默认椭球三个半径r1=r2=r3=1.0;
(3) 设计成员函数bool IsEqual()判断两个椭球是否完全相同,返回值为布尔类型(true或false);
(4) 设计成员函数double GetVolume()用于计算椭球的体积(注:椭球的体积公式为4*PI*r1*r2*r3/3)。
Input
第一个椭球的半径和第二个椭球的半径。
Output
第一个椭球的体积,第二个椭球的体积,若第一个椭球与第二个椭球完全一样,则输出true,否则输出false。
二.输入与输出
Sample Input 1
2 3 4
3 4 5
Sample Output 1
100.531 251.328 false
三.代码
#include<bits/stdc++.h>
using namespace std;
class Ellipsoid
{
public:
double r1;
double r2;
double r3;
double PI=3.1416;
Ellipsoid(double a=1.0,double b=1.0,double c=1.0):r1(a),r2(b),r3(c){}
double GetVolume(){
return 4*PI*r1*r2*r3/3;
}
bool IsEqual(Ellipsoid&other){
double radii1[3] = {r1, r2, r3};
double radii2[3] = {other.r1, other.r2, other.r3};
sort(radii1, radii1 + 3);
sort(radii2, radii2 + 3);
return (radii1[0] == radii2[0] && radii1[1] == radii2[1] && radii1[2] == radii2[2]);
}
};
int main()
{
double r1_1,r2_1,r3_1;
double r1_2,r2_2,r3_2;
cin>>r1_1>>r2_1>>r3_1;
cin>>r1_2>>r2_2>>r3_2;
Ellipsoid e1(r1_1,r2_1,r3_1);
Ellipsoid e2(r1_2,r2_2,r3_2);
double v1=e1.GetVolume();
double v2=e2.GetVolume();
cout<<v1<<" "<<v2<<endl;
if(e1.IsEqual(e2)){
cout<<"true"<<endl;
}
else{
cout<<"false"<<endl;
}
return 0;
}