c++类与对象案例:设计一个圆类,并判断某点和圆的位置关系

本文介绍了一个简单的圆类的设计方法,并通过一个点类来判断该点相对于圆的位置关系,包括点在圆内、圆上或圆外的情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

设计一个圆类,并判断某点和圆的位置关系
//类的嵌套:让另一个类作为本类的成员
#include<iostream>
using namespace std;
//创建点类
class Point
{
public:
	//设置xy
	void setXY(int x,int y)
	{
		m_X=x;
		m_Y=y;
	}
	//获得x
	int getX()
	{
		return m_X;
	}
	//获得y
	int getY()
	{
		return m_Y;
	}
private:
	int m_X;
	int m_Y;
};
//创建圆类
class Circle
{
public:
	//设置半径
	void setR(int r)
	{
		m_R=r;
	}
	//获取半径
	int getR()
	{
		return m_R;
	}
	//设置圆心
	void setCenter(Point c)
	{
		m_Center=c;
	}
	//获取圆心
	Point getCenter()    //易错1:返回值类型是point类。易错2:Point要大写和前面保持一致
	{
		return m_Center;
	}
private:
	int m_R;
	Point m_Center;
};						//易错:类的结尾要分号
void Locate(Point &p,Circle &c)
{
	//计算点到圆心的距离平方、半径的平方
	int Distancesquare=(c.getCenter().getX()-p.getX())*(c.getCenter().getX()-p.getX())+(c.getCenter().getY()-p.getY())*(c.getCenter().getY()-p.getY());
	int Rsquare=c.getR()*c.getR();
	//判断位置
	if(Distancesquare>Rsquare)
		cout<<"点在圆外"<<endl;
	else
		if(Distancesquare==Rsquare)//易错:=号要写两个
			cout<<"点在圆上"<<endl;
		else
			cout<<"点在圆内"<<endl;
}
void main()
{
	//创建点、圆对象
	Point p;
	Circle c;
	//初始化点、圆
	p.setXY(1,0);
	c.setR(1);
	//创建圆心
	Point center;			//圆心是个点,因此需要先创建一个点作为圆心,然后把这个点传进圆内
	//初始化圆心
	center.setXY(0,0);
	//圆心传入圆对象
	c.setCenter(center);
	//调用函数判断点和圆的位置关系
	Locate(p,c);

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值