【问题描述】 设计并测试一个名为Ellipse的椭圆类: (1)其私有数据成员为外切矩形的左上角与右下角两个点的坐标(4个int型数据成员x1,y1,x2,y2) (2)声明4个公有的成员函数分别访问椭圆的外切矩形的顶点坐标,例如int Getx1(); (3)设计1个构造函数Ellipse(int,int,int,int)对椭圆的外切矩形的顶点坐标赋值 (4)设计1个公有成员函数Area()计算椭圆的面积。 【输入形式】在主函数里输入顶点坐标,并声明一个Ellipse类的对象。 【输出形式】在主函数里调用该对象的成员函数输出外切矩形的顶点坐标,计算并输出椭圆的面积。 【样例输入】 -3 1 3 -1 【样例输出】 -3 1 3 -1 9.424
时间: 2024-03-16 07:46:03 浏览: 122
Ellipse 椭圆算法
4星 · 用户满意度95%
以下是Ellipse类的实现代码,包含构造函数、公有成员函数和私有数据成员的定义:
```c++
#include <iostream>
#include <cmath>
using namespace std;
class Ellipse {
private:
int x1, y1, x2, y2;
public:
Ellipse(int x1, int y1, int x2, int y2) {
this->x1 = x1;
this->y1 = y1;
this->x2 = x2;
this->y2 = y2;
}
int Getx1() { return x1; }
int Gety1() { return y1; }
int Getx2() { return x2; }
int Gety2() { return y2; }
double Area() {
double a = abs(x1 - x2) / 2.0;
double b = abs(y1 - y2) / 2.0;
return M_PI * a * b;
}
};
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 << e.Area() << endl;
return 0;
}
```
输入样例:
```
-3 1 3 -1
```
输出样例:
```
-3 1 3 -1
9.42478
```
其中,面积的计算采用了椭圆的标准公式 $S=\pi ab$,其中 $a$ 和 $b$ 分别为半长轴和半短轴的长度,根据外切矩形的大小可以计算得到。
阅读全文