首页 > 其他分享 >第十四天第一个问题

第十四天第一个问题

时间:2023-05-04 18:11:30浏览次数:36  
标签:const 第一个 Point double void 问题 第十四天 run Circle

问题描述:

以点类Point为基类公有派生圆类Circle,main(void)函数完成对其的测试。

Point类结构说明:

Point类的数据成员包括:
①私有数据成员:X坐标x(double型),Y坐标y(double型)。
Point类成员函数包括:
①有参构造函数Point(double, double)和拷贝构造函数Point(const  Point  &),其中有参构造函数参数默认值为0,输出信息“Point Constructor run”,拷贝构造函数输出信息“Point CopyConstructor run”
②析构函数,析构函数输出信息“Point Destructor run”
③公有函数成员:void  setX(double)和double getX() const分别返回和设置X坐标
④公有函数成员:void  setY(double)和double getY() const分别返回和设置Y坐标
⑤公有成员函数void show() const用于显示点的坐标信息,显示格式为:(x,y)
⑥公有成员函数double area() const用于计算点的面积,点的面积为0
 

Circle类结构说明:

公有派生圆类Circle以点类Point为基类,相较于点类Point,Circle类的结构说明如下:
Circle类的数据成员包括:
①私有数据成员:X坐标x继承自Point类,Y坐标y继承自Point类。
②静态数据常量PI(double型),其值为3.14159
③私有数据成员:半径radius(double型)。
Circle类成员函数包括:
①定义有参构造函数①定义有参构造函数Circle(double, double, double)和拷贝构造函数Circle(Circle &),其中有参构造函数参数包括圆心坐标和半径,圆心调用Point类构造函数进行构造,各参数默认值为0,输出信息“Circle Constructor run”,拷贝构造函数输出信息“Circle CopyConstructor run”
②定义析构函数,析构函数输出信息“Circle Destructor run”
③定义公有函数成员:void setRadius(double)和double getRadius() const分别返回和设置radius
④定义公有成员函数double circumference() const用于计算圆的周长
⑤重载double area() const用于计算圆的面积
⑥重载void show() const用于显示圆的信息,显示格式为:
(圆心X坐标,圆心Y坐标),Radius=半径
 

裁判测试程序样例:

 
#include <iostream>
using namespace std;
class Point{
    protected:
      double x;
      double y;
    public:
      Point(double xv=0,double yv=0);//有参构造
      Point(const Point &p);         //拷贝构造
      ~Point();                      //析构函数
      void show() const;             //显示Point信息
      double area()const;            //面积=0
      void setX(double xv);          //设置X坐标
      void setY(double yv);          //设置Y坐标
      double getX() const;           //获取X坐标
      double getY() const;           //获取Y坐标
};
//有参构造
Point::Point(double xv,double yv){
    x=xv;
    y=yv;
    cout<<"Point Constructor run"<<endl;
}
//拷贝构造
Point::Point(const Point &p){
    x=p.x;
    y=p.y;
    cout<<"Point CopyConstructor run"<<endl;
}
//析构函数
Point::~Point(){
    cout<<"Point Destructor run"<<endl;
}
//显示Point
void Point::show() const{
    cout<<"("<<x<<","<<y<<")";
}
//设置X坐标
void Point::setX(double xv){
    x=xv;
}
//设置Y坐标
void Point::setY(double yv){
    y=yv;
}
//面积函数
double Point::area() const{
    return 0;
}
//获取X坐标
double Point::getX() const{
    return x;
}
//获取Y坐标
double Point::getY() const{
    return y;
}

/*请在这里填写答案*/

int main(void){
    double  r;
    cin>>r;
    Circle c1(1,2,4),c2,c3(c1);
    c1.show();
    cout<<endl<<"Area="<<c1.area()<<endl<<"Circumference="<<c1.circumference()<<endl;
    c2.show();
    cout<<endl<<"Area="<<c2.area()<<endl<<"Circumference="<<c2.circumference()<<endl;
    c3.setRadius(r);
    c3.show();
    cout<<endl<<"Area="<<c3.area()<<endl<<"Circumference="<<c3.circumference()<<endl;
    return 0;
}
 

输入样例:

6.0
 

输出样例:

Point Constructor run
Circle Constructor run
Point Constructor run
Circle Constructor run
Point CopyConstructor run
Circle CopyConstructor run
(1,2),Radius=4
Area=50.2654
Circumference=25.1327
(0,0),Radius=0
Area=0
Circumference=0
(1,2),Radius=6
Area=113.097
Circumference=37.6991
Circle Destructor run
Point Destructor run
Circle Destructor run
Point Destructor run
Circle Destructor run
Point Destructor run

代码:


