C++分文件实现点和圆的关系(利用成员函数)

C++分文件实现点和圆的关系(利用成员函数),第1张

C++分文件实现点和圆的关系(利用成员函数) 点和圆的关系 学习目标:

学会在类中引用其他类来作为成员

案例描述:

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

实现代码:

头文件circle.h

#include "point.h"
void Point::setX(int x)
{
	m_X = x;
}
int Point::getX()
{
	return m_X;
}
void Point::setY(int y)
{
	m_Y = y;
}
int Point::getY()
{
	return m_Y;
}

头文件point.h

#pragma once
#include 
using namespace std;

class Point
{
public:
	void setX(int x);

	int getX();

	void setY(int y);

	int getY();

private:
	int m_X;
	int m_Y;
};

源文件point.cpp

#include "point.h"
void Point::setX(int x)
{
	m_X = x;
}
int Point::getX()
{
	return m_X;
}
void Point::setY(int y)
{
	m_Y = y;
}
int Point::getY()
{
	return m_Y;
}

源文件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;
}

void  Circle::Position (Circle c1, Point point)
{
	int distance = point.getX() * point.getX() - c1.getCenter().getX() * c1.getCenter().getX() + point.getY()
		* point.getY() - c1.getCenter().getY() * c1.getCenter().getX();
	if (point.getX() == c1.getCenter().getX() && point.getY() == c1.getCenter().getY())
	{
		cout << "该点在圆心上" << endl;
	}
	else if (distance == c1.getR() * c1.getR())
	{
		cout << "该点在圆上" << endl;
	}
	else if (distance > c1.getR() * c1.getR())
	{
		cout << "该点在圆外" << endl;
	}
	else
	{
		cout << "该点在圆内" << endl;
	}
}

主函数文件

#include 
#include "circle.h"

using namespace std;


//class Point
//{
//public:
//	void setX(int x)
//	{
//		m_X = x;
//	}
//	int getX()
//	{
//		return m_X;
//	}
//	void setY(int y)
//	{
//		m_Y = 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 center)
//	{
//		m_Center = center;
//	}
//	Point getCenter()
//	{
//		return m_Center;
//	}
//
//	void Position(Circle c1, Point point)
//	{
//		int distance = point.getX() * point.getX() - c1.getCenter().getX() * c1.getCenter().getX() + point.getY()
//			* point.getY() - c1.getCenter().getY() * c1.getCenter().getX();
//		if (point.getX() == c1.getCenter().getX() && point.getY() == c1.getCenter().getY())
//		{
//			cout << "该点在圆心上" << endl;
//		}
//		else if (distance == c1.getR()* c1.getR())
//		{
//			cout << "该点在圆上" << endl;
//		}
//		else if (distance > c1.getR()* c1.getR())
//		{
//			cout << "该点在圆外" << endl;
//		}
//		else
//		{
//			cout << "该点在圆内" << endl;
//		}
//	}
//private:
//	int m_R;
//	Point m_Center;
//};

int main()
{

	Circle c1;
	Point c1p;

	c1p.setX(0);
	c1p.setY(0);
	c1.setR(10);
	c1.setCenter(c1p);
	Point c2p;
	c2p.setX(0);
	c2p.setY(10);

	c1.Position(c1,  c2p);

	system("pause");
	return 0;
}
运行结果:

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5713929.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-18
下一篇2022-12-17

发表评论

登录后才能评论

评论列表(0条)

    保存