C++ C++;课堂提问请在课堂上设定点 请设计一个类点来表示平面坐标上的点 给这个类两个私有数据成员x和y代表 点的位置,x和y为浮动类型 创建默认构造函数以将x和y设置为0 创建一个具有两个float参数的构造函数来设置x和y 创建公共函数成员printPoint以显示为格式 比如“(x,y)” 创建公共函数成员getX、setX、getY、setY以访问 数据成员x和y 创建具有一个点类型的公共函数成员getDistance 参数,返回一个表示两个的距离的浮点型值 重点 请设计一个类段来表示平面上的段 坐标 给这个类两个私有数据成员point1和point2表示 此段的端点 创建默认构造函数以将两个端点都设置为(0,0) 创建一个以两点对象作为参数的构造函数,以设置两点 终点 实现以下功能

C++ C++;课堂提问请在课堂上设定点 请设计一个类点来表示平面坐标上的点 给这个类两个私有数据成员x和y代表 点的位置,x和y为浮动类型 创建默认构造函数以将x和y设置为0 创建一个具有两个float参数的构造函数来设置x和y 创建公共函数成员printPoint以显示为格式 比如“(x,y)” 创建公共函数成员getX、setX、getY、setY以访问 数据成员x和y 创建具有一个点类型的公共函数成员getDistance 参数,返回一个表示两个的距离的浮点型值 重点 请设计一个类段来表示平面上的段 坐标 给这个类两个私有数据成员point1和point2表示 此段的端点 创建默认构造函数以将两个端点都设置为(0,0) 创建一个以两点对象作为参数的构造函数,以设置两点 终点 实现以下功能,c++,class,point,segment,C++,Class,Point,Segment,float getLength()//无参数,返回段的长度 我不知道如何做第10步、第11步和第12步。 这是我的密码。 我需要有人教我,谢谢 #include <math.h> class Point { public: Point() { x = y = 0; } Point(float x1, float y1) { x = x1; y = y1; } void setX(float

float getLength()//无参数,返回段的长度

我不知道如何做第10步、第11步和第12步。 这是我的密码。 我需要有人教我,谢谢

#include <math.h>
class Point
{
  public:
    Point()
    {
      x = y = 0;
    }
    Point(float x1, float y1)
    {
      x = x1;
      y = y1;
    }
    void setX(float X)
    {
      x = X;
    }  
    float getX() 
    {
      return x;
    } 
    void setY(float Y)
    {
      y = Y;  
    }  
    float getY() 
    {
      return y;
    }  
    void printPoint()
    {
      std::cout << "(" << x << ", " << y << ")";
    }
    float getDistance(Point p2)
    {
      return sqrt(pow(getX() - p2.getX(), 2) + pow(getY() - p2.getY(), 2));
    }
  private:
    float x;
    float y;
};
class Segment : public Point
{
  public:
    Segment()
    {
      point1 = {};
      point2 = {};
    }
    Segment(Point pt1, Point pt2)
    {
      point1 = pt1;
      point2 = pt2;
    }
    float getLength()
    {
      return sqrt(pow(point1.getX() - point2.getX(), 2) + pow(point1.getY() - point2.getY(), 2));
    }
  private:
    Point point1;
    Point point2;
};
#包括
类点
{
公众:
点()
{
x=y=0;
}
点(浮点x1,浮点y1)
{
x=x1;
y=y1;
}
无效集合X(浮动X)
{
x=x;
}  
浮点getX()
{
返回x;
} 
void setY(float Y)
{
y=y;
}  
浮球
{
返回y;
}  
void printPoint()
{

std::cout您已经实现了10、11和12

Segment()
{
  point1 = {};
  point2 = {};
}
Segment(Point pt1, Point pt2)
{
  point1 = pt1;
  point2 = pt2;
}
这是10和11的实现。我将使用构造函数初始值设定项列表进行初始化:

Segment() = default;
Segment(const Point& pt1, const Point& pt2)
    :point1(pt1), point2(pt2) 
{

}
    
12在这里实施:

float getLength()
{
  return sqrt(pow(point1.getX() - point2.getX(), 2) + pow(point1.getY() - point2.getY(), 2));
}
此函数不是常量正确的。您应该将其设置为常量。我将按如下方式编写它:

float getLength() const
{
    const float dx = point1.getX() - point2.getX();
    const float dy = point1.getY() - point2.getY();
    return sqrt(dx*dx + dy*dy);
} 

如果你通过自动检查软件获得错误,比如E评判,考虑改变浮点加倍,因为错误的答案很可能是由于缺少所要求的精度

< P>你已经实现了10, 11和12。
Segment()
{
  point1 = {};
  point2 = {};
}
Segment(Point pt1, Point pt2)
{
  point1 = pt1;
  point2 = pt2;
}
这是10和11的实现。我将使用构造函数初始值设定项列表进行初始化:

Segment() = default;
Segment(const Point& pt1, const Point& pt2)
    :point1(pt1), point2(pt2) 
{

}
    
12在这里实施:

float getLength()
{
  return sqrt(pow(point1.getX() - point2.getX(), 2) + pow(point1.getY() - point2.getY(), 2));
}
此函数不是常量正确的。您应该将其设置为常量。我将按如下方式编写它:

float getLength() const
{
    const float dx = point1.getX() - point2.getX();
    const float dy = point1.getY() - point2.getY();
    return sqrt(dx*dx + dy*dy);
} 

如果你通过自动检查软件(比如E评判)得到错误,考虑改变浮点加倍,因为错误的答案很可能是因为缺少所需的精度

为什么你不能这样做?你知道默认构造函数是什么吗?实际上看起来你已经做了10)“我不知道如何做第十、第十一和第十二步。”-但是,你已经做了,不是吗?这个代码有什么问题吗?我上传了在线判断是个错误答案。“错误答案”不足以解释你的电脑出了什么问题code@d901203你想解决什么问题?当然,一个在线法官没有测试你的类函数。你的主要功能应该做什么?正如我在回答中所说的,考虑将浮点数转换成双元,为什么你不能这么做?你知道默认构造函数是什么吗?就像你已经做了10个“我不知道如何做第10步、第11步和第12步”-但是,你已经做了,不是吗?这个代码怎么了?我上传了onlinejudge是个错误的答案。“错误的答案”不足以解释你的电脑出了什么问题code@d901203你想解决什么问题?当然,在线评判员没有测试你的班级功能。你的主要职责是什么?正如我在回答中所说的,考虑把浮动变为双打。