2015年大一下第11周项目4-点、圆的关系(1)重载输入输出函数
来源:互联网 发布:服务器防攻击软件 编辑:程序博客网 时间:2024/06/05 15:55
/* *Copyright (c) 2014,烟台大学计算机学院 *All rights reserved. *文件名称:Annpion.cpp *作者:王耀鹏 *完成日期:2015年5月20日 *版本号:v1.0 * *问题描述:以Point为基类,派生出一个Circle(圆)类。*输入描述:无。 *输出描述:输出点与圆之间的位置*/ #include <iostream>#include<cmath>using namespace std;class Circle;class Point{protected: double x,y;public: Point(double a,double b):x(a),y(b){} friend ostream &operator<<(ostream & out,const Point &p); friend int locate(const Point &p,const Circle &c);};ostream &operator<<(ostream & out,const Point &p){ cout<<"("<<p.x<<","<<p.y<<")"<<endl; return out;}class Circle:public Point{private: double r;public: Circle(double a,double b,double c):Point(a,b),r(c){} friend ostream &operator<<(ostream & out,const Circle &c); friend int locate(const Point &p,const Circle &c);};ostream &operator<<(ostream & out,const Circle &c){ cout<<"圆心为:"<<"("<<c.x<<","<<c.y<<")"<<"半径为:"<<c.r<<endl; return out;}int locate(const Point &p,const Circle &c){ double distance; distance=sqrt((p.x-c.x)*(p.x-c.x)+(p.y-c.y)*(p.y-c.y)); if(distance>c.r) return 1; else if(distance==c.r) return 0; 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
- 2015年大一下第11周项目4-点、圆的关系(1)重载输入输出函数
- 2015年大一下第11周项目4-点、圆的关系(2)重载关系运算符
- 2015年大一下第11周项目4-点、圆关系(3)直线与圆的交点
- 2015年大一下第7周项目1-复数类中的运算符重载(续)
- 2015年大一下第13周项目4-处理C++源代码的程序(1)main()函数
- 2015年大一下第1周项目4-时间类
- 2015年大一下第3周项目1-三角形的构造函数(1)使用带参数构造函数
- 2015年大一下第3周项目1-三角形的构造函数(2)设计默认构造函数
- 2015年大一下第4周项目1-体验常成员函数
- 2015年大一下第6周项目1-实现复数类中的运算符重载
- 2015年大一下第6周项目3-分数类中的运算符重载(1)分数类的加减乘除
- 2015年大一下第7周项目2-Time类中的运算符重载(续)
- 2015年大一下第7周项目3-分数类中的运算符重载(续)
- 2015年大一下第8周项目4-点类派生直线类
- 2015年大一下第12周项目4-链表类(1)
- 2015年大一下第12周项目2-形状类族的中的纯虚函数
- 2015年大一下第1周项目2-旱冰场造价
- 2015年大一下第1周项目3-长方体类
- Unity编辑资源一定要在UnityEditor进行
- STL-deque
- Linux上解压压缩包
- STL-map
- LeetCode 22 - Generate Parentheses
- 2015年大一下第11周项目4-点、圆的关系(1)重载输入输出函数
- STL-set
- Kithings如何选择Wi-Fi物联网芯片(第一篇)
- HDOJ Flow Problem 3549(最大流)
- c/c++ 中文字符串转Unicode和UTF8
- sgu225:Little Knights(状压DP+打表)
- SpringMVC-15 异常处理
- STL-stack
- STL-queue