栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

07-C. Point&Circle(复合类与构造)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

07-C. Point&Circle(复合类与构造)

07-拷贝构造函数与复合类-

题目描述
类Point是我们写过的一个类,类Circle是一个新的类,Point作为其成员对象,请完成类Circle的成员函数的实现。

在主函数中生成一个圆和若干个点,判断这些点与圆的位置关系,如果点在圆内(包括在圆的边上),输出“inside”,否则输出"outside";然后移动圆心的位置,再次判断这些点与圆的位置关系。

输入
圆的x坐标 y坐标 半径

点的个数n

第一个点的x坐标 y坐标

第二个点的x坐标 y坐标



第n个点的x坐标 y坐标

圆心移动到的新的x坐标 y坐标


输出
第一个点与圆的关系

第二个点与圆的关系



第n个点与圆的关系

after move the centre of circle

圆心移动后第一个点与圆的关系

圆心移动后第二个点与圆的关系



圆心移动后第n个点与圆的关系

输入样例
0 0 5
4
1 1
2 2
5 0
-6 0
-1 0

inside
inside
inside
outside
after move the centre of circle:
inside
inside
outside
inside

#include
#include
#include
using namespace std;

class point
{
    double x,y;
    public:
        point()//构造函数
        {x=0;y=0;}
        point(double xval,double yval)
        {x=xval;y=yval;}
    
        double getx()
        {return x;}
        double gety()
        {return y;}
        void setxy(double xval,double yval)
        {x=xval;y=yval;}
        void setx(double xval)
        {x=xval;}
        void sety(double yval)
        {y=yval;}
        double getdis(point &p)
        {return sqrt((x-p.x)*(x-p.x)+(y-p.y)*(y-p.y));}
};

class circle
{
    point centre;
    double ra;
    public:
    circle():centre(0,0),ra(1){}
    circle(double x,double y,double r):centre(x,y),ra(r){}
    double getarea()
    {return 3.14*ra*ra;}
    void movecentre(double x1,double y1)
    {
        centre.setxy(x1,y1);
    }
    int contain(point &p)
    {
        if(centre.getdis(p)<=ra)
        return 1;
        else
        return 0;
    }
};

int main()
{
    int x,y,r,n;
    cin>>x>>y>>r>>n;
    int *s=new int(100);
    int *ss=new int(100);
    int i,sum=0;
    
    circle a(x,y,r);
    for(i=1;i<=n;i++)
    {
        int x1,y1;
        cin>>x1>>y1;
        s[sum]=x1;ss[sum]=y1;sum++;//存储数据
        
        point b(x1,y1);
        if(a.contain(b)!=0)
            cout<<"inside"<>x2>>y2;
    a.movecentre(x2,y2);
    cout<<"after move the centre of circle:"<
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/509974.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号