13周 项目1 点,圆的关系

#include <iostream>
#include <cmath>
using namespace std;
class Point
{

public:
    Point(double a,double b):x(a),y(b) {}
    double getx()
    {
        return x;
    }
    double gety()
    {
        return y;
    }
    friend ostream&operator << (ostream&,Point&);
protected:
    double x,y;
};
ostream&operator << (ostream &output,Point &p)
{
    output<<"("<<p.getx()<<","<<p.gety()<<")"<<endl;
    return output;
}
class Circle:public Point
{

public:
    Circle(double a,double b,double c):Point(a,b),r(c) {}
    double getr()
    {
        return r;
    }
    friend ostream&operator << (ostream&,Circle&);
    friend double locate(Circle&,Point&);
protected:
    double r;
};
ostream&operator << (ostream &output,Circle &c)
{
    output<<"("<<c.getx()<<","<<c.gety()<<")"<<" ";
    output<<"r="<<c.getr()<<endl;
    return output;
}
double locate(Point &po,Circle &ci)
{
    double d,num;
    d=sqrt(pow((ci.getx()-po.getx()),2)+pow((ci.gety()-po.gety()),2));
    if(d>ci.getr())
        num=1;
    else if(d==ci.getr())
        num=0;
    else
        num=-1;
    return num;
}
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;
}

感悟:还没吃饭呢

13周 项目1 点,圆的关系,布布扣,bubuko.com

时间: 2024-10-13 17:09:48

13周 项目1 点,圆的关系的相关文章

13周 项目2 圆的比较

#include <iostream> #include <cmath> using namespace std; class Point { public: Point(double a,double b):x(a),y(b) {} double getx() { return x; } double gety() { return y; } friend ostream&operator << (ostream&,Point&); prote

第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){}

第13周 项目二-形状族中的纯虚函数

写一个程序,定义抽象基类Shape,由它派生出3个派生类,Circle(圆形).Rectangle(矩形).Triangle(三角形).用如下的main()函数,求出定义的几个几何体的面积和. int main() { Circle c1(12.6),c2(4.9);//建立Circle类对象c1,c2,参数为圆半径 Rectangle r1(4.5,8.4),r2(5.0,2.5);//建立Rectangle类对象r1,r2,参数为矩形长.宽 Triangle t1(4.5,8.4),t2(3

第13周项目2-纯虚函数形类家庭

写一个程序.定义一个抽象基类Shape,它是从衍生3派生类.Circle(周围).Rectangle(矩形).Triangle(三角).例如,下面的main()性能.划定区域并找到一些几何. int main() { Circle c1(12.6),c2(4.9);//建立Circle类对象c1,c2,參数为圆半径 Rectangle r1(4.5,8.4),r2(5.0,2.5);//建立Rectangle类对象r1,r2,參数为矩形长.宽 Triangle t1(4.5,8.4),t2(3.

13周 工程1 点,全面关系

#include <iostream> #include <cmath> using namespace std; class Point { public: Point(double a,double b):x(a),y(b) {} double getx() { return x; } double gety() { return y; } friend ostream&operator << (ostream&,Point&); prote

第十、十一周项目1 - 点-圆-圆柱类族的设计(2)

/* *Copyright (c) 2016,烟台大学计算机学院 *All rights reserved. *文件名称 : *作 者 : 徐聪 *完成日期 : 2016年5月9号 *版 本 号 : v1.0 *问题描述:以Point为基类,派生出一个Circle(圆)类,增加数据成员r(半径),以及求面积的成员函数area,实现其他需要的成员函数,设计main函数完成测试: */ #include<iostream> #include<cmath> using namespace

第十、十一周项目1 - 点-圆-圆柱类族的设计(3)

#include<iostream> #include<cmath> using namespace std; #define PI 3.1415926 class Point { public: void setPoint(float i,float j); float getX(){return x;} float getY(){return y;} float dr(Point &p1,Point &p2); private: float x; float y

第10周项目一-点-圆-圆柱类的设计

代码: /* *Copyright (c) 2016, 烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:main.cpp; *作 者:岳成艳2016年5月6号: *版 本 号:vc++6.0: * *问题描述:添加一个类cylinder类,增加数据成员函数h,求表面积,体积. *程序输入:略: *程序输出:略: */ #include <iostream> using namespace std; class Point { public: Point(d

第十、十一周项目一-点-圆-圆柱类族的设计(3)

<pre name="code" class="cpp">/* *Copyright(c)2016,烟台大学计算机与控制工程学院 *All rights reserved *文件名称:123.cpp *作 者:王蕊 *完成日期:2016年5月6日 *版 本 号:v1.0 * *问题描述:以点为基类,派生出一个圆类,增加数据成员r,和求面积的成员函数area,实现其他需要的成员函数,设计main函数完成测试. *输入描述:无. *程序输出:圆的圆心坐标,半