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

admin2021-09-05  34

问题 请使用VC6或使用【答题】菜单打开考生文件夹pmj2下的工程pmj2。其中有类Point(“点”)、lteetangle(“矩形”)和Circle(“圆”)的定义。在程序所使用的平面坐标系统中,x轴的正方向是水平向右的,y轴的正方向是竖直向下的。请在横线处填写适当的代码并删除横线,以实现上述类定义。此程序的正确输出结果应该是:
  一一圆形一一一一
  圆心=(3,2)
  半径=1
  面积=3.14159
  一一外切矩形一一
  左上角=(2,1)
  右下角=(4,3)
  面积  =4
  注意:只能在横线处填写适当的代码,不要改动程序中的其他内容,也不要删除或移动“//****found*****”。
#include
#include
using namespaoe std;
//平面坐标中的点
//本题坐标系统中,x轴的正方向水平向右,y
轴的正方向竖直向下。
class Point:{
public:
  Point(double X=0.0,double y=0.0):x一(x),y一(y){)
  double getX()const{return x_;)
  double getY()const{return y_;)
  void setX(double x){x_=x;)
  void setY(double y){y_=y;)
private:
  double x_;  //x坐标
  double y_;//y坐标
};
//矩形
class Rectangle{
public:
  Rectangle(Point P,int w,int h)
    :point(p),width(w),height(h)
  {}
  double area()const//矩形面积
  {
    return width*height;
    }
    Point topLeft()const//左上角顶点
    {
    return point;
      }
  Point bottomRight()const
//右下角顶点(注:Y轴正方向竖直向下)
    {
  //**********found**********
return Point(______);
}
private:
  Point point;//左上角顶点
  double width;//水平边长度
  double height;//垂直边长度
    };
    //圆形
    class Circle{
    public:
  Circle(Point P,double r):center
(p),radius(r){)
    Rectangle.boundingBox()const;
//外切矩形
  double area()const//圆形面积
  {  
  //**********found**********
  return PI*______;
    }
public:
  static const double PI;//圆周率
private:
  Point center;  //圆心
  double radius;  //半径
    };
    const double Circle::PI=3.14159;
    Rectangle    Circle::    boundingBOx
    ()const
    {
    //**********found**********
Point pt(_________);
int w,h;
  //**********found**********
  W=h=______;
  return Rectangle(pt,W,h);
    }
    int main()
    {
  Point P(3,2);
  Circle c(p,1);
  cout<<”一一圆形一一一一一\nn;
  cout<<”圆心=(”<‘,’<    cout<<”半径=”<<1<    cout<<"面积="<endl<    Rectangle bb=C.boundingBox();
    Point t1=bb.topLeft();
    Point br=bb.bottomRight();
    cout<<”一一外切矩形一一一一一\n”;
    cout<<”左上角=(”<  <<’,’<    cout<<”右下角=(”<  <<’,’<    cout<<”面积=”<endl;
  return 0;
    }

选项

答案(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,即return Point(point.getX()+width,point.getY()+height);。
    (2)主要考查考生对成员函数的掌握,程序要求计算圆形面积,也就是返回圆面积,即return PI*radius*radius;。
    (3)主要考查考生对成员函数的掌握,首先看函数声明:Rectangle Circle::boundingBox()const,可知该函数要返回的是一个Rectangle类型,即要返回的是圆的外切矩形。再看Rectangle类的构造函数Rectangle(Point P,int W,int h),由此可知,空格处要定义的点pt为左上角点,即Point pt(center.getX()一radius,center.getY()一radius);。
    (4)由函数声明和Rectangle类的构造函数可知,W和h应该为直径,即W=h=2*radius;。
转载请注明原文地址:https://kaotiyun.com/show/D7fp777K
0

最新回复(0)