12.4派生类 点圆
来源:互联网 发布:聚宝盆营销软件 编辑:程序博客网 时间:2024/05/21 19:35
#include <iostream>#include<Cmath>using namespace std;class Point{public: double x; double y; Point(double x1=0,double y1=0):x(x1),y(y1){} friend ostream &operator<<(ostream &output,Point &p);};class Circle :public Point{private: double r;public: Circle(double x1=0,double y1=0,double r1=0):Point(x1,y1),r(r1){} friend ostream & operator<<(ostream &output,Circle &c); friend int locate(Point &p,Circle &c); friend void Foundpoint(Point &p,Circle &c);};ostream &operator<<(ostream &output,Point &p){ output<<"("<<p.x<<","<<p.y<<")"; return output;}ostream &operator<<(ostream &output,Circle &c){ output<<"x*x+y*y="<<c.r*c.r<<endl; return output;}int locate(Point &p,Circle &c){ if(p.x*p.x+p.y*p.y>c.r*c.r) return 1; else if(p.x*p.x+p.y*p.y==c.r*c.r) return 0; else return -1;}void Foundpoint(Point &p,Circle &c){ Point p1,p2; p1.x=c.x+sqrt((c.r*c.r)/(1+((c.y-p.y)/(c.x-p.x))*((c.y-p.y)/(c.x-p.x)))); p1.y=((c.y-p.y)/(c.x-p.x))*(p1.x-p.x)+p.y; p2.x=c.x-sqrt((c.r*c.r)/(1+((c.y-p.y)/(c.x-p.x))*((c.y-p.y)/(c.x-p.x)))); p2.y=((c.y-p.y)/(c.x-p.x))*(p1.x-p.x)+p.y; cout<<"这两点的坐标是:"<<p1<<" "<<p2<<endl;}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; Point point_p(3,7); Circle circle_c(4,11,5); Foundpoint(point_p,circle_c); return 0;}
0 0
- 12.4派生类 点圆
- 点类派生出圆类
- 点的派生类
- 点派生类直线
- 点派生直线类
- 点类派生直线类
- 点类派生直线类
- 点类派生直线类
- 点类派生直线类
- 点类派生直线类
- 点类派生直线类
- 点类派生直线类
- 点类派生直线类
- 点类派生直线类
- 点类派生直线类
- 点类派生直线类
- 点类派生直线类
- 点类派生直线类
- cygwin下编译zlib源码
- 12.3派生类 时间日期
- MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作
- U-Boot中ubi和ubifs命令的使用
- 学生多态
- 12.4派生类 点圆
- JQuery+Ajax 整理
- CMD:[3]获取驱动器或文件夹内的文件列表
- 2015.5.26
- iOS点击空白区域隐藏键盘
- [前端] 简单的cookie操作
- 2015 程序设计实习之动规作业2
- Cubieboard2-Android-Cubie-Screen 模组调试说明 修正1可以显示了 windows ANSI.txt
- 矩阵C++实现