class Circle :protected Point{
private:
double radius;
public:
static double PI;
Circle(double a=0, double b=0, double c=0): Point(a,b),radius(c)
{
cout<<"Circle Constructor run"<<endl;
}
Circle(Circle &p):Point(p)
{
x=p.x;
y=p.y;
radius=p.radius;
cout<<"Circle CopyConstructor run"<<endl;
}
~Circle(){
cout<<"Circle Destructor run"<<endl;
}
void setRadius(double a)
{
radius=a;
}
double getRadius() const
{
return radius;
}
double circumference() const
{
return PI*radius*2;
}
double area() const
{
return PI*radius*radius;
}
void show() const
{
cout<<"("<<x<<","<<y<<")"<<","<<"Radius="<<radius;
}
};
double Circle::PI=3.14159;

 

标签:const,第一个,Point,double,void,问题,第十四天,run,Circle
From: https://www.cnblogs.com/czfznb/p/17372123.html

相关文章

  • 第十四天第二个问题
    问题描述:以人类Person为基类公有派生学生类Student和教师类Teacher,main(void)函数完成对其的测试。Person类结构说明: Person类的数据成员包括:①私有数据成员:身份证号no(char[20]型),姓名name(char[20]型)。Person类成员函数包括:①有参构造函数Person(char*,char*)和拷......
  • 问题解答 | FMCW TDMA-MIMO毫米波雷达信号处理仿真
    本文编辑:@调皮连续波,保持关注调皮哥,获得更多雷达学习资料和建议!大家好,我是调皮哥,今天继续给大家分享干货,助力大家轻松、快乐、有方向地学习雷达。之前分享的文章:雷达仿真|FMCWTDMA-MIMO毫米波雷达信号处理仿真(可修改为DDMA-MIMO)当中,存在几个小问题(bug),具体如下:第十节:多普勒补偿”......
  • 部署Kubeadm遇到的哪些问题,并且如何解决
    1)设置错误导致kubeadm安装k8s失败提示:ERRORFileContent–proc-sys-net-bridge-bridge-nf-call-iptables[root@node01data]#kubeadmjoinmasterIP地址:6443--tokenabcdef.0123456789abcdef>--discovery-token-ca-cert-hashsha256:e7a08a24b68c738cccfcc3ae56b7a433......
  • 雷达问问 | 2023年02月第三次问题及解答汇总
    【雷达问问】是公众号平台新推出的一个文章板块,目的是搜集在雷达技术交流群、私信、知乎,以及其他地方的关于雷达的问题或信息,方便为后来人提供参考。关于问题的解答,主要是雷达行业人员的回答,并不是权威,仅供大家参考,如有疑问,欢迎交流。【雷达问问】1、初学者想问下:波束形成和DOA估计......
  • 互联网医院系统源码:数据安全与隐私保护问题如何解决?
    当下,互联网医院系统源码已经走进了很多人的视野中,它的作用和好处小编就不用强调了,今天我们来聊另一个话题——隐私与数据安全。在智慧医疗行业,安全问题更是重中之重,这也自然而然成为了老生常谈的一个问题。本文小编将从互联网医院系统源码的数据安全与隐私保护的意义、当前面临的挑......
  • "IWR1642单帧串口数据采集" 一些问题与解决
    公众号【调皮连续波】【正文】问题描述:最近,有粉丝在使用TIIWR1642BOOST评估板时,不采用DCA1000,利用单板的串口输出一帧数据时,出现数据显示不全的问题。以下是出现问题时输出的不完全的数据帧:(数据帧的帧头部分经过注释处理,其中的HEX内容和原始数据是一致的)可以看到上述数据帧的总字......
  • MRP的问题
    MRP的问题一、MRP简介1.MRP(MaterialRequirementsPlanning,物料需求计划)是一种生产计划系统,通过对物料需求进行计算,制定生产计划以及物料采购计划,以保证生产活动的顺利进行。2.历史MRP的起源可以追溯到20世纪50年代,当时由于经济的发展和生产的复杂化,生产计划变得越......
  • vue this.$router.push 页面传值问题
    在修改一个别人的bug的时候发现一个问题,记录一下,vue前端页面在刷新页面后只读页面可以编辑了在前一个传值页面他的写法是this.$router.push({name:'xxx',query:{isEdit:false}});在接收的时候写的是this.isEdit=this......
  • C语言函数指针数组,GCC编译问题
    使用C语言函数指针数组实现简单的计算器,代码如下#include<stdio.h>#include<stdlib.h>doubleadd(doublea,doubleb){return(a+b);};doublesub(doublea,doubleb){return(a-b);};doublemul(doublea,doubleb){return(a*b);};doubl......
  • 表单的el-input无法输入问题
    问题描述通过js方法等于号赋值后,页面输入框输入或删除内容无反应修改方法(1)使用$focusUpdate,在@input中调用,强制刷新dom,这样可能会导致表单rule校验失效 (2)使用$set替换等于号赋值内容参考vue中的$forceUpdate()......