一、创建点类
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;
}