首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 欲开发一个绘图软件,要求使用不同的绘图程序绘制不同的图形。以绘制直线和圆形为例,对应的绘图程序如表5-1所示。 该绘图软件的扩展性要求,将不断扩充新的图形和
阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 欲开发一个绘图软件,要求使用不同的绘图程序绘制不同的图形。以绘制直线和圆形为例,对应的绘图程序如表5-1所示。 该绘图软件的扩展性要求,将不断扩充新的图形和
admin
2014-05-07
67
问题
阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。
【说明】
欲开发一个绘图软件,要求使用不同的绘图程序绘制不同的图形。以绘制直线和圆形为例,对应的绘图程序如表5-1所示。
该绘图软件的扩展性要求,将不断扩充新的图形和新的绘图程序。为了避免出现类爆炸的情况,现采用桥接(Bridge)模式来实现上述要求,得到如图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 xl,double x2,double y1,double y2){/*
代码省略*/ )
static void drawcircle(double X,double y,double r){ /*代码省略*/ }
};
class Drawing{
public:
(1) ;
(2) ;
};
class ViDrawing:public Drawing{
pblic:
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 xl,double yl,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(xl,y1,x2,y2); }
void drawCircle(double X,double y,double r){_dp->drawCircle(x,y,
r);}
private:Drawing*_dp;
};
clasS Rectangle:publlC 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);}
};
选项
答案
(1)virtual void drawLine(double x1,double y1,double x2,double y2)=0 (2)virtual void drawCircle(double x,double y,double r)=0 (3)DP1::draw_a_circle(x,y,r) (4)DP2::drawcircle(x,y,r) (5)virtual void draw()=0 (6)Shape(dp)
解析
本题考查桥接(Bridge)模式的概念及应用。
Bridge模式可以将复杂的组件分成两个独立的、但又相关的继承层次结构:功能性的抽象和内部实现。改变组件的这两个层次结构很简单,以至于它们可以相互独立地变化。当具有抽象的层次结构和相应的实现层次结构时,Bridge模式是非常有用的。除了可以将抽象和实现组合成许多不同的类,该模式还可以动态组合的独立类的形式实现这些抽象和实现。
下图所示是Bridge模式的类图。
在以下情况中,应该使用Bridge模式:
想避免在抽象及其实现之间存在永久的绑定:
抽象及其实现可以使用子类进行扩展;
抽象的实现被改动应该对客户端没有影响,也就是说,不需要重新编译代码。
本题中,类Shape对应上图中的Abstraction,表示抽象部分;类Drawing对应Implementor,表示实现部分。这两个类的子类分别表示具体的抽象部分和实现部分。在 C++中,Drawing可以用抽象类来实现,将其中的方法定义为纯虚拟函数。因此(1)、(2)分别应为“virtual void drawLine(double x1,double y1,double x2,double y2)=0”、“virtual void drawCircle(double x,double y’double r)=0”。
V1Drawing是绘图实现类之一,它采用的绘图程序由是DP1所提供的。DP1中的方 法均为静态方法,必须用类名来引用。因此(3)处应为DP1::draw _a _circle(x,y,r)。同 理(4)处应为“DP2::drawcircle(x,y,r)”。
由类图可以看出,Shape类中定义的方法draw在其子类中被重置了,而Shape表示 的是抽象部分,可以将draw方法定义为纯虚拟函数。所以,(5)应该为“virtual void draw()=0”。
空(6)处考查继承结构中子类构造函数的定义。构造子类对象时,需要调用基类 的构造函数,这可以通过初始化列表显式指明需要调用的基类的构造函数。在本题中, Shape类只定义了一个构造函数,因此(6)应该为“Shape(dp)”。
转载请注明原文地址:https://kaotiyun.com/show/riDZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
内存采用段式存储管理有许多优点,但“(6)”不是其优点。
下图是________________设计模式的类图,该设计模式的目的是________________,图中,Decorator和Component之间是________________关系,ConcreteDecorator和Decorator之间是_
在软件开发过程中,常采用图形表示相关的信息,(28)不用于表示软件模块的执行过程。
错误管理的流程可以概括为:测试人员提交新的错误入库,错误状态为1,高级测试人员验证错误,如果确认是错误,分配给相应的开发人员,设置状态为2,如果不是错误,则拒绝,设置为“拒绝”状态:开发人员查询状态为3的错误,做如下处理:如果不是错误,则置状态为“拒绝”,
标准符合性测试是软件测试的工作之,这里的标准不包括_______。
以下关于数据流图的基本要素的叙述中,不正确的是_______。
数据库是按照一定的数据模型组织、存储和应用的______的集合。
某个不确定有限自动机(s0为初态,s3为终态)如下图所示,_______是该自动机可识别的字符串(即从初态到终态的路径中,所有边上标记的字符构成的序列)。
编译和解释是实现高级程序设计语言的两种基本方式,________是这两种方式的主要区别。
在由L2TP构建的VPN中,主要由①和②两种类型的服务器构成。1.将图5-1中①和②处空缺名称填写在答题纸的相应位置。2.简要说明两种服务器的主要作用。某路由器(在图5-1中没有标出)的部分配置信息如下所示,请解释其中标有下划线部分的含
随机试题
伤寒病早期诊治的关键是
硅酸盐水泥的特点包括( )。
背景资料:某施工单位承建某铁路客运专线双线隧道。隧道长度为2600m,起止里程为DK38+000~DK40+600。进、出口段浅埋,围岩为风化泥灰岩,岩体破碎,节理发育,裂隙水丰富,级别为Ⅴ级;洞身DK39+100~DK39+500段围岩级别为
战略性人力资源管理没有将组织的注意力集中于()。
甲公司与2011年1月1日用一项土地使用权换人W公司持有乙公司60%的股权,并能够对应公司实施控制。该土地使用权的账面价值为2000万元,公允价值为9000万元。同日,乙公司可辨认将资产公允价值总额为14000万元,账面价值为135000万元,除一
外商投资企业申请经营旅行社业务,应当持相关证明文件向()提出申请。
小张、小王二人同时从甲地出发,驾车匀速在甲乙两地之间往返行驶。小张的车速比小王快,两人出发后第一次和第二次相遇都在同一地点,那么小张的车速是小王的__________倍。
[*]
Thetranslatormusthaveanexcellent,up-to-dateknowledgeofhis【B1】______languages,flailfacilityinthehandlingofhist
请根据以下各小题的要求设计VisualBasic应刚程序(包括界面和代码)。(1)在名称为Forml、标题为“图片”的窗体上画一个名称为Imagel的图像框,其高为2500、宽为2000。请通过属性窗口设置适当属性,装入考生只录下的图片文件pi
最新回复
(
0
)