早教吧 育儿知识 作业答案 考试题库 百科 知识分享
早教吧考试题库频道 --> 计算机类考试 -->软考中级 -->

阅读下列程序说明和C++代码,将应填入(n)处。【说明】 ①在类体中添加函数move(double ax,double ay)

题目

阅读下列程序说明和C++代码,将应填入(n)处。

【说明】

①在类体中添加函数move(double ax,double ay)的定义,使得点的坐标x和y分别移动 ax和ay个单位。

②在类定义外完成重载的两个构造函数CPosition()和CPosition(double dx,double dy),其中前者为不带参数的构造函数,使CPosition对象的默认值为x=0,y=0,后者为带参数的构造函数,把数据成员x和y分别初始化为参数dx和dy的值。

③完成函数double distance(double bx,double by)的定义,该函数返回*this和点(bx, by)的距离。

注意:除在指定的位置添加语句外,请不要改动程序中的其他语句。

源程序文件test5.cpp清单如下:

include<iostream.h>

include<math.h>

class CPosition

{

public:

CPosition();

CPosition(double dx,double dy);

double getx();

double gety();

(1)

double distance(double bx,double by);

private:

double x;

double y;

};

(2)

{

x=0;y=0;

}

CPosition::CPosition(doub,e dx,doub,e dy)

{

x=dx; y=dy;

}

double CPosition::getx()

{

return x;

}

double CPosition::gety()

{

return y;

}

double CPosition::distance(double bx,double by)

{

(3)

}

vold main()

{

double a,b;

cout<<"|nput x,y position of a point:";

cin >> a >> b;

CPosition psA(a,b);

cout<<"Input x,y position of another point:";

cin >>a >> b;

cout <<"The distance is" <<psA.distance(a,b) <<end1;

}

参考答案
正确答案:(1)void move(double axdouble ay){x+=ax;y+ =ay;}; (2)CPosition::CPosition()(3)return sqrt(pow(x-bx 2)+pow(y-by2));
(1)void move(double ax,double ay){x+=ax;y+ =ay;}; (2)CPosition::CPosition()(3)return sqrt(pow(x-bx, 2)+pow(y-by,2)); 解析:本题主要考查考生对于类的定义和重载构造函数的掌握情况。在(3)中使用了基本的数学函数sqrt(x)求x的开方,pow(x,n)函数是求x的n次方。