问答题 请使用VC6或使用【答题】菜单打开考生文件夹pmj3下的工程文件proj3,此工程中包含一个源程序文件proj3.cpp,其中定义了用于表示平面坐标系中的点的类MyPoint和表示矩形的类MyRectangle;程序应当显示: (0,2)(2,2)(2,0)(0,0)4 但程序中有缺失部分,请按照以下提示,把缺失部分补充完整: (1)在“//**1**,****found****”的下方是构造函数的定义,它用参数提供的左上角和右下角的坐标对up_left和down_right进行初始化。 (2)在“//**2** ****found****”的下方是成员函数getDownLeft的定义中的一条语句。函数getDownLeft返回用MyPoint对象表示的矩形的左下角。 (3)在“//**3** ****found****”的下方是成员函数area的定义,它返回矩形的面积。 注意:只在指定位置编写适当代码,不要改动程序中的其他内容,也不要删除或移动“****found****”。//proj3.cpp#include<iostream>using namespace std;class MyPoint{//表示平面坐标系中的点的类 double x; double Y;public: MyPoint(double x,double y){this->x=x;this->Y=Yj) double getX()const{return x;} double getY()const{return Y;} void show()const{cout<<’(’<<x<<’,’<<y<<’)’;}};class MyRectangle{ //表示矩形的类 MyPoint up_left; //矩形的左上角顶点 MyPoint down_right;//矩形的右下角顶点public:MyRectangle (MyPoint upleft, My-Point downright); MyPoint getUpLeft()const{return up_left;) //返回左上角坐标 MyPo int getDownRight()cons t{ return down right;) //返回右下角坐标 MyPoint getUpRight()Const;//返回右上角坐标 MyPoint getDownLeft()const;//返回左下角坐标 double area()const;//返回矩形的面积 }; //**1** **********found********** MyRectangle::MyRectangle(__________): up_left(p1),down_right(p2){)MyPoint MyRectangle:: getUpRight()const{ return MyPoint(down_right.getX(),up_left.getY());}MyPoint MyRectangle:: getDOwnLeft()const{ //**2** **********found********** return MyPoint(________);}//**3** ********found*********________area()const{ return(getUpLeft().getX()一get- DownRight().getX())* (getDownRight ().getY()一getUpLeft().getY()); } int main() { MyRectangle r(MyPoint(0,2),MyPoint (2,0)); r.getUpLeft().show(); r.getUpRight().show(); r.getDownRight().show(); r.getDownLeft().show(); couut<<r.area()<<endl; return 0; }
【正确答案】正确答案:(1)MyPoint p1,MyPoint p2 (2)up_left.getX(),down_right.getY() (3)double MyRectangle::
【答案解析】解析:(1)考查构造函数,构造函数中的参数要给私有成员赋值,在下句中up_left(p1),down_right(p2){}指出私有成员赋值要使用形参p1和p2,因此这里参数要定义为MyPointp1,MyPoint p2。 (2)主要考查成员函数的返回语句,MyPoint My Rectangle::getDownl.dt()const函数要求返回一个左下角的点坐标,因此使用语句MyPoint(up_left.gax(),down_right.getY());。 (3)主要考查成员函数的定义,在MyRectangle类中已经声明double area()const,因此此处只要添加double MyRect-angle::即可。