C++ 点圆运算(构造与析构)

2023-11-06

题目描述
设计一个点类Point,包含私有属性x坐标和y坐标,操作包括
1、构造函数,要求满足两个条件:1.能够使用类Point去创建一个对象数组(缺省构造方法!);2.能够接收外来输入的x和y坐标做初始化,提示:构造函数重载
2、析构函数,把x坐标和y坐标都清0,并输出信息“point clear”
3、设置(setXY),接受外来输入,并设置x坐标和y坐标
4、获取x坐标,直接返回x值
5、获取y坐标,直接返回y值 设计一个圆类Circle,包含私有属性:圆心坐标x和y、半径r;
操作包括:
1、构造函数,接受外来输入,设置圆心x坐标、y坐标和半径 2、析构函数,将圆心坐标x和y以及半径都清零,并输出"circle clear"
3、包含(Contain),判断一个圆是否包含一个点,计算圆心到这个点的距离,然后和半径做比较,大于则不包含,小于等于则包含。提示:用点对象做参数不一定符合输出
输入
第一行输入一个点的x坐标和y坐标,用Point类去创建一个点对象,并且自动通过构造函数来初始化
第二行输入n,用Point类去创建一个点对象数组,包含n个点
第三行起输入n行,每行输入一个点的x和y坐标,使用设置(setXY)来设置每个点的x和y坐标
接着一行输入三个参数,表示一个圆的圆心坐标x和y,以及半径,使用Circle类去创建一个圆对象,并自动通过构造函数来初始化

输出
通过调用圆的包含(Contain)方法,判断每个点是否在圆内。
按照点的输入顺序,每行输出一个点的判断结果,如果包含则输出in,不包含则输出out
说明:当一个对象数组是动态创建的,那么在程序结束时,这个数组是不会被回收。只有增加代码delete []p,才会回收数组。
本题不要求收回数组.
样例输入
5 2
3
4 7
9 9
2 4
3 3 3
样例输出
in
out
out
in
circle clear
point clear

#include<iostream>
#include <iomanip>
#include<cmath> 
using namespace std;
class Point{
 private:
  int Point_x;
  int Point_y;
 public:
  Point() {
   Point_x=0;
   Point_y=0;
  }
  Point(int x,int y) {
   Point_x=x;
   Point_y=y;
  }
  void setXY(int x,int y) {
   Point_x=x;
   Point_y=y;
  }
  int getX(){return Point_x;}
  int getY(){return Point_y;}
  ~Point(){//析构函数
   Point_x=0;
   Point_y=0;
   cout<<"point clear"<<endl;
  } 
};
class Circle{
 private:
  int Circle_x;
  int Circle_y;
  int Circle_r;
 public:
  Circle() {
   Circle_x=0;
   Circle_y=0;
   Circle_r=0;
  }
  Circle(int x,int y,int r){
   Circle_x=x;
   Circle_y=y;
   Circle_r=r;
  }
  void setXY(int x,int y,int r){
   Circle_x=x;
   Circle_y=y;
   Circle_r=r;
  }
  void Contain(int p_x,int p_y){
 if(sqrt((p_x-Circle_x)*(p_x-Circle_x)+(p_y-Circle_y)*(p_y-Circle_y))>Circle_r)
  cout<<"out"<<endl;
  else
  cout<<"in"<<endl;
  }
  ~Circle(){//析构函数
   Circle_x=0;
   Circle_y=0;
   Circle_r=0;
   cout<<"circle clear"<<endl;
  }
};
int main(){
 int p_x,p_y,c_x,c_y,c_r,n;
 cin>>p_x>>p_y;
 Point p1(p_x,p_y);
 cin>>n;
 Point *p;
 p=new Point[n];
 for(int i=0;i<n;i++){
  cin>>p_x>>p_y;
  p[i].setXY(p_x,p_y);  
 }
 cin>>c_x>>c_y>>c_r;
 Circle c1(c_x,c_y,c_r);
 int x,y;
 x=p1.getX();
 y=p1.getY();
 c1.Contain(x,y);
 for(int i=0;i<n;i++){
  x=p[i].getX();
  y=p[i].getY();
  c1.Contain(x,y);
 }
}

析构函数

