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

admin2016-08-19  42

问题 请使用VC6或使用【答题】菜单打开考生文件夹proj2下的工程proj2。其中有类Point(“点”)、Rectangle(“矩形”)和Circle(“圆”)的定义。在程序所使用的平面坐标系统中,x轴的正方向是水平向右的,y轴的正方向是竖直向下的。请在横线处填写适当的代码并删除横线,以实现上述类定义。此程序的正确输出结果应该是:
  --圆形-----
  圆心=(3,2)
  半径=1
  面积=3.14159
  ---外切矩形-----
  左上角=(2,1)
  右下角=(4,3)
  面积  =4
  注意:只能在横线处填写适当的代码,不要改动程序中的其他内容,也不要删除或移动“//****found****”。
1  #include
2  #include
3  using namespace std;
4
5  //平面坐标中的点
6  //本题坐标系统中,x轴的正方向水平向右,y轴的正方向竖直向下。
7  ClasS Point{
8  publiC:
9   Point(double x=0.0,double y=0.0):x_(x),y_(y){)
10   double getX()const{return x;}
11   double getY()const{return y_;}
12    void setX(double x){x_=x;}
13    void setY(double y){y_=y;}
14   Private:
15   double x_;  //x坐标
16   double y_; //y坐标
17    };
18
19  //矩形
20  class Rectangle{
21    public:
22   Rectangle(Point P,int w,int h):point(P),width(w),height(h){}
23  double area()const//矩形面积
24  {
25    return width*height;
26    }
27    Point topLeft()const//左上角顶点
28    {
29    return point;
30    }
31    Point bottomRight()const
32   //右下角顶点(注:y轴正方向竖直向下)
33    {
34  //**********found**********
35   return Point(_______);
36  }
37   private:
38   Point point;//左上角顶点
39   double width;//水平边长度
40   double height;//垂直边长度
41    };
42    //圆形
43    class Circle{
44    public:
45    Circle(Point p,double r):center(p),radius(r){}
46
47    Rectangle boundingBox()const;//外切矩形
48  double area()const//圆形面积
49  {
50  //**********found**********
  return PI*_________;
51    }
52   public:
53  static const double PI;//圆周率
54   private:
55  Point center;  //圆心
56  double radius;  //半径
57    };
58    const double Circle::PI=3.14159;
59    Rectangle    Circle::boundingBox ()const
60    {
61    //**********found**********
62    Point pt(_________);
63   int w,h;
64  //**********found**********
65    W=h=_______;
66    return Rectangle(pt,w,h);
67  }
68  int main()
69  {
70   Point P(3,2);
71    Circle C(p,1);
72    cout<<"--圆形-----\n";
73    cout<<"圆心=  ("<74    cout<<"半径=“<<1<75    cout<<"面积="<76    Rectangle bb=c.boundingBox();
77  Point t1=bb.topLeft();
78   Point br=bb.bottomRiqht();
79    cout<<"-外切矩形--------\n";
80    cout<<"左上角=("<81    cout<<"右下角=("<82    cout<<"面积="<83    return 0;
84    }

选项

答案(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(cen-ter.getX()-radius,center.getY()-radius);。
    (4)由函数声明和Rectangle类的构造函数可知,w和h应该为直径,即w=h=2*radius;。
转载请注明原文地址:https://kaotiyun.com/show/44Np777K
0

最新回复(0)