当前位置: 首页 > news >正文

C++项目案例圆和点的关系 (涉及知识点:头文件定义类,cpp文件实现类,类和作用域,linux编译运行c++项目)

一.项目描述

在这里插入图片描述
点与圆有三种关系:

点在圆外
点在圆上
点在圆内

在这里插入图片描述

计算点到圆心的距离就能判断点在圆的哪个地方。

在这里插入图片描述
在这里插入图片描述

二.项目结构

在这里插入图片描述

三.include文件

3.1 Circle类的声明

Circle.h

// 防止头文件重复包含
#pragma once
// #include<iostream>
#include "Point.h"
using namespace std;class Circle
{
public:// 设置半径void setR(int r);//获取半径int getR();//设置圆心void setCenter(Point center);Point getCenter();private:int m_R; //半径Point m_Center; //圆心
};

3.2 Point类的声明

Point.h

#pragma once
#include<iostream>
using namespace std;class Point
{
public:// 设置xvoid setX(int x);void setY(int y);// 获取yint getX();int getY();private:int m_X;int m_Y;
};

四.src文件

4.1 Circle类的定义

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

4.2 Point类的定义

Point.cpp

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

五.main.cpp

#include<iostream>using namespace std;
#include "Circle.h"
#include "Point.h"// 判断点和圆的关系
void isInCircle(Circle &c,Point &p)
{//计算两点之间距离的平方int distance = (c.getCenter().getX() - p.getX()) * (c.getCenter().getX() - p.getX()) + (c.getCenter().getY() - p.getY()) * (c.getCenter().getY() - p.getY());//计算半径的平方int rDistance = c.getR() * c.getR();//判断关系if (distance == rDistance){cout<<"点在圆上"<<endl;}else if (distance>rDistance){cout<<"点在圆外"<<endl;}else{cout<<"点在圆内"<<endl;}}int main()
{// 创建圆Circle c;c.setR(10);Point center;center.setX(10);center.setY(0);c.setCenter(center);//创建点Point p;p.setX(10);p.setY(10);//判断两者关系isInCircle(c,p);return 0;
}

相关文章:

  • html实现图片裁剪处理(附源码)
  • 通过bat命令启动jar后缀软件
  • C++继承(公有继承,保护继承,私有继承)
  • 企业APP软件定制开发的关键步骤|网站小程序搭建
  • asp.net在线考试系统+sqlserver数据库
  • Ubuntu22.04 部署Mqtt服务器
  • 最长单调上升子序列问题
  • Centos(Linux)服务器安装Dotnet8 及 常见问题解决
  • 21. 深度学习 - 拓朴排序的原理和实现
  • 使用webhook发送企业微信消息
  • 【C++】类和对象(7)--友元, static成员
  • Android 12 客制化修改初探-Launcher/Settings/Bootanimation
  • 斯坦福机器学习 Lecture1 (机器学习,监督学习、回归问题、分类问题定义)
  • android studio导入eclipse项目
  • 趣学python编程 (三、计算机基础知识)
  • .pyc 想到的一些问题
  • 【从零开始安装kubernetes-1.7.3】2.flannel、docker以及Harbor的配置以及作用
  • 【跃迁之路】【477天】刻意练习系列236(2018.05.28)
  • android高仿小视频、应用锁、3种存储库、QQ小红点动画、仿支付宝图表等源码...
  • Android开发 - 掌握ConstraintLayout(四)创建基本约束
  • canvas 高仿 Apple Watch 表盘
  • Docker 1.12实践:Docker Service、Stack与分布式应用捆绑包
  • ERLANG 网工修炼笔记 ---- UDP
  • HTML-表单
  • IDEA 插件开发入门教程
  • JDK 6和JDK 7中的substring()方法
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • Puppeteer:浏览器控制器
  • STAR法则
  • vue总结
  • 判断客户端类型,Android,iOS,PC
  • 前端存储 - localStorage
  • 如何进阶一名有竞争力的程序员?
  • 数据科学 第 3 章 11 字符串处理
  • 数据可视化之 Sankey 桑基图的实现
  • 双管齐下,VMware的容器新战略
  • 吐槽Javascript系列二:数组中的splice和slice方法
  • 微服务入门【系列视频课程】
  • 找一份好的前端工作,起点很重要
  • #微信小程序:微信小程序常见的配置传旨
  • #我与Java虚拟机的故事#连载11: JVM学习之路
  • (11)MATLAB PCA+SVM 人脸识别
  • (done) NLP “bag-of-words“ 方法 (带有二元分类和多元分类两个例子)词袋模型、BoW
  • (echarts)echarts使用时重新加载数据之前的数据存留在图上的问题
  • (k8s中)docker netty OOM问题记录
  • (六) ES6 新特性 —— 迭代器(iterator)
  • (转)从零实现3D图像引擎:(8)参数化直线与3D平面函数库
  • .bat批处理(十一):替换字符串中包含百分号%的子串
  • .NET 8.0 发布到 IIS
  • .net利用SQLBulkCopy进行数据库之间的大批量数据传递
  • .NET设计模式(8):适配器模式(Adapter Pattern)
  • /etc/apt/sources.list 和 /etc/apt/sources.list.d
  • @property括号内属性讲解
  • [ vulhub漏洞复现篇 ] Jetty WEB-INF 文件读取复现CVE-2021-34429
  • [ 蓝桥杯Web真题 ]-布局切换