问题 问答题

(试题五和试题六任选一道)阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。

【说明】欲开发一个绘图软件,要求使用不同的绘图程序绘制不同的图形。以绘制直线和圆形为例,对应的绘图程序如表5-1所示。

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

C++代码如下:

答案

参考答案:

(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"。  

VIDrawing是绘图实现类之一,它采用的绘图程序由是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)"。

问答题

四、

事业篇

柳斌杰

自然造物,最美好的莫过于人的生命。然而它来去匆匆,唯其珍贵而短暂,所以在人类进步的历程中,每一代青年,在人生之舟起锚开航之际,总要探索人生永存的秘密。
把它裹进花前月下的男女柔情之中把它交给吃喝玩乐的享受把它关在金钱筑起的象牙塔里把它置于戒备森严的高楼深院古往今来,有多少风华少年,在酒色财气的迷惘中浪费了最宝贵的一生。在前人用生命所写的启示录中,有一个个惊叹号在警告后人:要谨防灵魂的蛀虫、人生的蟊贼。金钱、财产、享乐,都只能是人们生活中的奴仆,一旦让它们变成人生的主宰,那将是最大的不幸。人们不停地探索,终于找到了人生永存的保险柜,这就是伟大的事业。
事业是人生的常青之树。它植根于人民幸福的土壤中,汇合千千万万的人生,永远生气勃勃,枝繁叶茂。谁的人生与事业不分离,谁就找到了最好的归宿。生命是有限的,而人类进步的事业是永存的。把人生溶进伟大事业的人,就同事业一样永远年轻,不会消失。
事业是人生的不朽丰碑。人类的史册告诉我们:凡是留下英名的人,总是创造了永存的事业。孔子、司马迁、鲁迅之所以为千秋万代传诵,是因为他们为民族文化宝库增添了财富;屈原、岳飞、郑成功之所以载入史册,是因为他们为中 * * 留下了伟大的爱国精神;李自成、洪秀全、孙中山之所以名垂千古,是因为他们推动了历史的前进;蔡伦、祖冲之、毕昇之所以永远为人们纪念,是因为他们贡献了自己的聪明才智,在科学技术领域留下的发明创造,使后人享用不尽。谁做了对人类有益的事业,谁就树了一座人生的不朽丰碑。
和人类历史上的任何事业相比, * * 主义事业是最宏伟的,它将给人类创造彻底的、全面的、永恒的幸福。献身于 * * 主义事业的人们,英名和业绩将永远留在人民心中。我们为能赶上这样辉煌的时代而自豪。新一代青年,只要把自己的一生献给 * * 主义,那无疑就是在建造人生永存的金字塔。
时代的发展总是把我们青年置于新的起跑线上,注目那无垠的空间和广袤的大地,也许你会感到自己的渺小。是的,一个人的力量是有限的,但是伟大的事业需要汇集平凡的劳动。只要胸怀 * * 主义的伟大理想,脚踏实地为之奋斗,把人生献给你的岗位、你的工作、你的祖国,你的人生就将洋溢着永久的光彩。

说说你对下面几个短语的理解。
①人生之舟起锚开航:
②金钱筑起的象牙塔:
③人生的蟊贼:

单项选择题