请使用VC6或使用【答题】菜单打开考生文件夹proj2下的工程proj2。其中有类Point(“点”)、Rectangle(“矩形”)和Circle(“圆”)的定义。在程序所使用的平面坐标系统中,x轴的正方向是水平向右的,y轴的正方向是竖直向下的。 请在横

admin2015-06-27  44

问题 请使用VC6或使用【答题】菜单打开考生文件夹proj2下的工程proj2。其中有类Point(“点”)、Rectangle(“矩形”)和Circle(“圆”)的定义。在程序所使用的平面坐标系统中,x轴的正方向是水平向右的,y轴的正方向是竖直向下的。
请在横线处填写适当的代码并删除横线,以实现上述类定义。此程序的正确输出结果应该是:
--圆形----------
圆心=(3,2)
半径=1
面积:3.14159
--外切矩形------
左上角:(2,1)
右下角:(4,3)
面积=4
注意:只能在横线处填写适当的代码,不要改动程序中的其他内容,也不要删除或移动“//****found*****”。
#include<10StEeam>
#include
usingnamespacestd;
//平面坐标中的点
//本题坐标系统中,x轴的正方向水平向右,y轴的正方向竖直向下。
ClassPoint:{
public:
Point(doublex=0.0,doubley=0.0):x_(x),y_(y){}
doublegetX()const{returnx_;}
doublegetY()const{returny_;}
voidsetX(doublex){x_=x;)
voidsetY(doubley){y_=y;)
private:
doublex;//x坐标
doubley;//y坚标
};
//矩形
classRectangle{
public:
Rectangle(PointP,intW,inth)
:point(P),width(W),height(h)
{}
doublearea()const//矩形面积
{
returnwidth*height;
}
PointtopLeft()const//左上角顶点
{
returnpoint;
}
PointbottomRight()const
//右下角顶点(注:Y轴正方向竖直向下)
{
//**********found***********
returnPoint(________);
}
private:
Pointpoint;//左上角顶点
doublewidth;//水平边长度
doubleheight;//垂直边长度
};
//圆形
clasSCircle{
public:
Circle(PointP,doubler):center
(p),radius(r){}
RectangleboundingBox()const;
//外切矩形
doublearea()const//圆形面积
{
//**********found**********
returnPI*________;
}
public:
staticconstdoublePI;//圆周率
private:
Pointcenter;//圆心
doubleradius;//半径
};
constdoubleCircle::PI=3.14159;
RectangleCircle::boundingBox
()const
{
//**********found**********
Pointpt(________);
intw,h;
//**********found**********
W=h=________;
returnRectangle(pt,W,h);
}
intmain()
{
PointP(3,2);
CircleC(p,1);
cout<<”--圆形-------------\n”;
cout<<"圆心=("<’,’<cout<<"半径="<<1<cout<<"面积="<end1<Rectanglebb=C.boundingBox();
Pointtl=bb.topLeft();
Pointbr=bb.bottomRight();
cout<<"--外切矩形-----------\n”;
cout<<"左上角=("<<<’,’<cout<<"右下角=(”<<<’,’<cout<<"面积="<end1;
return0;
}

选项

答案(1)point.getX()+width,point.getY()+height (2)radius*radius (3)center.getX()一radius,center.getY()一radius (4)2*radius

解析 (1)主要考查考生对成员函数的掌握,程序要求返回右下角顶点,该点的x坐标为左上角顶点的x坐标加上width,该点的y坐标为左上角顶点y坐标加上height,即returnPoint(point.getX()+width,point.getY()+height);。
(2)主要考查考生对成员函数的掌握,程序要求计算圆形面积,也就是返回圆面积,即retumPI*radius*radius;。
(3)主要考查考生对成员函数的掌握,首先看函数声明:RectangleCircle::boundingBox()const,可知该函数要返回的是一个Rectangle类型,即要返回的是圆的外切矩形。再看Rectangle类的构造函数Rectangle(Pointp,intw,inth),由此可知,空格处要定义的点pt为左上角点,即Pointpt(center.getX()一radius,center.getY()一radius);。
(4)由函数声明和Rectangle类的构造函数可知,w和h应该为直径,即w=h=2*radius;。
转载请注明原文地址:https://jikaoti.com/ti/wXXiFFFM
0

最新回复(0)