当对象消亡的时候,系统要进行内存的释放,自动调用析构函数,
析构函数一般是对构造的函数进行“清理”
如果没有定义析构函数,C++编译程序会为每个类提供一个不带参数且函数体为空的析构函数。如果定义了,则不会提供。

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++ 点圆运算(构造与析构) 的相关文章

  • 如何在 Visual Studio 2010 中增强 XAML 设计器?

    当我使用 XAML 设计器时 进入设计器和退出设计器是如此困难和缓慢 当我这样做时 Visual Studio 卡了一段时间 有什么方法可以增强 XAML 设计器和编辑器吗 Ant 保存 XAML 文件时非常慢 这通常意味着您可能有复杂的
  • 在 C# 中创建具有单独列的分隔文本

    我一直在尝试在 C 中创建一个制表符限制的文本文件 以便数据正确显示在单独的列中 Firstname Lastname Age John Smith 17 James Sawyer 31 我尝试过 t 字符 但我得到的只是 Firstnam
  • 如何检查QProcess是否正确执行?

    QProcess process sdcompare QString command sdcompare QStringList args sdcompare command sdcompare diff args sdcompare lt
  • 启动时出现 OData v4 错误:找不到段“Whatever”的资源

    我正在构建新的 v4 服务 一切进展顺利 直到我为新模型 实体添加了新控制器 并在启动站点进行测试运行时收到此错误 控制器似乎编码正确 就像其他控制器一样 控制器 CustomersOData 中的操作 GetFeed 上的路径模板 Cus
  • 推导指南中的引用和值之间的差异

    考虑类型A template
  • 在新的浏览器进程中打开 URL

    我需要在新的浏览器进程中打开 URL 当浏览器进程退出时我需要收到通知 我当前使用的代码如下 Process browser new Process browser EnableRaisingEvents true browser Star
  • 在 Unity 进程和另一个 C# 进程之间进行本地 IPC 的最快方法 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我希望每秒大约 30 次从 C 应用程序向我的 Unity 应用程序传送大量数据 由于 Unity 不支持映射内存和管道 我考虑了 t
  • 使用 C 语言使用 strftime() 获取缩写时区

    我看过this https stackoverflow com questions 34408909 how to get abbreviated timezone and this https stackoverflow com ques
  • 如何在 C# 中定义文本框数组?

    您好 当我在 Windows 申请表上创建文本框时 我无法将其命名为 box 0 box 1 等 我这样做的目的是因为我想循环使用它们 其实我发现TextBox array firstTextBox secondTextBox 也有效
  • ASP.NET:获取自 1970 年 1 月 1 日以来的毫秒数

    我有一个 ASP NET VB NET 日期 我试图获取自 1970 年 1 月 1 日以来的毫秒数 我尝试在 MSDN 中寻找方法 但找不到任何东西 有谁知道如何做到这一点 从 NET 4 6 开始 该方法ToUnixTimeMillis
  • 未定义的行为或误报

    我 基本上 在野外遇到过以下情况 x x 5 显然 它可以在早期版本的 gcc 下编译干净 在 gcc 4 5 1 下生成警告 据我所知 警告是由 Wsequence point 生成的 所以我的问题是 这是否违反了标准中关于在序列点之间操
  • 未经许可更改内存值

    我有一个二维数组 当我第一次打印数组的数据时 日期打印正确 但其他时候 array last i 的数据从 i 0 到 last 1 显然是一个逻辑错误 但我不明白原因 因为我复制并粘贴了 for 语句 那么 C 更改数据吗 I use g
  • 在一个字节中存储 4 个不同的值

    我有一个任务要做 但我不知道从哪里开始 我不期待也绝对不想要代码中的答案 我想要一些关于该怎么做的指导 因为我感到有点失落 将变量打包和解包到一个字节中 您需要在一个字节中存储 4 个不同的值 这些值为 NAME RANGE BITS en
  • C++:.bmp 到文件中的字节数组

    是的 我已经解决了与此相关的其他问题 但我发现它们没有太大帮助 他们提供了一些帮助 但我仍然有点困惑 所以这是我需要做的 我们有一个 132x65 的屏幕 我有一个 132x65 的 bmp 我想遍历 bmp 并将其分成小的 1x8 列以获
  • .NET中的LinkedList是循环链表吗?

    我需要一个循环链表 所以我想知道是否LinkedList是循环链表吗 每当您想要移动列表中的 下一个 块时 以循环方式使用它的快速解决方案 current current Next current List First 电流在哪里Linke
  • gcc 的配置选项如何确定默认枚举大小(短或非短)?

    我尝试了一些 gcc 编译器来查看默认枚举大小是否很短 至少一个字节 强制使用 fshort enums 或无短 至少 4 个字节 强制使用 fno short enums user host echo Static assert 4 si
  • 为什么在setsid()之前fork()

    Why fork before setsid 守护进程 基本上 如果我想将一个进程与其控制终端分离并使其成为进程组领导者 我使用setsid 之前没有分叉就这样做是行不通的 Why 首先 setsid 将使您的进程成为进程组的领导者 但它也
  • 如何在 C# 中调整图像大小同时保持高质量?

    我从这里找到了一篇关于图像处理的文章 http www switchonthecode com tutorials csharp tutorial image editing saving cropping and resizing htt
  • 英特尔 Pin 与 C++14

    问题 我有一些关于在 C 14 或其他 C 版本中使用英特尔 Pin 的问题 使用较新版本从较旧的 C 编译代码很少会出现任何问题 但由于 Intel Pin 是操作指令级别的 如果我使用 C 11 或 C 14 编译它 是否会出现任何不良
  • 如何将 Roslyn 语义模型返回的类型符号名称与 Mono.Cecil 返回的类型符号名称相匹配?

    我有以下代码 var paramDeclType m semanticModel GetTypeInfo paramDecl Type Type Where paramDeclType ToString returns System Col

