第十二周项目4 : 点、圆的关系
来源:互联网 发布:vscode 放弃所有更改 编辑:程序博客网 时间:2024/05/20 20:23
问题及代码:
(1)先建立一个Point(点)类,包含数据成员x,y(坐标点);
(2)以Point为基类,派生出一个Circle(圆)类,增加数据成员(半径),基类的成员表示圆心;
(3)编写上述两类中的构造、析构函数及必要运算符重载函数(本项目主要是输入输出);
解决代码:
运行结果:
(1)先建立一个Point(点)类,包含数据成员x,y(坐标点);
(2)以Point为基类,派生出一个Circle(圆)类,增加数据成员(半径),基类的成员表示圆心;
(3)编写上述两类中的构造、析构函数及必要运算符重载函数(本项目主要是输入输出);
(4)定义友元函数int locate,判断点p与圆的位置关系(返回值<0圆内,==0圆上,>0 圆外);
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;}
解决代码:
#include<iostream>#include <cmath>using namespace std;class Point{public: Point(double a=0,double b=0):x(a),y(b){}; double distance(Point &p); friend ostream &operator<<(ostream &,const Point &);protected: double x; double y;};ostream &operator<<(ostream &output,const Point &p){ output<<"("<<p.x<<","<<p.y<<")"<<endl; return output;}double Point::distance(Point &p){ return sqrt((x-p.x)*(x-p.x)+(y-p.y)*(y-p.y));}class Circle:public Point{public: Circle(double a,double b,double c):Point(a,b),r(c){}; friend ostream &operator<<(ostream &,const Circle &); friend int locate(Point &p,const Circle &c);protected: double r;};ostream &operator<<(ostream &output,const Circle &c){ output<<"center:("<<c.x<<","<<c.y<<"),r="<<c.r<<endl; return output;}int locate(Point &p,const Circle &c){ Point cp(c.x,c.y); double d=cp.distance(p); if(abs(d-c.r)<1e-7) return 0; if(d<c.x) return -1; if(d>c.x) 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):点、圆的关系
- 第十二周项目四 点与圆的关系
- 第十二周项目四——点.圆的关系
- 第十二周项目四:点、圆的关系(二)
- HTTLClient 调用 Servlet 并返回数据
- HttpClient基本用法
- Spring概述
- Swift-UnsafePointer, UnsafeMutablePointer,AutoreleasingUnsafeMutablePointer
- 数字电路的一点总结
- 第十二周项目4 : 点、圆的关系
- Linux下暴力破解工具Hydra详解
- 闭包的一个坑
- Generic Article - 一般商品
- linux中使用IIC读写EEPROM
- spring事务配置的五种方式!
- Git使用总结
- 【php】配合Ajax与Json,根据MVC思想,无插件,完美兼容IE6,编写一个获取动态系统
- IOS解析json报错-[__NSCFString objectFromJSONString]: unrecognized selector sent to 解决办法