第12周 项目四-点、圆关系(5)

来源:互联网 发布:恒腾网络股票行情 编辑:程序博客网 时间:2024/06/06 00:54

(5)在圆类上重载关系运算符(6种),使之能够按圆的面积比较两个圆的大小。自编main函数完成测试。
代码:

#include <iostream>using namespace std;class Circle;class Point{protected:    int x;    int y;public:    Point(int a,int b):x(a),y(b) {}    friend ostream &operator <<(ostream &out,Point &a);        friend int locate(Point &a,Circle &b);};ostream &operator <<(ostream &out,Point &a){    cout<<"x="<<a.x<<" y="<<a.y<<endl;    return out;}class Circle:public Point{protected:    int r;public:    Circle(int a,int b,int c):Point(a,b),r(c) {}    friend ostream &operator <<(ostream  &out,Circle &a);    friend int locate(Point &a,Circle &b);    bool operator>(Circle a){return this->r>a.r;}    bool operator>=(Circle a){return !(this->r<a.r);}    bool operator<(Circle a){return this->r<a.r;}    bool operator<=(Circle a){return !(this->r>a.r);}    bool operator==(Circle a){return this->r==a.r;}    bool operator!=(Circle a){return !(this->r==a.r);}};ostream &operator <<(ostream  &out,Circle &a){    cout<<"圆心:"<<" ("<<a.x<<"<"<<a.y<<") "<<"半径:"<<a.r<<endl;    return out;}//int locate(Point &a,Circle &b)//{//    return (b.r*b.r-(a.x-b.x)*(a.x-b.x)-(a.y-b.y)*(a.y-b.y));//}int main( ){    Circle c1(3,2,4),c2(4,5,5);      //c2应该大于c1    cout<<"圆c1: "<<c1;    cout<<"圆c2: "<<c1;    cout<<"比较两个圆的面积大小。"<<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;    if (c1!=c2)cout<<"c1!=c2"<<endl;    return 0;}


运行结果:

0 0
原创粉丝点击