第十三周 项目四--点、圆的关系(5)

来源:互联网 发布:wifi和数据同时开 编辑:程序博客网 时间:2024/05/30 13:41

问题及代码:

/**Copyright (c) 2015,烟台大学计算机学院*All rights reserved.*文件名称:test.cpp*作者:吴胜男*完成日期:2015年05月28日*版本号:v1.0**问题描述:(5)在圆类上重载关系运算符(6种),使之能够按圆的面积比较两个圆的大小。自编main函数完成测试。*输入描述:*程序输出:*/#include <iostream>#include <cmath>using namespace std;class Point{protected:    int x;    int y;public:    Point(int a=0,int b=0):x(a),y(b){};    ~Point(){};    double distance(const Point &p)const;};double Point::distance(const Point &p)const{    double d;    d=sqrt((p.x-x)*(p.x-x)+(p.y-y)*(p.y-y));    return d;}class Circle:public Point{private:    double r;//半径public:    Circle(int a=0,int b=0,int l=0):Point(a,b),r(l){};    ~Circle(){};    friend ostream &operator <<(ostream &output, const Circle &c);    bool operator >  (Circle &c);    bool operator <  (Circle &c);    bool operator >= (Circle &c);    bool operator <= (Circle &c);    bool operator == (Circle &c);    bool operator != (Circle &c);    friend void compare(Circle &c1,Circle &c2);};bool Circle::operator >  (Circle &c){    if(r > c.r)        return true;    else        return false;}bool Circle::operator <  (Circle &c){    if(r < c.r)        return true;    else        return false;}bool Circle::operator >= (Circle &c){    if(!(r < c.r))        return true;    else        return false;}bool Circle::operator <= (Circle &c){    if(!(r > c.r))        return true;    else        return false;}bool Circle::operator == (Circle &c){    if(r == c.r)        return true;    else        return false;}bool Circle::operator != (Circle &c){    if(!(r == c.r))        return true;    else        return false;}ostream &operator <<(ostream &output, const Circle &c){    output<<"\t圆心:"<<"("<<c.x<<","<<c.y<<")"<<"\t半径="<<c.r<<endl;    return output;}void compare(Circle &c1,Circle &c2){    if(c1<c2)   cout<<" 小于";    if(c1>=c2)  cout<<" 大于等于";    if(c1>c2)   cout<<" 大于";    if(c1<=c2)  cout<<" 小于等于";    if(c1==c2)  cout<<" 等于";    if(c1!=c2)  cout<<" 不等于";}int main( ){    Circle c1(3,2,4),c2(3,2,5);    Circle c3(1,2,6),c4(4,5,6);    cout<<"圆c1: "<<c1;    cout<<"圆c2: "<<c2;    cout<<"圆c3: "<<c3;    cout<<"圆c4: "<<c4;    cout<<"c1";    compare(c1,c2);    cout<<"c2"<<endl;    cout<<"c3";    compare(c3,c4);    cout<<"c4"<<endl;    cout<<"c1";    compare(c1,c3);    cout<<"c3"<<endl;    cout<<"c2";    compare(c2,c4);    cout<<"c4"<<endl;    return 0;}

 

运行结果:

知识点总结:运算符重载。

学习心得:做事开开心心的,用功吧。

0 0
原创粉丝点击