软考程序员下午试题每日一练(五)

程序员 责任编辑:周烈定 2018-09-20

添加老师微信

备考咨询

加我微信

摘要:今天希赛网软考频道小编为大家准备了软考程序员下午试题每日一练(五),更多软考程序员下午试题请关注希赛网软考频道。

阅读以下说明、图和C++代码,填补C++代码中的空缺(1)~(5),将解答写在答题纸的对应栏内。
【说明】
已知对某几何图形绘制工具进行类建模的结果如图5.1所示,其中Shape为抽象类(应至少包含一个纯虚拟( virtual)函数),表示通用图形,Box表示矩形,Ellipse表示椭圆,Circle表示圆(即特殊的椭圆),Line表示线条。
8.png 

下面的C++代码用于实现图5-1所给出的设计思路,将其空缺处填充完整并编译运行,输出结果为:
  Ellipse
  Circle
  Ellipse
  C
  E
 
C++代码】

#include <string>

#include <iostream>

using namespace std;

class Shape{

public:

  Shape(const string& name){

  m_name= name;

  }

~Shape0{}

  (1)   void paintO = 0;

  stringgetNameOconst {

  retumm name;

  }

 Private;

string m_name;

};

 //Box和 Line类的定义与 Ellipse类似,其代码略

 classEllipse  (2)  {

 public:

   Ellipse(const string& name) : Shape(name){ cout<<"Ellipse" <<endl; }

voidpaintO { cout<<getNameO<<endl;}

  };

  classCircle  (3)  {

  public:

  Circle(const string& name) : Ellipse(name){ cout<<"Circl"<<endl; }

  };

  class Diagram {

public:

  void drawAShap(Shape* shape){  shape->paint0; }

  void drawShapes0 {

  shapes[0] = new Circle("C");

  shapes[l] = new Ellipse("E");

  for (int i=O;i<2; ++1)  {

drawAShap(shapes[i]);

  }

}

void close O{  /*删除形状,代码略  */ }

 private:

Shape* shapes[2];

 };

 int main( )

 {

Diagram* diagram = (4) 

diagram->drawShapes0;

diagram->close O;

  (5)  diagram;

}


点击注册会员>>>即可获取程序员免费在线真题、观看免费公开课!

真题自测:软考各科目历年真题及答案解析

更多资讯可关注希赛网软考频道,问题咨询请拨打客服电话400-111-9811

更多资料
更多课程
更多真题
温馨提示:因考试政策、内容不断变化与调整,本网站提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准!

软考备考资料免费领取

去领取