C++学习:类class嵌套及分文件编写(圆与点位置判断)

背景:在main函数中定义圆的信息和点的信息,判断点和圆的关系。circle和point是两个类,isaa是距离判断函数,circle类中嵌套了point类。类包括权限、成员属性(变量)、成员行为(函数),权限包括public、protected、private三种,一般成员属性设置在private权限里,通过类内的接口函数去读和写。

vs目录:
在这里插入图片描述
bglei.cpp包含main主函数:

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

int main()
{
	circle c;
	c.set_R(10);
	point center;
	center.set_x(10);
	center.set_y(0);
	c.set_cen(center);


	point q1;
	q1.set_x(10);
	q1.set_y(9);

	point q2;
	q2.set_x(10);
	q2.set_y(10);

	point q3;
	q3.set_x(10);
	q3.set_y(11);

	isposition(c, q1);
	isposition(c, q2);
	isposition(c, q3);
	system("pause");
	return 0;
}

点坐标类头文件point.h:

#pragma once
#include<iostream>
using namespace std;

class point
{
public:
	void set_x(int x);
	int get_x();
	void set_y(int y);
	int get_y();

private:
	int dx;
	int dy;
};

点的函数定义文件point1.cpp:

#include"point.h"
void point::set_x(int x)
{
	dx = x;
}
int point::get_x()
{
	return dx;
}
void point::set_y(int y)
{
	dy = y;
}

int point::get_y()
{
	return dy;
}

圆类头文件circle.h:

#pragma once
#include<iostream>
#include"point.h"
using namespace std;
class circle
{
public:
	void set_R(int r);
	int get_R();
	void set_cen(point mc);
	point get_cen();
private:
	int m_R;
	point m_center;
};

圆的函数定义文件circle1.cpp:

#include"circle.h"
void circle::set_R(int r)
{
	m_R = r;
}
int circle::get_R()
{
	return m_R;
}

void circle::set_cen(point mc)
{
	m_center = mc;
}

point circle::get_cen()
{
	return m_center;
}

距离比较函数头文件isaa.h:

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

void isposition(circle& c, point& d);

距离比较函数文件isaa1.cpp:

#include"isaa.h"

void isposition(circle& c, point& d)
{
	int distance =
		(c.get_cen().get_x() - d.get_x()) * (c.get_cen().get_x() - d.get_x()) +
		(c.get_cen().get_y() - d.get_y()) * (c.get_cen().get_y() - d.get_y());
	int rdis =
		c.get_R() * c.get_R();

	cout << "圆心:(" << c.get_cen().get_x() << "," << c.get_cen().get_y() << ")\t" << "圆的半径:" << rdis << endl;
	cout << "点的坐标:(" << d.get_x() << "," << d.get_y() << ")" << endl;
	if (distance > rdis)
	{
		cout << "结论:点在圆外" << endl << endl;
	}
	else if (distance < rdis)
	{
		cout << "结论:点在圆内" << endl << endl;
	}
	else
	{
		cout << "结论:点在圆上" << endl << endl;
	}
}

运行bglei.cpp结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CHNfisher

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值