软件设计师案例分析当天每日一练试题地址:www.cnitpm.com/exam/ExamDayAL.aspx?t1=4
往期软件设计师每日一练试题汇总:www.cnitpm.com/class/27/e4_1.html
软件设计师案例分析每日一练试题(2024/2/16)在线测试:www.cnitpm.com/exam/ExamDayAL.aspx?t1=4&day=2024/2/16
点击查看:更多软件设计师习题与指导
软件设计师案例分析每日一练试题内容(2024/2/16)
阅读下列说明和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);}
};
信管网试题答案与解析:www.cnitpm.com/st/3813723129.html
信管网考友试题答案分享:
信管网试题答案与解析:
www.cnitpm.com/st/3813723129.html