第十二周项目4——点、圆的关系(1—4)
来源:互联网 发布:c语言反斜杠怎么打 编辑:程序博客网 时间:2024/05/16 10:09
问题及代码:
/**Copyright (c)2015,烟台大学计算机与控制工程学院*All rights reserved.*文件名称:circle.cpp*作 者:赵敏*完成日期:2015年5月28日*版 本 号:v1.0**问题描述:1)先建立一个Point(点)类,包含数据成员x,y(坐标点);(2)以Point为基类,派生出一个Circle(圆)类,增加数据成员(半径),基类的成员表示圆心;(3)编写上述两类中的构造、析构函数及必要运算符重载函数(本项目主要是输入输出);(4)定义友元函数int locate,判断点p与圆的位置关系(返回值<0圆内,==0圆上,>0 圆外);*/#include <iostream>#include<cmath>using namespace std;class Point{ protected: double x,y; public: Point(double a=0,double b=0):x(a),y(b){} double distance(const Point &p); friend ostream & operator<<(ostream &,const Point &);};double Point::distance(const Point &p){ return sqrt((x-p.x)*(x-p.x)+(y-p.y)*(y-p.y));}ostream & operator<<(ostream &output,const Point &p){ output<<"("<<p.x<<","<<p.y<<")"<<endl; return output;}class Circle:public Point{protected: double radius;public: 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); //判断点在圆上的位置};ostream &operator<<(ostream &output,const Circle &c){ output<<"["<<c.x<<", "<<c.y<<"], r="<<c.radius<<endl; return output;}int locate(const Point &p, const Circle &c){ Point cr(c.x,c.y); double d=cr.distance(p); if(d-c.radius==0) return 0; else if(d-c.radius<0) return -1; else return 1;}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: "<<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——点、圆的关系(1—4)
- 第十二周 项目4-点,圆的关系(1)
- 第十二周项目4——点, 圆的关系(判断点p与圆的关系)
- 第十二周项目4——圆,点的关系(两个交点的坐标)
- 第十二周项目4——点、圆的关系(5)
- 第十二周项目四——点.圆的关系
- 第十二周项目4——点与圆的关系{(判断两个圆面积的大小)
- 第十二周项目4 - 点、圆的关系
- 第十二周 【项目4 - 点、圆的关系】
- 第十二周项目4 - 点、圆的关系
- 第十二周 项目4-点,圆的关系
- 第十二周项目4 : 点、圆的关系
- 第十二周【项目4 - 点、圆的关系】
- 第十二周项目4--点、圆的关系
- 第十二周项目4-点、圆的关系
- 第十二周上机项目4 点,圆的关系
- 第十二周 【项目4 - 点、圆的关系】
- 第十二周项目四(1):点、圆的关系
- 【项目管理软件盛宴】谁才是人气王?
- 题目1514:数值的整数次方
- 字符串加密与解密
- c++设计模式之桥接模式
- Linux 终端下的小工具-JC
- 第十二周项目4——点、圆的关系(1—4)
- 让各种开机自启的程序实现延时启动,来加快开机时间
- jsp牛刀小试之在线报名系统
- java多线程(一):进程与线程
- 面向对象(下)
- Fragment生命周期
- JS 正则校验
- 多线程之线程同步
- ueditor的使用