第十二周 项目4-点,圆的类(2)

来源:互联网 发布:java返回页面 编辑:程序博客网 时间:2024/04/29 02:28
/*  * Copyright (c) 2014, 烟台大学计算机学院  * All rights reserved.  * 文件名称:test.cpp  * 作    者:呼亚萍  * 完成日期:2015年5月27日  * 版 本 号:v1.0  *  * 问题描述: 在圆类上重载关系运算符(6种),使之能够按圆的面积比较两个圆的大小。 * 程序输入:相应的程序 * 程序输出:对应得结果 */#include<iostream>#include<cmath>using namespace std;class Point{public:    Point()    {        x=0;        y=0;    }    Point(int a,int b):x(a),y(b) {}    friend ostream& operator<<(ostream&,Point&);protected:    double x;    double y;};ostream& operator<<(ostream&output,Point&p){    output<<"("<<p.x<<","<<p.y<<")";    return output;}class Circle:public Point{public:    Circle(double a=0,double b=0,double r=0):Point(a,b),radius(r) {}    double area();    friend ostream& operator<<(ostream&,Circle&);    bool operator>(Circle&);    bool operator>=(Circle&);    bool operator<(Circle&);    bool operator<=(Circle&);    bool operator==(Circle&);    bool operator!=(Circle&);private:    double radius;};ostream& operator<<(ostream&output,Circle&c){    output<<"("<<c.x<<","<<c.y<<")";    cout<<"r="<<c.radius;    return output;}double Circle::area(){    return (3.14*radius*radius);}bool Circle::operator>(Circle&c){    if(radius>c.radius)        return true;    else        return false;}bool Circle::operator<(Circle&c){    if(radius<c.radius)        return true;    else        return false;}bool Circle::operator==(Circle&c){    if(radius==c.radius)        return true;    else        return false;}bool Circle::operator>=(Circle&c){    if(radius<c.radius)        return false;    else        return true;}bool Circle::operator<=(Circle&c){    if(radius<c.radius)        return false;    else        return true;}bool Circle::operator!=(Circle&c){    if(radius==c.radius)        return false;    else        return true;}int main( ){    Circle c1(3,2,4),c2(4,5,5);      //c2应该大于c1    cout<<"圆c1( "<<c1<<" )的面积是 "<<c1.area()<<endl;    cout<<"圆c2( "<<c2<<" )的面积是 "<<c2.area()<<endl;    cout<<"圆c1 ";    if(c1>c2) cout<<"大于, ";    if(c1<c2) cout<<"小于, ";    if(c1>=c2) cout<<"大于等于, ";    if(c1<=c2) cout<<"小于等于, ";    if(c1==c2) cout<<"等于, ";    if(c1!=c2) cout<<"不等于, ";    cout<<"圆c2"<<endl;    return 0;}


运算结果:

知识点总结:

基类的派生,六种运算符的重载!

学习心得:

程序框架的构建很重要!

0 0