C++ 2(将类分文件) //点和圆的关系 //设计一个圆形类 和一个点类 计算点和圆的关系 //点到圆心的距离 == 半径 点在圆上 //点到圆心的距离 > 半径 点在圆外 //点到圆心的距离 < 半径 点在圆内 //点到圆心的距离 获取 ....... (x1 -x2)^2 + (y1-y2)^2 开根号 和半径对比 // 计算 可以 两边同时 平方
1 源文件 main.cpp 2 //点和圆的关系 3 //设计一个圆形类 和一个点类 计算点和圆的关系 4 //点到圆心的距离 == 半径 点在圆上 5 //点到圆心的距离 > 半径 点在圆外 6 //点到圆心的距离 < 半径 点在圆内 7 //点到圆心的距离 获取 ....... (x1 -x2)^2 + (y1-y2)^2 开根号 和半径对比 8 // 计算 可以 两边同时 平方 9 #include <iostream> 10 #include<string> 11 #include"circle.h" 12 #include"point.h" 13 14 using namespace std; 15 16 ////点类 17 //class Point 18 //{ 19 //public: 20 // //设置X 21 // void setX(int x) 22 // { 23 // m_X = x; 24 // } 25 // 26 // //获取X 27 // int getX() 28 // { 29 // return m_X; 30 // } 31 // //设置Y 32 // void setY(int y) 33 // { 34 // m_Y = y; 35 // } 36 // //获取Y 37 // int getY() 38 // { 39 // return m_Y; 40 // } 41 // 42 // 43 //private: 44 // 45 // int m_X; 46 // int m_Y; 47 //}; 48 // 49 ////圆类 50 //class Circle 51 //{ 52 //public: 53 // //设置半径 54 // void setR(int r) 55 // { 56 // m_R = r; 57 // } 58 // 59 // //获取半径 60 // 61 // int getR() 62 // { 63 // return m_R; 64 // } 65 // 66 // //设置圆心 67 // void setCenter(Point center) 68 // { 69 // m_Center = center; 70 // } 71 // 72 // //获取圆心 73 // Point getCenter() 74 // { 75 // return m_Center; 76 // } 77 // 78 //private: 79 // 80 // int m_R; //半径 81 // 82 // //在类中可以让另一个类 作为本类种的成员 83 // Point m_Center; //圆心 84 //}; 85 86 //判断点和圆的关系 87 88 void isInCircle(Circle &c, Point &p) 89 { 90 //计算两点之间距离 平方 91 int distance = 92 (c.getCenter().getX() - p.getX()) * (c.getCenter().getX() - p.getX()) + 93 (c.getCenter().getY()- p.getY()) * (c.getCenter().getY() - p.getY()); 94 95 //计算半径的平方 96 int rDistance = c.getR() * c.getR(); 97 98 99 //判断关系 100 101 if (distance == rDistance) 102 { 103 cout << "点在圆上" << endl; 104 } 105 else if (distance > rDistance) 106 { 107 cout << "点在圆外" << endl; 108 } 109 else 110 { 111 cout << "点在圆内" << endl; 112 } 113 114 115 } 116 117 118 int main() 119 { 120 121 //创建圆 122 Circle c; 123 c.setR(10); 124 Point center; 125 center.setX(10); 126 center.setY(0); 127 c.setCenter(center); 128 129 130 131 132 //创建点 133 Point p; 134 p.setX(10); 135 p.setY(10); 136 137 138 //判断 139 isInCircle(c, p); 140 141 142 } 143 144 新建头文件 145 point.h 146 #pragma once 147 #include<iostream> 148 using namespace std; 149 150 //点类 151 class Point 152 { 153 public: 154 //设置X 155 void setX(int x); 156 157 //获取X 158 int getX(); 159 160 //设置Y 161 void setY(int y); 162 163 //获取Y 164 int getY(); 165 166 167 168 private: 169 170 int m_X; 171 int m_Y; 172 }; 173 174 175 176 177 新建 point.c 源文件 178 #include "point.h" 179 //点类 180 181 182 //设置X 183 void Point::setX(int x) 184 { 185 m_X = x; 186 } 187 188 //获取X 189 int Point::getX() 190 { 191 return m_X; 192 } 193 //设置Y 194 void Point::setY(int y) 195 { 196 m_Y = y; 197 } 198 //获取Y 199 int Point::getY() 200 { 201 return m_Y; 202 } 203 204 新建 circle.h 头文件 205 #pragma once 206 #include <iostream> 207 using namespace std; 208 #include "point.h" 209 210 211 //圆类 212 class Circle 213 { 214 public: 215 //设置半径 216 void setR(int r); 217 218 219 //获取半径 220 221 int getR(); 222 223 224 //设置圆心 225 void setCenter(Point center); 226 227 228 //获取圆心 229 Point getCenter(); 230 231 232 private: 233 234 int m_R; //半径 235 236 //在类中可以让另一个类 作为本类种的成员 237 Point m_Center; //圆心 238 }; 239 新建circle.c 源文件 240 #include "circle.h" 241 //圆类 242 243 //设置半径 244 void Circle::setR(int r) 245 { 246 m_R = r; 247 } 248 249 //获取半径 250 251 int Circle::getR() 252 { 253 return m_R; 254 } 255 256 //设置圆心 257 void Circle::setCenter(Point center) 258 { 259 m_Center = center; 260 } 261 262 //获取圆心 263 Point Circle::getCenter() 264 { 265 return m_Center; 266 }
本文来自博客园,作者:Bytezero!,转载请注明原文链接:https://www.cnblogs.com/Bytezero/p/15107035.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)