C++实现设计一个圆形类(Circle),和一个点类(Point), 计算并判断点和圆的位置关系
2020-07-26 00:42
483 查看
题目要求
设计一个圆形类(Circle),和一个点类(Point),
计算并判断点和圆的位置关系。
无分区版 :
#include <iostream> using namespace std; //设置 点 类 class Point { private: int p_x; int p_y; public: //设置横坐标 void setX(int x){ p_x = x; } //设置纵坐标 void setY(int y){ p_y = y; } //输出横坐标 int showX(){ return p_x; } //输出纵坐标 int showY(){ return p_y; } }; //设置 圆 类 class Circle { private: //设置圆心 Point center; //设置半径 int c_R; public: //设置圆心 void setCenter(Point c){ center = c; } //设置半径 void setR(int r){ c_R = r; } //输出圆心(要用Point类型返回圆心) Point showCenter(){ return center; } //输出半径 int showR(){ return c_R; } }; //全局函数判断点和圆的关系 void isInCircle(Circle &c , Point &p){ //利用两点之间距离公式 与 圆的半径进行比较(可以两边都平方) int squareDistance = (c.showCenter().showX() - p.showX()) * (c.showCenter().showX() - p.showX()) + (c.showCenter().showY() - p.showY()) * (c.showCenter().showY() - p.showY()); int radius = c.showR(); if(squareDistance == radius * radius){ cout<<"点在圆上"<<endl; }else if(squareDistance < radius * radius){ cout<<"点在圆内"<<endl; } else if (squareDistance > radius * radius){ cout<<"点在圆外"<<endl; } } int main(){ //定圆心 Point cc; cc.setX(10); cc.setY(0); //定圆心,半径 Circle c; c.setR(10); c.setCenter(cc); //定平面内一点 Point p; p.setX(10); p.setY(9); //判断 点 与 圆 的位置关系 isInCircle(c,p); }
分区版:
-
分区区间 :
-
point.h :
#pragma once #include<iostream> using namespace std; //设置 点 类 class Point { private: int p_x; int p_y; public: //设置横坐标 void setX(int x); //设置纵坐标 void setY(int y); //输出横坐标 int showX(); //输出纵坐标 int showY(); };
- point.cpp :
#include "point.h" //设置横坐标 void Point::setX(int x) { p_x = x; } //设置纵坐标 void Point::setY(int y) { p_y = y; } //输出横坐标 int Point::showX() { return p_x; } //输出纵坐标 int Point::showY() { return p_y; }
- circle.h :
#pragma once #include <iostream> #include "point.h" using namespace std; //设置 圆 类 class Circle { private: //设置圆心 Point center; //设置半径 int c_R; public: //设置圆心 void setCenter(Point c); //设置半径 void setR(int r); //输出圆心(要用Point类型返回圆心) Point showCenter(); //输出半径 int showR(); };
- circle.cpp
#include "circle.h" //设置圆心 void Circle::setCenter(Point c) { center = c; } //设置半径 void Circle::setR(int r) { c_R = r; } //输出圆心(要用Point类型返回圆心) Point Circle::showCenter() { return center; } //输出半径 int Circle::showR() { return c_R; }
- 主函数.cpp
#include "point.h" #include "circle.h" //全局函数判断点和圆的关系 void isInCircle(Circle& c, Point& p) { //利用两点之间距离公式 与 圆的半径进行比较(可以两边都平方) int squareDistance = (c.showCenter().showX() - p.showX()) * (c.showCenter().showX() - p.showX()) + (c.showCenter().showY() - p.showY()) * (c.showCenter().showY() - p.showY()); int radius = c.showR(); if (squareDistance == radius * radius) { cout << "点在圆上" << endl; } else if (squareDistance < radius * radius) { cout << "点在圆内" << endl; } else if (squareDistance > radius * radius) { cout << "点在圆外" << endl; } } int main() { //定圆心 Point cc; cc.setX(10); cc.setY(0); //定圆心,半径 Circle c; c.setR(10); c.setCenter(cc); //定平面内一点 Point p; p.setX(10); p.setY(10); //判断 点 与 圆 的位置关系 isInCircle(c, p); }
参考资料 :
https://www.bilibili.com/video/BV1et411b73Z
相关文章推荐
- 设计Point类用来定义平面上的一个点,用构造方法传 递坐标位置,方法有计算两点的距离。编写测试类,在该类中实现Point类的对象。
- 两圆圆心距离计算及位置关系判断(C++实现)
- C++判断两圆关系(用Circle和Point类)
- 以Point为基类,派生出一个Circle(圆)类,增加数据成员r(半径),以及求面积的成员函数area,实现其他需要的成员函数,设计main函数完成测试
- 计算几何工具算法-判断点与一个多边形的位置关系
- 11周1--2以Point为基类,派生出一个Circle(圆)类,增加数据成员r(半径),以及求面积的成员函数area,实现其他需要的成员函数,设计main函数完成测试;
- python设计一个Circle(圆)类,包括圆心位置`,半径,颜色等属性。编写构造方法和其他方法,计算周长和面积。
- 在已有的Point类的基础上,定义并实现一个“Circle”派生类,要求:新增一个半径成员,计算并输出自定义圆的周长及圆面积。
- 并行计算实现判断一个数是不是素数--Win32和.Net两种方式结合
- 避免一个关系就需要用一个外键来实现,或者一个关系表来实现的OO设计技巧;; 避免 外键爆炸
- 设计一个不能被继承的类-C++实现(来源于剑指名企offer)
- 定义一个圆形类,实现圆的的面积计算
- 一个基于约束传播的,玩具级微型计算语言的设计和简单实现
- c++实现ip是否在同一个网段的判断
- C++设计并测试一个名为Rectangle的矩形类,其属性为矩形的左下角与右下角两个点的坐标,根据坐标计算矩形的面积
- 设计一个方法,判断一个字符串是否为对称字符串,比如“abcba”,“abba”,要求至少采用两种方式实现。
- 设计一个圆类(circle),内有私有成员radius代表半径, 函数get_radius( )用于获得半径、area( )用于计算圆的面积; (2)定义一个桌子类table,内有私有数据h
- 编写一个计算某个月份的天数程序,请用if-else条件语句实现。要求根据用户输入的月份,判断出月份所包含的天数。
- C++ 实现判断一个输入日期是星期几,是一年中的第几天
- 左神的书——《程序员代码面试指南》之设计一个有getmin功能的栈 c++实现