C++创建一个名为Ellipse的椭圆类--练习

  • 题目描述:
/*设计名为Ellipse的椭圆类*/
/*
其属性为外接矩形的左上角与右下角两个点的坐标,并能计算出椭圆的面积,并测试该类。
*/
  • 代码如下:
#include<iostream>
#include<map>
#include<set>
#include<algorithm>
using namespace std;
const double PI = acos(-1.0);
class Point {
public:
    Point() {}
    Point(int a, int b) {
        setX(a);
        setY(b);
    }
    Point(Point &tp) {
        this->setX(tp.getX());
        this->setY(tp.getY());
    }
    Point get_Point()
    {
        cout << "Please enter the coordinate of another point[ 9 6 menas the point is(9,6) ]:";
        cin >> x >> y;
        return *this;
    }
    ~Point(){}
    void details() {
        cout << "The Point:"
            << "X-coordinate:" << x << endl
            << "Y-coordinate:" << y << endl;
    }
    int getX() {
        return x;
    }
    int getY() {
        return y;
    }
    void setX(int a) {
        x = a;
    }
    void setY(int b) {
        y = b;
    }
private:
    int x;
    int y;
};
class Ellipse {
public:
    Ellipse(int x1, int y1, int  x2, int y2) {
        Pa.setX(x1);
        Pa.setY(y1);
        Pb.setX(x2);
        Pb.setY(y2);
    }
    Ellipse(Point &a,Point &b) {    
        Pa = a;
        Pb = b;
    }
    Ellipse(){}
    ~Ellipse(){}
    double area() {
        double a = fabs(Pa.getX() - Pb.getX())*1.0;
        double b = fabs(Pa.getY() - Pb.getY())*1.0;
        return PI*a*b;
    }
    void show() {
        cout << "The area of the Ellipse is:"
            << area() << endl;
        cout << "The coordinates of the upper-left corner of its external rectangle and the two points in the lower-right corner are:" <<endl;
            Pa.details();
            Pb.details();
    }
private:
    Point Pa, Pb;
};
int main(void)
{
    Point a, b;
    a.get_Point();
    b.get_Point();
    Ellipse asp(a, b);
    asp.show();
    return 0;
}
  • 测试截图:

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏小樱的经验随笔

BZOJ 3097: Hash Killer I【构造题,思维题】

3097: Hash Killer I Time Limit: 5 Sec  Memory Limit: 128 MBSec  Special Judge Su...

2126
来自专栏LhWorld哥陪你聊算法

Hadoop源码篇--Reduce篇

Reduce文件会从Mapper任务中拉取很多小文件,小文件内部有序,但是整体是没序的,Reduce会合并小文件,然后套个归并算法,变成一个整体有序的文件。

2621
来自专栏算法修养

CodeForces 156B Suspects(枚举)

B. Suspects time limit per test 2 seconds memory limit per test 256 megaby...

3325
来自专栏菩提树下的杨过

无限级分类(非递归算法/存储过程版/GUID主键)完整数据库示例_(2)插入记录

-- ======================================== -- Author:  <杨俊明,jimmy.yang@cntvs.c...

2019
来自专栏码匠的流水账

聊聊eureka的TaskDispatcher

eureka-core-1.8.8-sources.jar!/com/netflix/eureka/cluster/ReplicationTask.java

1471
来自专栏一名叫大蕉的程序员

好好玩的螺旋算法No.69

看到一个小伙伴分享这么一个东西,觉得蛮好玩的。先上图。我觉得蛮好玩的,就心心念念想着分享给你们也玩玩,顺便自己实现了一遍。 ? ? 好,现在开始说是怎么玩的。 ...

2069
来自专栏贾老师の博客

【笔记】ejoy2d —— shader

2303
来自专栏闵开慧

曾经做过的40道程序设计课后习题总结(四)

曾经做过的40道程序设计课后习题总结(四) 课后习题目录 1 斐波那契数列 2 判断素数 3 水仙花数 4 分解质因数 5 杨辉三角 6 学习成绩查询...

4869
来自专栏xdecode

PDFBox 打印带背景的文件速度慢

打印慢的原因 java的RasterPrinterJob会执行很多次printPage方法 他应该是按块填充的, 如果页面元素非常复杂, 那么printPage...

4237
来自专栏软件开发 -- 分享 互助 成长

CRC校验码

循环冗余校验码(CRC)的基本原理是:在K位信息码后再拼接R位的校验码,整个编码长度为N位,因此,这种编码也叫(N,K)码。对于一个给定的(N,K)码,可以证明...

2796

扫码关注云+社区

领取腾讯云代金券