信管网试题内容
信管网 导航

试卷名称:2013年下半年软件设计师考试下午真题试题(案例分析)

考试年份:2013年下半年

试题来源:《2013年下半年软件设计师考试下午真题试题(案例分析)》在线考试

试题内容

阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。
【说明】
欲开发一个绘图软件,要求使用不同的绘图程序绘制不同的图形。以绘制直线和圆形为例,对应的绘图程序如表5-1所示。

该绘图软件的扩展性要求,将不断扩充新的图形和新的绘图程序。为了避免出现类爆炸的情况,现采用桥接(Bridge)模式来实现上述要求,得到如图5-1所示的类图。

图5-1 类图
【C++代码】
class  DP1{
public:
static void draw_a_line(double  x1,double  y1,double  x2,double  y2){/*代码省略*/}
static void draw_a_circle(double  x,double  y,double  r){ /*代码省略*/}
};
class  DP2{
public:
static void drawline(double x1,double x2,double y1,double y2){/*代码省略*/}
static void drawcircle(double x,double y,double r){/*代码省略*/}
};
class  Drawing{
public:
(1)    ;
(2)    ;
};
class V1Drawing:public Drawing{
public:
void drawLine(double  x1,double  y1,double  x2,  double  y2){/*代码省略*/}
void drawCircle(double  x, double  y, double  r){    (3)    ;}
};

class V2Drawing:public  Drawing{
public:
void drawLine(double  x1,double  y1,double  x2,  double  y2){/*代码省略*/}
void drawCircle(double  x, double   y, double  r){    (4)    ;}
};
class   Shape{
public:
(5)   ;
Shape(Drawing  * dp){ _dp = dp;}
void drawLine(double  x1, double  y1,double  x2, double y2){_dp->drawLine(x1,y1,x2,y2);}
void drawCircle(double  x, double  y, double   r){_dp->drawCircle(x,y,r);}
private:  Drawing * _dp;
};
class  Rectangle:public  Shape{
public:
void draw(){/*代码省略*/}
//其余代码省略
};
class Circle:public Shape{
private:  double _x,_y,_r;
public:
Circle(Drawing  * dp, double   x, double  y, double   r):    (6)    {_x = x; _y = y; _r = r;}
void draw(){ drawCircle(_x, _y, _r);}
};
参考答案:暂时没有答案(仅供参考) 收藏

【解析】

普通会员无法查看试题解析。[开通试题解析服务]