橢圓類——1(類的設計)
阿新 • • 發佈:2018-12-25
【問題描述】
設計並測試一個名為Ellipse的橢圓類:
(1)其私有資料成員為外切矩形的左上角與右下角兩個點的座標(4個int型x1,y1,x2,y2)
(2)宣告4個公有的成員函式分別訪問橢圓的外切矩形的頂點座標
(3)設計1個建構函式Ellipse(int,int,int,int)對橢圓的外切矩形的頂點座標賦值
(4)設計1個公有成員函式Area()計算橢圓的面積。
【輸入形式】
在主函式裡輸入頂點座標,並宣告一個Ellipse類的物件。
【輸出形式】
在主函式裡呼叫該物件的成員函式輸出外切矩形的頂點座標,計算並輸出橢圓的面積。
【樣例輸入】
-3 1 3 -1
【樣例輸出】
-3 1 3 -1
9.4245
#include <iostream>
#include <math.h>
#include <iomanip>
using namespace std;
class Ellipse
{
private:
int x1,y1,x2,y2;
public:
//建構函式
Ellipse(int xx1,int yy1,int xx2,int yy2);
//功能函式
double Area();//計算橢圓面積
int GetX1(){return x1;}
int GetY1 (){return y1;}
int GetX2(){return x2;}
int GetY2(){return y2;}
};
Ellipse::Ellipse(int xx1,int yy1,int xx2,int yy2)
{
x1 = xx1; y1 = yy1; x2 = xx2; y2 = yy2;
}
double Ellipse::Area()
{
return (double)( 3.1415 * fabs(x2-x1) * fabs(y2-y1) / 4 );
}
int main()
{
int x1,y1,x2,y2;
cin >> x1 >> y1 >> x2 >> y2;
Ellipse e(x1,y1,x2,y2);
cout << e.GetX1() << " " << e.GetY1() << " " << e.GetX2() << " " << e.GetY2() << endl;
cout << fixed << setprecision(4) << e.Area() << endl;
return 0;
}