第十二周项目4-点、圆的关系
来源:互联网 发布:键盘操作记录软件 编辑:程序博客网 时间:2024/05/15 05:20
(1)先建立一个Point(点)类,包含数据成员x,y(坐标点);
(2)以Point为基类,派生出一个Circle(圆)类,增加数据成员(半径),基类的成员表示圆心;
(3)编写上述两类中的构造、析构函数及必要运算符重载函数(本项目主要是输入输出);
(2)以Point为基类,派生出一个Circle(圆)类,增加数据成员(半径),基类的成员表示圆心;
(3)编写上述两类中的构造、析构函数及必要运算符重载函数(本项目主要是输入输出);
(4)定义友元函数int locate,判断点p与圆的位置关系(返回值<0圆内,==0圆上,>0 圆外);
#include <iostream>#include <cmath>using namespace std;class Point{public: Point():x(0),y(0){} Point(double a,double b):x(a),y(b){} double distance(const Point &p)const; friend ostream & operator<<(ostream &,const Point &);protected: double x; double y;};double Point::distance(const Point &p) const{ double dx = x-p.x; double dy = y-p.y; return sqrt(dx*dx+dy*dy);}ostream & operator<<(ostream &output,const Point &p){ output<<"["<<p.x<<","<<p.y<<"]"<<endl; return output;}class Circle:public Point{public: Circle():Point(),radius(1){}; Circle(double a,double b,double r):Point(a,b),radius(r){} friend ostream &operator<<(ostream &,const Circle &); friend int locate(const Point &p, const Circle &c); //判断点p在圆上、圆内或圆外,返回值:<0圆内,==0圆上,>0 圆外protected: double radius;};ostream &operator<<(ostream &output,const Circle &c){ output<<"Center=["<<c.x<<", "<<c.y<<"], r="<<c.radius<<endl; return output;}int locate(const Point &p, const Circle &c){ const Point cp(c.x,c.y); //圆心 double d = cp.distance(p); if (abs(d - c.radius) < 1e-7) return 0; //相等 else if (d < c.radius) return -1; //圆内 else return 1; //圆外}int main( ){Circle c1(3,2,4),c2(4,5,5); //c2应该大于c1Point p1(1,1),p2(3,-2),p3(7,3); //分别位于c1内、上、外cout<<"圆c1: "<<c1;cout<<"点p1: "<<p1;cout<<"点p1在圆c1之"<<((locate(p1, c1)>0)?"外":((locate(p1, c1)<0)?"内":"上"))<<endl;cout<<"点p2: "<<p2;cout<<"点p2在圆c1之"<<((locate(p2, c1)>0)?"外":((locate(p2, c1)<0)?"内":"上"))<<endl;cout<<"点p3: "<<p3;cout<<"点p3在圆c1之"<<((locate(p3, c1)>0)?"外":((locate(p3, c1)<0)?"内":"上"))<<endl;return 0;}运行结果:
0 0
- 第十二周项目4 - 点、圆的关系
- 第十二周 【项目4 - 点、圆的关系】
- 第十二周项目4 - 点、圆的关系
- 第十二周 项目4-点,圆的关系
- 第十二周项目4 : 点、圆的关系
- 第十二周【项目4 - 点、圆的关系】
- 第十二周 项目4-点,圆的关系(1)
- 第十二周项目4--点、圆的关系
- 第十二周项目4-点、圆的关系
- 第十二周上机项目4 点,圆的关系
- 第十二周 【项目4 - 点、圆的关系】
- 第十二周项目四(1):点、圆的关系
- 第十二周项目四(2):点、圆的关系
- 第十二周项目四 点圆的关系
- 第十二周项目四(3):点、圆的关系
- 第十二周项目四 点与圆的关系
- 第十二周项目四——点.圆的关系
- 第十二周项目四:点、圆的关系(二)
- P124 第三章 40题 求多项式的值
- 微信开放平台JS SDK接入sha1算法
- ubuntu12.04 gedit 打开 windows 分区中的 txt 文件乱码
- 指针和句柄的区别
- DWR如何获得返回对象
- 第十二周项目4-点、圆的关系
- Maven实战——远程仓库的配置
- 第十一周项目1-是春哥啊
- unmapbam to fastq和自己的annovar格式~~~
- 设计模式之单例模式
- Java NIO 01=====概述
- android实现层级式导航
- 教师兼干部类
- 第七课,分支结构程序体验|三个整数输出最大值