首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
(2013年下半年下午试题五)阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 欲开发一个绘图软件,要求使用不同的绘图程序绘制不同的图形。以绘制直线和圆形为例,对应的绘图程序如表10.4所示。 根据绘图软件
(2013年下半年下午试题五)阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 欲开发一个绘图软件,要求使用不同的绘图程序绘制不同的图形。以绘制直线和圆形为例,对应的绘图程序如表10.4所示。 根据绘图软件
admin
2018-07-27
61
问题
(2013年下半年下午试题五)阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。
【说明】
欲开发一个绘图软件,要求使用不同的绘图程序绘制不同的图形。以绘制直线和圆形为例,对应的绘图程序如表10.4所示。
根据绘图软件的扩展性要求,该绘图软件将不断扩充新的图形和新的绘图程序。为了避免出现类爆炸的情况,现采用桥接(Bridge)模式来实现上述要求,得到如图10.15所示的类图。
【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)l
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);}
};
选项
答案
(1)virtual void drawLine(double x1,double y1,double x2,double y2) (2)virtual void drawCircle(double x,double y,double r) (3)DP1.draw_a circle(x,y,z) (4)DP2.drawcircle(x,y,z) (5)virtual void draw()(6)Shape(dp)
解析
本题考查桥接模式的概念及应用。桥接模式将抽象与其实现解耦,使它们都可以独立地变化。也就是说,将一组实现与另一组使用它们的对象分离。这里的实现指的是抽象类及其派生类用来实现自己的对象(而不是抽象类的派生类,这些派生类被称为具体类)。
本题中,Drawing是一个虚拟基类,里面包含了希望不同策略实现的算法。派生类V1Drawing、V2Drawing都派生自Drawing,对基类中希望实现的算法都做了具体实现,且它们都含有drawLine和drawCircle函数,所以Drawing类中缺失的应该是这两个算法,于是空(1)处应填入virtual void drawLine(double x1,double y1,double x2,double y2,空(2)处应填入virtual void draw Circle(double x,double y.double r)。DP1和DP2中包含了绘制Line和Circle的具体实现的static方法,因此在V1Drawing、V2Drawing类中可以直接进行调用,所以空(3)处应填入DP1.draw a circle(x,y,z),空(4)处应填入DP2.drawcircle(x,y,z)。Shape类派生出Rectangle和Circle类,里面都含有draw方法,但是具体draw方法的实现却不相同,所以空(5)处应填入virtual void draw()。最后Circle的构造函数初始化了后四个变量,还有继承自Shape的变量*dp未做初始化,因此调用Shape的构造函数做初始化,即空(6)处应填入shape(dp)。
转载请注明原文地址:https://kaotiyun.com/show/mzxZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
阅读以下说明,回答问题1、问题2、问题3、问题4和问题5,将解答填入对应栏内。[说明]以太网宽带接入方式是目前许多居民小区所普遍采用的,其方式为所有用户都通过一条主干线接入Internet,每个用户均配备个人的私有IP地址,用户只需将小区
请指出现有虚拟局域网络的4种划分方式。以下为Cisco以太网交换机Catalyst2924(ws-c2924xlA,拥有24个10/100Mbit/s自适应端口)的VLAN划分命令,请解释(1)~(3)处的标有下划线部分配置命令的含义。(“//”后为
阅读以下有关网络设计的叙述,分析网络结构,回答问题1、问题2和问题3。某企业从20世纪50年代中期开始使用PC,历经3+网络、NOVELL网络的应用,后着手组建企业网络。经过需求分析和论证,设计出网络方案如图3-2所示。
如何根据网络流量选择联网设备,给出所选设备的作用。在我国,目前可供选择大的用户选择的接入方式有哪些,各自的接入速率为多少?
如何根据网络流量选择联网设备,给出所选设备的作用。如何规划防火墙,将内部业务服务器和部分PC机与Internet隔离?
阅读以下关于RIP动态路由配置的技术说明,结合网络拓扑图回答问题1至问题3。[说明]某大学城局域网的网络拓扑结构如图7-18所示,图中路由器R1、R2,R3均运行基于距离矢量算法的RIP路由协议,并且图中给出了路由器R1、R2、R3各端口的IP地
由于面向3G移动电话的电子商务网站看不到用户进行销售服务,因此,对用户身份进行认证是必要。通常,在Internet中进行电子签名的认证过程如下:①文件的发送者将要发送的文件生成(1);②用发送者的(2)对摘要加密后,将其添加到文件中;
Samba的工作原理是:让(1)和NetBIOS这两种协议运行于TCP/IP通信协议之上,且通过Windows的(2)协议让用户的Linux计算机可以在Windows的网络邻居上被看到。Samba服务器配置工具是用来管理Samba共享、用户及基本服
随机试题
下列何经循行到达巅顶
简述我国的股权分置结构。
两种摩尔质量不同的理想气体,它们的压强、温度相同,体积不同,则它们的()。
设直线l:平面π为4x一2y+z一2=0,则()。
1.党的十九大报告提出,加强思想道德建设。人民有信仰,国家有力量,民族有希望。要提高人民思想觉悟、道德水准、文明素养,提高全社会文明程度。广泛开展理想信念教育,深化中国特色社会主义和中国梦宣传教育,弘扬民族精神和时代精神,加强爱国主义、集体主义、社会主义教
抗日战争相持阶段,蒋介石集团投降反共倾向增长,但又不放弃抗日、不与共产党彻底分裂。造成这种态度的因素包括()。(1)日本对国民党的诱降政策(2)敌后抗日根据地的壮大(3)美英与日本在亚太地区的矛盾(4)中共坚
在家电产品“三下乡”活动中,某销售公司的产品受到了农村居民的广泛欢迎。该公司总经理在介绍经验时表示:只有用最流行畅销的明星产品面对农村居民,才能获得他们的青睐。以下哪项如果为真,最能质疑总经理的论述?
宪法的产生除具备经济因素外,还需具有()。
Theministerdeliveredhisfarewelladdressinanappealingandhumorous______.
对关系S和关系R进行集合运算,结果中既包含关系S中的所有元组也包含关系R中的所有元组,这样的集合运算称为()。
最新回复
(
0
)