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 }

 

posted on 2021-08-06 09:11  Bytezero!  阅读(94)  评论(0编辑  收藏  举报