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

admin2017-02-21  38

问题 请使用VC6或使用【答题】菜单打开考生文件夹proj2下的工程proj2。其中有类Point(“点”)、Rectangle(“矩形”)和Circle(“圆”)的定义。在程序所使用的平面坐标系统中,χ轴的正方向是水平向右的,y轴的正方向是竖直向下的。请在横线处填写适当的代码并删除横线,以实现上述类定义。此程序的正确输出结果应该是:
    一一圆形————
    圆心=(3,2)
    半径=1
    面积=3.14159
    ——外切矩形————
    左上角=(2,1)
    右下角=(4,3)
    面积  =4
    注意:只能在横线处填写适当的代码,不要改动程序中的其他内容,也不要删除或移动“//****found****”。
#include<instream<
#include<cmath<
uslrig namespace 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  boundingB0x  (  )
  const;
  //外切矩形
  double aEea()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<<"——圆形————-\n";
  cout<<"圆心=("<<p.getX()  <<’,’<<P.getY()  <<")\n";
  cout<<"半径="  <<1 <<
end1;
  cout<<"面积="<<c.area()<<end1<<end1;
  Rectangle bb=c.boundingBox();
  Point t1=bb.topLeft();
  Point br=bb.bottomRight();
  cout<<"——外切矩形————-\n";
  cout<<"左上角=("<<t1.getX
()<<’,’<<t1.getY()<<")\n";
  cout<<"右下角=("<<br.
getX()  <<’,’<<br.getY()  <<")\n";
  cout<<"面积="<<bb.area()
<<end1;
  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://jikaoti.com/ti/cXt0FFFM
0

最新回复(0)