圆的比较

来源:互联网 发布:华为云计算调研报告 编辑:程序博客网 时间:2024/05/29 10:48

/*烟台大学计算机学院学生
*All right reserved.
*文件名称:圆的比较
*作者:崔俊

*完成日期:2014年6月9日
*版本号:v1.0
*对任务及求解方法的描述部分:圆的比较
*我的程序:*/
#include <iostream>
#include <cmath>
using namespace std;
class point
{
protected:
    double x,y;
public:
    point(double xx,double yy):x(xx),y(yy){}
    double getx()
    {
        return x;
    }
     double gety()
    {
        return y;
    }
    ~point()
    {

    }
    friend ostream& operator <<(istream &putout,point &c);
};
ostream& operator <<(ostream &putout,point &c)
{
    putout<<"("<<c.getx()<<","<<c.gety()<<")"<<endl;
    return putout;
}
class circle:public point
{
private:
    double r;
public:
    circle(double xx,double yy,double rr):
        point(xx,yy),r(rr){}
    ~circle()
    {

    }
    friend ostream& operator <<(ostream &putout,circle &c);
    double area()
    {
        return 3.14*r*r;
    }
    bool operator >=(circle c);
    bool operator <(circle c);
    bool operator <=(circle c);
    bool operator >(circle c);
    bool operator ==(circle c);
    bool operator !=(circle c);
};
ostream& operator <<(ostream &putout,circle &c)
{
    putout<<"("<<c.getx()<<","<<c.gety()<<")"<<endl;
    putout<<"半径"<<c.r<<endl;
     return putout;
}
bool circle::operator >=(circle c)
{
    if(area()>=c.area())
    return true;
    return false;
}
bool circle::operator <(circle c)
{
    if(*this>=c)
        return false;
    return true;
}
bool circle::operator <=(circle c)
{
    if(area()<=c.area())
    return true;
    return false;
}
bool circle::operator >(circle c)
{
    if(*this<=c)
        return false;
    return true;
}
bool circle::operator ==(circle c)
{
    if(area()==c.area())
        return true;
    return false;
}
bool circle::operator !=(circle c)
{
    if(*this==c)
        return false;
    return true;
}
int main( )
{
    circle c1(3,2,4),c2(4,5,5);      //c2应该大于c1
     cout<<"圆c1: "<<c1;
    cout<<"圆c2: "<<c2;
     cout << "下面比较两个圆的大小:\n";
    if (c1 > c2) cout << "c1>c2" << endl;
    if (c1 < c2) cout << "c1<c2" << endl;
    if (c1 == c2) cout << "c1=c2" << endl;
    if (c1 != c2) cout << "c1≠c2" << endl;
    if (c1>= c2) cout << "c1≥c2" << endl;
    if (c1 <= c2) cout << "c1≤c2" << endl;
    return 0;
}

0 0