軟件設計師案例分析當天每日一練試題地址:m.xiexiliangjiufa.com/exam/ExamDayAL.aspx?t1=4
往期軟件設計師每日一練試題匯總:m.xiexiliangjiufa.com/class/27/e4_1.html
軟件設計師案例分析每日一練試題(2021/9/23)在線測試:m.xiexiliangjiufa.com/exam/ExamDayAL.aspx?t1=4&day=2021/9/23
點擊查看:更多軟件設計師習題與指導
軟件設計師案例分析每日一練試題內容(2021/9/23)
閱讀下列說明和C++代碼,將應填入(n)處的字句寫在答題紙的對應欄內。
【說明】
欲開發(fā)一個繪圖軟件,要求使用不同的繪圖程序繪制不同的圖形。以繪制直線和圓形為例,對應的繪圖程序如表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);}
};
信管網試題答案與解析:m.xiexiliangjiufa.com/st/3813723129.html
信管網考友試題答案分享:
信管網試題答案與解析:
m.xiexiliangjiufa.com/st/3813723129.html