第12周 项目四-点、圆关系(4)

(4)定义友元函数int locate,判断点p与圆的位置关系(返回值<0圆内,==0圆上,>0 圆外);

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;
}

代码:

#include <iostream>
using namespace std;
class Point
{
public:
    int x;
    int y;
public:
    Point(int a,int b):x(a),y(b) {}
    friend ostream &operator <<(ostream &out,Point &a);
};
ostream &operator <<(ostream &out,Point &a)
{
    cout<<"x="<<a.x<<" y="<<a.y<<endl;
    return out;
}
class Circle:public Point
{
protected:
    int r;
public:
    Circle(int a,int b,int c):Point(a,b),r(c) {}
    friend ostream &operator <<(ostream  &out,Circle &a);
    friend int locate(Point &a,Circle &b);
};
ostream &operator <<(ostream  &out,Circle &a)
{
    cout<<"圆心:"<<" ("<<a.x<<"<"<<a.y<<") "<<"半径:"<<a.r<<endl;
    return out;
}
int locate(Point &a,Circle &b)
{
    return (b.r*b.r-(a.x-b.x)*(a.x-b.x)-(a.y-b.y)*(a.y-b.y));
}
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;
}

运行结果:

时间: 2024-10-10 22:23:50

第12周 项目四-点、圆关系(4)的相关文章

第12周 项目四-点、圆关系(5)

(5)在圆类上重载关系运算符(6种),使之能够按圆的面积比较两个圆的大小.自编main函数完成测试. 代码: #include <iostream> using namespace std; class Circle; class Point { protected: int x; int y; public: Point(int a,int b):x(a),y(b) {} friend ostream &operator <<(ostream &out,Point

第12周 项目四-点、园关系(1)(2)(3)

(1)先建立一个Point(点)类,包含数据成员x,y(坐标点): (2)以Point为基类,派生出一个Circle(圆)类,增加数据成员(半径),基类的成员表示圆心: (3)编写上述两类中的构造.析构函数及必要运算符重载函数(本项目主要是输入输出): 代码: #include <iostream> using namespace std; class Point { protected: int x; int y; public: Point(int a,int b):x(a),y(b){}

12周 项目4

最近一个问题很困扰我,今天则得到了答案,也意味着我该选择了. 不知道大家有没有遇到过这样的情况,我是上年刚毕业,大四时进行过java培训,12年9月-13年4月,在这之前已经自学过java.7月份时进入一家公司工作,今年3月份辞职,4月份找到工作,来上班了.一开始就不太喜欢公司氛围,前台,hr,态度什么的都不太好,工作环境也极像客服部,整天电话不断,讨论声不断,第一个星期真是煎熬,去了两三天之后有辞职的想法,但是后面想想还是算了,公司待遇还可以. 但是进入到公司后leader让学PHP,学PHP

16周(项目四 动态数组)

/* *copyright(c) 2014,烟台大学计算机学院 *All rights reserved. *文件名称:16周(项目四 动态数组) *作者:王忠 *完成日期:2014.12.15 *版本号:v1.0 * *问题描述:新增一个恰当长度的动态数组,将原数组中的数据"复制"到新数组,接着再输入新的数据.增加新数据后的数组,成为保存数据的新数组. *输入描述:输入成绩,学生数 *程序输出:新增的学生数 成绩 #include <iostream> using nam

12周 项目2 老师兼干部类

#include <iostream> #include <string> using namespace std; class Teacher { public: Teacher(string nam,int ag,char s,string ad,int num,string t) { name=nam; age=ag; sex=s; add=ad; number=num; title=t; } void display() { cout<<"name:

12周 项目3 摩托车继承机动车和自行车

#include <iostream> #include<conio.h> #include <windows.h> using namespace std; enum vehicleStaus {rest, running}; //车辆状态:泊车.行进 class vehicle //车辆类 { protected: int maxSpeed; //最大车速 int currentSpeed; //当前速度 int weight; //车重 vehicleStaus

第十一周 项目四 类族的设计】

项目4 - 类族的设计] 按以下的提示,由基类的设计和测试开始,逐渐地完成各个类的设计,求出圆格柱体的表面积.体积并输出并且完成要求的计算任务: (1)先建立一个Point(点)类,包含数据成员x,y(坐标点),实现需要的成员函数,并设计main函数完成测试: (2)以Point为基类,派生出一个Circle(圆)类,增加数据成员r(半径),以及求面积的成员函数area,实现其他需要的成员函数,设计main函数完成测试: (3)再以Circle类为直接基类,派生出一个Cylinder(圆柱体)类

第11周 项目四-类族的设计

按以下的提示,由基类的设计和测试开始,逐渐地完成各个类的设计,求出圆格柱体的表面积.体积并输出并且完成要求的计算任务: (1)先建立一个Point(点)类,包含数据成员x,y(坐标点),实现需要的成员函数,并设计main函数完成测试: (2)以Point为基类,派生出一个Circle(圆)类,增加数据成员r(半径),以及求面积的成员函数area,实现其他需要的成员函数,设计main函数完成测试: (3)再以Circle类为直接基类,派生出一个Cylinder(圆柱体)类,再增加数据成员h(高),

第十一周 项目四

[项目4 - 类族的设计] 按以下的提示,由基类的设计和测试开始,逐渐地完成各个类的设计,求出圆格柱体的表面积.体积并输出并且完成要求的计算任务: (1)先建立一个Point(点)类,包含数据成员x,y(坐标点),实现需要的成员函数,并设计main函数完成测试: /* *Copyright (c)2014,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:d.cpp *作 者:张旺华 *完成日期:2015年5月31日 *版 本 号:v1.0 */ #inclu