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

点和圆的关系【设计一个圆形类(Circle),和一个点类(Point),计算点和圆的关系。】

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

点和圆的关系【设计一个圆形类(Circle),和一个点类(Point),计算点和圆的关系。】

题目描述

设计一个圆形类(Circle),和一个点类(Point),计算点和圆的关系。

源码
#include
using namespace std;
//一个用来求解距离的平方的全局函数
int  distance(int a, int b, int c, int d) {
	return (abs(a - c) * abs(a - c) + abs(b - d) * abs(b - d));
}
class point {
public:
	void setX(int x) {
		p_x = x;
	}//写入点的X坐标
	void setY(int y) {
		p_y = y;
	}//写入点的Y坐标
	int getX() {
		return p_x;
	}//因为我们已经规定了p.p_x从外部是不能访问的,所以必须要定义一个这样的函数来访问p的x坐标
	int getY() {
		return p_y;
	}
private:
	int p_x;
	int p_y;
}p;
class circle {
public:
	void setR(int r) {
		c_r = r;//写入圆的半径
	}
	void setCenter(point center) {
		c_center = center;//设置圆的圆心
	}
	int getR() {
		return c_r;
	}
	void judgePos(point&p) {
		int a = distance(p.getX(), p.getY(), c_center.getX(), c_center.getY());
		if (a > c.getR() * c.getR()) {
			cout<<"点在圆外";
		}
		else if (a== c.getR() * c.getR())
			cout<<"点在圆上";
		else
			cout<<"点在圆内";
	}//判断点和圆的位置关系的成员函数
	//记得加引用记号
private:
	int c_r;//半径
	point c_center;//圆心
}c;
int main() {
	//先输入点的x,y坐标,再输入圆心的x,y坐标
	//最后输入圆的半径
	int x1, y1, x2, y2, r;
	cin >> x1 >> y1 >> x2 >> y2 >> r;
	p.setX(x1);
	p.setY(y1);
	point Center;
	Center.setX(x2);
	Center.setY(y2);
	c.setCenter(Center);
	c.setR(r);
	c.judgePos(p);
	return 0;
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/296494.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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