ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

类封装案例2

2021-08-01 19:03:00  阅读:198  来源: 互联网

标签:getY 封装 point int void getX 案例 circle


求圆与点的位置关系

class point
{
public:
	//设置x
	void setX(int x)
	{
		m_x = x;
	}
	//读取x
	int getX()
	{
		return m_x;
	}
	//设置y
	void setY(int y)
	{
		m_y = 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 setzero(point zero)
	{
		m_zero = zero;
	}
	point getzero()
	{
		return m_zero;
	}
private:
	int m_r;
	point m_zero;
};

//位置函数
void locate(circle& c, point& p)
{
	//计算两点之间距离
	int L = (c.getzero().getX() - p.getX()) * (c.getzero().getX() - p.getX()) + (c.getzero().getY() - p.getY()) * (c.getzero().getY() - p.getY());
		int rr = c.getR() * c.getR();

		//比较关系
		if (L > rr)
		{
			cout << "圆外" << endl;
		}
		else if (L == rr)
		{
			cout << "圆上" << endl;
		}
		else
		{
			cout << "圆内" << endl;
		}
}


int main() {//主函数返回值为整型
	//设置点坐标
	point p;
	p.setX(10);
	p.setX(10);
	//设置圆参数
	circle c;
	c.setR(20);
	//独立对圆心进行设置
	point zero;
	zero.setX(12);
	zero.setY(12);
	//将圆心坐标载入圆中
	c.setzero(zero);
	//运行位置函数
	locate(c, p);
	system("pause");//暂停系统命令
	return 0;//退出程序
}

如果将类独立放在一个文件夹中:

point头文件

#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;
};

point源文件

#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;
}

circle头文件

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

class circle
{
public:
	//设置半径
	void setR(int r);
	
	//读取半径
	int getR();

	//设置圆点
	void setzero(point zero);


private:
	int m_r;
	point m_zero;
};

circle源文件

#include "circle.h"


	//设置半径
	void circle::setR(int r)
	{
		m_r = r;
	}
	//读取半径
	int circle::getR()
	{
		return m_r;
	}
	//设置圆点
	void circle::setzero(point zero)
	{
		m_zero = zero;
	}
	point circle::getzero()
	{
		return m_zero;
	}

主函数文件

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



//位置函数
void locate(circle& c, point& p)
{
	//计算两点之间距离
	int L = (c.getzero().getX() - p.getX()) * (c.getzero().getX() - p.getX()) + (c.getzero().getY() - p.getY()) * (c.getzero().getY() - p.getY());
		int rr = c.getR() * c.getR();

		//比较关系
		if (L > rr)
		{
			cout << "圆外" << endl;
		}
		else if (L == rr)
		{
			cout << "圆上" << endl;
		}
		else
		{
			cout << "圆内" << endl;
		}
}


int main() {//主函数返回值为整型
	//设置点坐标
	point p;
	p.setX(10);
	p.setX(10);
	//设置圆参数
	circle c;
	c.setR(20);
	//独立对圆心进行设置
	point zero;
	zero.setX(12);
	zero.setY(12);
	//将圆心坐标载入圆中
	c.setzero(zero);
	//运行位置函数
	locate(c, p);
	system("pause");//暂停系统命令
	return 0;//退出程序
}

标签:getY,封装,point,int,void,getX,案例,circle
来源: https://blog.csdn.net/weixin_45149964/article/details/119301734

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有