随机推荐

  • 统计网站页面的访问量

    最近做的 食盐行业信用管理与公共服务系统 项目 需要做一个网站文章页面的访问量功能 自己的解决方案 可能很简陋 但是解决了问题 而且我也给出了详细的过程 请大家多多支持 参与谈论 博客写这么长不容易啊 嘿嘿 需求及规则如下 1 同一个ip地
  • java游戏主角叶开,《仙侠道》叶开深度解析

    仙侠道 叶开深度解析 成也叶开 败也叶开 高速的都想把叶开秒了 这样赢得几率大 但是对手也会想法设法让你秒不了 上叶开同等战力同样伙伴 低速度的占优势 低速阵印陷阱有两个回个 经脉有两个回合 燕无名魂刃给叶开套上 套上期间任何陷阱 增益 清
  • K8S 安装 Dashboard

    1 在 master 节点执行 本例 k8s 是 v1 17 2 对应的 dashboard 是 v2 0 0 rc5 这个版本 具体去这里查看对应的版本 Releases kubernetes dashboard GitHub wget
  • js算法设计思想之“贪心算法”

    贪心算法是算法设计中一种方法 期盼通过每个阶段的局部最优选择 从而达到全局的最优选择 结果不一定是最优的 leetcode 455 分饼干 解题思路 局部最优 技能满足孩子 还消耗最小 先将 较小的饼干 分给胃口最小的孩子 解题步骤 饼干数
  • datax-web使用介绍

    datax web 路由策略 当执行器集群部署时 提供丰富的路由策略 包括 FIRST 第一个 固定选择第一个机器 LAST 最后一个 固定选择最后一个机器 ROUND 轮询 RANDOM 随机 随机选择在线的机器 CONSISTENT H
  • GRE虚拟隧道配置

    GRE拓扑 配置ip client1 172 16 1 1 172 16 1 254 server1 192 168 1 1 192 168 1 254 配置路由 R1 sys sys peer1 int g0 0 0 ip address
  • AnyTXT Searcher

    AnyTXT Searcher 非常简单 只需要写下您要搜索的关键文字 然后按Enter Go 一体化的界面 用户界面是一个巨大的预览面板 如果您有多个驱动器 则可以选择要搜索的驱动器 也可以全部覆盖 要指定您的驱动器 请单击搜索字段旁边的
  • 一个简单的线程锁------pthread和win32的临界区(Critical Section)

    临界区 临界区是指一个小代码段 在代码能够执行前 它必须独占对某些资源的访问权 这是让若干代码能够 以原子操作方式 来使用资源的一种方法 所谓原子 atomic 操作方式 是指这段代码知道没有别的线程要访问这个资源 说明 1 MacOSX
  • 尝试在条件“$(_DeviceSdkVersion) >= 21”中对计算结果为“”而不是数字的“$(_DeviceSdkVersion)”进行数值比较。

    最近折腾xamarin android 使用genymotion模拟器 vs 2015自带的速度太慢 发生 出现部署错误 问题 查看 输出 窗口 发现是adb exe执行问题 原因是genymotion默认使用自身的adb配置 更改过来即可
  • 【自动控制原理】非零初始条件下的传递函数_含有初始条件的传递函数-笔记

    一个一阶函数 其传递函数为 得其微分方程为 前提条件为x 0 0 而 做Laplace 得到新的传递函数G s 化成框图 不会影响系统的稳定 不影响我们分析该系统 比如
  • 新媒体数据分析:新媒体运营主要做什么?

    新媒体运营主要做什么 新媒体运营每天是做什么 虽然在招聘网上一搜 各种岗位职责 岗位要求 一目了然 但落实到具体的工作中时 都是在做的什么 作为一个从事新媒体运营工作的人 工作主要分为社交媒体的辅助运营 主要媒体的精益运营和自媒体的变现三类
  • Anaconda安装(详细教程)

    一 简介 Anaconda是一个开源的Python发行版本 其包含了conda Python等180多个科学包及其依赖项 其中包括Conda Python以及一大堆安装好的工具包 比如 numpy pandas等 而conda是一个开源的包
  • MTD子系统和NAND

    先前的文章 虚拟文件系统 VFS 基于linux3 10 和 UBIFS文件系统 只是对文件系统进行各层的分析 并没有连贯到读写flash 透过本文可以知道ubifs文件系统发出的读在linux操作系统上是到底是如何完成的 NAND设备 L
  • A-2 LRU-K(攀拓(PAT)- 程序设计(甲级)2023年春季考试仿真卷)

    A 2 LRU K 分数 25 作者 陈越 单位 浙江大学 Least Recently Used LRU cache scheme is to remove the least recently used frame the one ha
  • T分布和T检验的理解,Python代码实现T检验的计算

    每天学习一点 每天进步一点 声明 本人所有的原创 都是自己在学习过程中的记录点滴 不一定都是对的 肯定也会有一些错误的想法 所以大家看一看就好 不可尽信 当然也欢迎指出 T分布 定义 有来自标准正态分布的样本X N 0 1 和来自卡方n分布
  • git lfs的用法及安装遇到的问题-Windows版本

    在使用git lfs的时候遇到了各种问题 遍寻无果 最后终于摸索出来了 现将摸索出来的成功下载文件的过程和方法总结如下 在下载GitHub上程序和数据的时候发现下载的数据为 csv格式 但是打开却出现了意义不明的乱码 然后我打开了versi
  • Jmeter性能测试 (入门)

    Jmeter是一款优秀的开源测试工具 是每个资深测试工程师 必须掌握的测试工具 熟练使用Jmeter能大大提高工作效率 熟练使用Jmeter后 能用Jmeter搞定的事情 你就不会使用LoadRunner了 本文将通过一个实际的测试例子 来
  • XDOJ最长单词的长度

    试题名称 最长单词的长度 时间限制 1 秒 内存限制 256KB 问题描述 给定一个英文句子 统计这个句子中最长单词的长度 并在屏幕上输出 输入说明 从键盘输入一个英文句子 句子中只含有英文字符和空格 句子以 结束 句子总长不超过100个字
  • Linux shell:脚本读取文件内容赋给变量的三种方式

    前段时间用到读取配置文件的相关信息 搜索到一些比较好的方法 整理一下作为笔记方便以后查看 先假设现在有一个配置文件net config 内容如下 ID 123 IP 192 168 1 1 Name test 现在我们可以通过以下三种脚本读
  • C++ 点圆运算(构造与析构)

    题目描述 设计一个点类Point 包含私有属性x坐标和y坐标 操作包括 1 构造函数 要求满足两个条件 1 能够使用类Point去创建一个对象数组 缺省构造方法 2 能够接收外来输入的x和y坐标做初始化 提示 构造函数重载 2 析构函数 把