C++分文件编写(判断点和园的位置关系)

一、创建点类

1、头文件写声明

point.h
#pragma once
#include<iostream>
using namespace std;

class point {

public:
	//设置X坐标
	void setX(int x);
	//获取X坐标
	int getX();
	//设置Y坐标
	void setY(int y);
	//获取Y坐标
	int getY();

private:
	int m_X;
	int m_Y;
};

2、源文件写定义

point.cpp
#include"point.h"
//设置点的X坐标
void point::setX(int x) {
	m_X = x;
}
//获取点的X坐标
int point::getX() {
	return m_X;
}
//设置点的Y坐标
void point::setY(int y) {
	m_Y = y;
}
//获取点的Y坐标
int point::getY() {
	return m_Y;
}

二、创建园类

1、头文件写声明

circle.h
#pragma once
#include<iostream>
using namespace std;
#include"point.h"

class circle {

public:
	//设置半径
	void setR(int r);
	//获取半径
	int getR();
	//设置圆心
	void setCenter(point center);
	//获取圆心
	point getCenter();
private:
	int m_R;//半径
	point m_center;//圆心
};

2、源文件写定义

circle.cpp
#include"circle.h"

//设置半径
void circle::setR(int r) {

	m_R = r;
}
//获取半径
int circle::getR() {
	
	return m_R;
}
//设置圆心
void circle::setCenter(point center) {

	m_center = center;
}
//获取圆心
point circle::getCenter() {

	return m_center;
}

三、main函数中判断

园的半径、圆心及点的坐标可自行更改赋值

main.cpp
#include <iostream>
using namespace std;
#include"point.h"
#include"circle.h"

int main() {

	circle c;//创建园
	int r = 0;
	cout << "输入园的半径:" << endl;
	cin >> r;
	c.setR(r);
	point center;//圆心
	int c_x = 0, c_y = 0;
	cout << "输入圆心的x y坐标:" << endl;
	cin >> c_x;
	cin >> c_y;
	center.setX(c_x);
	center.setY(c_y);
	c.setCenter(center);

	point p;//创建点
	int p_x = 0, p_y = 0;
	cout << "输入点的x y坐标:" << endl;
	cin >> p_x;
	cin >> p_y;
	p.setX(p_x);
	p.setY(p_y);

	int d2 = 0;//点到圆心的距离的平方
	d2 = (p.getX() - center.getX()) * (p.getX() - center.getX())
		+ (p.getY() - center.getY()) * (p.getY() - center.getY());
	int R2 = 0;//半径的平方
	R2 = c.getR() * c.getR();
	if (d2 == R2) {
		cout << "点在圆上!" << endl;
	}
	else if (d2 > R2) {
		cout << "点在园外!" << endl;
	}
	else {
		cout << "点在园内!" << endl;
	}
	system("pause");
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值