第二学期第13周项目2--圆的比较
来源:互联网 发布:家装网络推广 编辑:程序博客网 时间:2024/05/16 15:35
/* * Copyright (c) 2013, 烟台大学计算机学院 * All rights reserved. * 作 者: 沈远宏 * 完成日期:2014 年 05月20日 * 版 本 号:v1.0 * 问题描述:(1)先建立一个Point(点)类,包含数据成员x,y(坐标点); (2)以Point为基类,派生出一个Circle(圆)类,增加数据成员(半径),基类的成员表示圆心; (3)编写上述两类中的构造、析构函数及必要运算符重载函数(本项目主要是输入输出); (4)定义友元函数int locate,判断点p与圆的位置关系(返回值<0圆内,==0圆上,>0 圆外); (5)在项目1的基础上,在圆类上重载关系运算符(6种),使之能够按圆的面积比较两个圆的大小。 自编main函数完成测试。 * 输出:圆的关系*/#include <iostream>#include <cmath>#define PI 3.14using namespace std;class Point{protected: double x; double y;public: Point(double xx=0,double yy=0):x(xx),y(yy) {} ~Point() { cout<<"已释放Point\n"; } friend istream& operator >>(istream& in,Point &p); friend ostream& operator <<(ostream& out,Point &p); double getx() { return x; } double gety() { return y; }};istream& operator >>(istream& in,Point &p){ in>>p.x>>p.y; return in;}ostream& operator <<(ostream& out,Point &p){ out<<"("<<p.x<<","<<p.y<<")"; return out;}class Circle: public Point{protected: double r;public: Circle(double xx,double yy,double rr):Point(xx,yy),r(rr) {} ~Circle() { cout<<"已释放Circle\n"; } double area(); friend istream& operator >>(istream& in,Circle &c); friend ostream& operator <<(ostream& out,Circle &c); friend double locate(Point p,Circle c); friend bool operator >(Circle &a,Circle &b); friend bool operator <(Circle &a,Circle &b); friend bool operator ==(Circle &a,Circle &b); friend bool operator >=(Circle &a,Circle &b); friend bool operator <=(Circle &a,Circle &b); friend bool operator !=(Circle &a,Circle &b);};double Circle:: area(){ return PI*r*r;}istream& operator >>(istream& in,Circle &c){ in>>c.x>>c.y>>c.r; return in;}ostream& operator <<(ostream& out,Circle &c){ out<<"该圆为以"<<"("<<c.x<<","<<c.y<<")"<<"为圆心,以"<<c.r<<"为半径的"<<endl; return out;}double locate(Point p,Circle c){ double distance; distance=sqrt((p.getx()-c.x)*(p.getx()-c.x)+(p.gety()-c.y)*(p.gety()-c.y)); return (distance-c.r);} bool operator >(Circle &a,Circle &b){ if(a.area()>b.area()) { return true; } else { return false; }} bool operator <(Circle &a,Circle &b){ if(a.area()<b.area()) { return true; } else { return false; }} bool operator ==(Circle &a,Circle &b){ if(a.area()==b.area()) { return true; } else { return false; }} bool operator >=(Circle &a,Circle &b){ if(!(a<b)) { return true; } else { return false; }} bool operator <=(Circle &a,Circle &b){ if(!(a>b)) { return true; } else { return false; }} bool operator !=(Circle &a,Circle &b){ if(!(a==b)) { return true; } else { return false; }}int main( ){ Circle c1(3,2,4),c2(4,5,5); //c2应该大于c1 Point p1(1,1),p2(3,-2),p3(7,3); //分别位于c1内、上、外 cout<<"圆c1: "<<c1; cout<<"圆p1: "<<c2; cout<<"圆c1"<<(c1>c2?"大于":c1<c2?"小于":"等于")<<"c2"<<endl; if(c1>=c2){cout<<"圆c1大于等于c2"<<endl;} if(c1!=c2){cout<<"圆c1不等于c2"<<endl;} return 0;}
0 0
- 第二学期第13周项目2--圆的比较
- 第二学期第13周项目--改错
- 第二学期第13周项目1--点、圆的关系
- 第二学期第一周项目2--胖子的烦恼
- 大一第二学期第2周【项目1:旱冰场造价】
- 大一第二学期第2周【项目3:时间类】
- 第二学期第11周项目1
- 第二学期第14周项目2--形状类族的中的纯虚函数
- 大一第二学期第2周【项目4:图书馆的书】
- **第二学期第五周项目2--分数类的雏形
- 第二学期第六周项目2
- 第二学期第12周项目4--日期时间类
- 大学第二学期第11周【项目0—是春哥啊】
- 第二学期第四周项目2--三角形类2
- 第二学期第12周项目1--长颈鹿类对动物类的继承
- 大一第二学期第3周【项目3:程序的多文件组织】
- 大一第二学期第3周【项目4:考了语文数学的学生】
- 大一第二学期第11周【项目1-存储班长信息的学生类】
- php 底层原理
- 13.2圆的比较
- 黑马程序员——————————开发前奏之基本常识、环境搭建等
- JSP的URL过滤器
- 杨辉三角
- 第二学期第13周项目2--圆的比较
- csu 1458: Booking (开的房间数量)
- Win8 + VS2013 + SQL Server 2014 下载地址
- 个地方和风格化发给街净哥和价格
- 刚学 RMQ 求大神指点
- 八皇后布局问题 -- 回溯法
- flash 中的部分概念
- codeforces 4A Watermelon(数学水题)
- 黑马程序员——三大特性