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

admin2021-02-22  45

问题 请使用VC6或使用【答题】菜单打开考生文件夹proj2下的工程proj2。其中有类Point(“点”)、Rectangle(“矩形”)和Circle(“圆”)的定义。在程序所使用的平面坐标系统中,x轴的正方向是水平向右的,y轴的正方向是竖直向下的。请在横线处填写适当的代码并删除横线,以实现上述类定义。此程序的正确输出结果应该是:
  --圆形-----------
  圆心:(3,2)
  半径=1
  面积=3.14159
  一外切矩形……
  左上角=(2,1)
  右下角=(4,3)
  面积  =4
  注意:只能在横线处填写适当的代码,不要改动程序中的其他内容,也不要删除或移动“//****found****”。
#include  
#include
using namespace std;
//平面坐标中的点
//本题坐标系统中,x轴的正方向水平向右,y轴的正方向竖直向下。
Class Point{
public:
  Point(double x=0.0,double y=0.0):x_(x),y_(y){)
  double getX()const{returnx;}
  double getY()const{returny_;}
  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 Cirole{
  public:
  Circle(Point p,double r):
center(p),radius(r){}
    Rectangle  boundingBox  (  )
const;
//外切矩形
  double area()  consL//圆形面积
  {
//*********found*********
return PI*_________;}
public:
  static const double PI;//圆周率
private:
  Point center;  //圆心
  double radius;  //半径
  };
  const double Circle::P3=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<<"圆心=("<  cout  <<"半径="  <<1  <  cout<<"面积="<  Rectangle bb=c.bounding-Box();
  Point t1=bb.topLeft();
  Point br=bb.bottomRight();
  cout<<"--外切矩形----------\n";
  cout<<"左上角=("<  cout<<"右下角=("<  cout<<"面积="<  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*adius;。
转载请注明原文地址:https://jikaoti.com/ti/Reh0FFFM
0

最新回复(0)