zoukankan      html  css  js  c++  java
  • 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;
    }
    • 测试截图:
  • 相关阅读:
    [转][LeetCode]Longest Common Prefix ——求字符串的最长公共前缀
    [转]最长回文子串——4种解法
    [转]通过金矿模型介绍动态规划
    一句话说清楚什么是闭包函数
    [转]as3事件流机制彻底理解
    Eclipse 快捷键
    文件打包与解压缩
    第5节 环境变量与文件查找
    vim的多标签
    java思维导图
  • 原文地址:https://www.cnblogs.com/FlyerBird/p/8995965.html
Copyright © 2011-2022 走看看