椭圆类——1(类的设计)
程序员文章站
2022-03-08 19:33:57
...
【问题描述】
设计并测试一个名为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;
}
上一篇: 第7章 类