【计算机类职业资格】中级软件设计师下午试题-122及答案解析.doc
《【计算机类职业资格】中级软件设计师下午试题-122及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】中级软件设计师下午试题-122及答案解析.doc(7页珍藏版)》请在麦多课文档分享上搜索。
1、中级软件设计师下午试题-122 及答案解析(总分:90.00,做题时间:90 分钟)一、B试题一/B(总题数:1,分数:15.00)1.现欲实现一个图像浏览系统,要求该系统能够显示 BMP、JPEG 和 GIF 三种格式的文件,并且能够在Windows 和 Linux 两种操作系统上运行。系统首先将 BMP、JPEG 和 GIF 三种格式的文件解析为像素矩阵,然后将像素矩阵显示在屏幕上。系统需具有较好的扩展性以支持新的文件格式和操作系统。为满足上述需求并减少所需生成的子类数目,采用桥接(Bridge)设计模式进行设计所得类图如图所示。 (分数:15.00)_二、B试题二/B(总题数:1,分数:
2、15.00)2.某大型商场内安装了多个简易的纸巾售卖机,自动出售 2 元钱一包的纸巾,且每次仅售出一包纸巾。纸巾售卖机的状态图如图 1 所示。图 1 纸巾售卖机状态图采用状态(State)模式来实现该纸巾售卖机,得到如图 2 所示的类图。其中类 State 为抽象类,定义了投币、退币、出纸巾等方法接口。类 SoldState、SoldOutState、NoQuarterState 和 HasQuarterState 分别对应图 1 中纸巾售卖机的 4 种状态:售出纸巾、纸巾售完、没有投币、有 2 元钱。(分数:15.00)_三、B试题三/B(总题数:1,分数:15.00)3.某咖啡店当卖咖啡时
3、,可以根据顾客的要求在其中加入各种配料,咖啡店会根据所加入的配料来计算费用。咖啡店所供应的咖啡及配料的种类和价格如表所示。 咖啡及配料的种类和价格表咖 啡 价格/杯 配 料 价格/份蒸馏咖啡(Espresso) 25 摩卡(Mocha) 10深度烘焙咖啡(DarkRoast) 20 奶泡(Whip) 8现采用装饰器(Decorator)模式来实现计算费用的功能,得到如图所示的类图。 (分数:15.00)_四、B试题四/B(总题数:1,分数:15.00)4.已知某类库开发商提供了一套类库,类库中定义了 Application 类和 Document 类,它们之间的关系如图所示。其中,Applic
4、ation 类表示应用程序自身,而 Document 类则表示应用程序打开的文档。Application 类负责打开一个已有的以外部形式存储的文档,如一个文件,一旦从该文件中读出信息后,它就由一个 Document 对象表示了。 (分数:15.00)_五、B试题五/B(总题数:1,分数:15.00)5.某大型商场内安装了多个简易的纸巾售卖机,自动出售 2 元钱一包的纸巾,且每次仅售出一包纸巾。纸巾售卖机的状态图如图 1 所示。图 1 纸巾售卖机状态图采用状态(State)模式来实现该纸巾售卖机,得到如图 2 所示的类图。其中,类 State 为抽象类,定义了投币、退币、出纸巾等方法接口。类 S
5、oldState、SoldOutState、NoQuarterState 和 HasQuarterState 分别对应图 1 中纸巾售卖机的 4 种状态:售出纸巾、纸巾售完、没有投币、有 2 元钱。(分数:15.00)_六、B试题六/B(总题数:1,分数:15.00)6.某咖啡店当卖咖啡时,可以根据顾客的要求在其中加入各种配料,咖啡店会根据所加入的配料来计算费用。咖啡店所供应的咖啡及配料的种类和价格如表所示。 咖啡及配料的种类和价格表咖啡 价格/杯 配料 价格/份蒸馏咖啡(Espresso) 25 摩卡(Mocha) 10深度烘焙咖啡(DarkRoast) 20 奶泡(Whip) 8现采用装饰
6、器(Decorator)模式来实现计算费用的功能,得到如图所示的类图。 (分数:15.00)_中级软件设计师下午试题-122 答案解析(总分:90.00,做题时间:90 分钟)一、B试题一/B(总题数:1,分数:15.00)1.现欲实现一个图像浏览系统,要求该系统能够显示 BMP、JPEG 和 GIF 三种格式的文件,并且能够在Windows 和 Linux 两种操作系统上运行。系统首先将 BMP、JPEG 和 GIF 三种格式的文件解析为像素矩阵,然后将像素矩阵显示在屏幕上。系统需具有较好的扩展性以支持新的文件格式和操作系统。为满足上述需求并减少所需生成的子类数目,采用桥接(Bridge)设
7、计模式进行设计所得类图如图所示。 (分数:15.00)_正确答案:(1)this-imp (2)ImageImp (3)imp-doPaint(m) (4)new BMP() (5)new WinImap() (6)image1-setImp(ImageImp1) (7)17)解析:解析 本题考查基本面向对象设计模式的运用能力。 由文字描述和 UML 结构图可知 BMP、GIF 与JPEG 是 Image 的子类,分别负责读取不同格式的文件。ImageImp 的主要任务是将像素矩阵显示在屏幕上,它的两个子类 WinImp、LinuxImp 分别实现 Windows 系统和 Linux 系统上的
8、图像显示代码。空(1)处主要设置在哪个平台上进行实现,由于该类的成员变量也是 imp,与参数相同,因此应填 this-imp。同理,该成员变量的类型和参数的类型应保持相同,故空(2)处应填 ImageImp。空(3)处需要根据 imp 成员变量存储的实现对象来显示图像,应填 imp-doPaint(m)。在空(4)处需要生成一个 BMP 对象,故应填 new BMP(),在空(5)处需要生成一个 WinImp 对象,故应填 new WinImp(),空(6)处应填 image1-setImp(ImageImp1),采用 Bridge(桥接模式)能够将文件分析代码和图像显示代码分解在不同的类层结
9、构中,如果不考虑Matrix 等类,那么最后需要设计的类包括 2 个父类,分别为文件格式子类和操作系统平台类,故系统需要支持 10 种格式的图像文件和 5 种操作系统至少需要 17 个类。二、B试题二/B(总题数:1,分数:15.00)2.某大型商场内安装了多个简易的纸巾售卖机,自动出售 2 元钱一包的纸巾,且每次仅售出一包纸巾。纸巾售卖机的状态图如图 1 所示。图 1 纸巾售卖机状态图采用状态(State)模式来实现该纸巾售卖机,得到如图 2 所示的类图。其中类 State 为抽象类,定义了投币、退币、出纸巾等方法接口。类 SoldState、SoldOutState、NoQuarterSt
10、ate 和 HasQuarterState 分别对应图 1 中纸巾售卖机的 4 种状态:售出纸巾、纸巾售完、没有投币、有 2 元钱。(分数:15.00)_正确答案:(1)State (2)tissueMachine-getHasQuarterState() (3)tissueMachine-getNoQuarterState() (4)tissueMachine-getNoQuarterState() (5)tissueMachine-getSoldOutState()解析:解析 本题考查基本面向对象设计模式的运用能力。 状态设计模式主要是能够使一个对象的内在状态改变时允许改变其行为,使这个对
11、象看起来像是改变了其类。由类图可知类 State 是类SoldState、SoldOutState、NoQuarterState 和 HasQuarterState 分的父类,它抽象了这 4 个类的共有属性和行为。在使用中,无论是这 4 个类中哪个类的对象,都可被当作 State 对象来使用。 根据题目的描述,可以知道一个纸巾售卖机它由 4 种状态,分别是售出纸巾、纸巾售完、没有投币、有 2 元钱。 在本题中,根据程序不难知道第(1)空是要定义 5 个对象指针,而这些对象指针都应该属于 State 类型,因此第一空答案为 State。 第(2)在类 NoQuarterState(没有投币)的
12、insertQuarter 函数中,而这个函数是投币函数,在该函数中,使用了 tissueMachine 类的 setState 方法,该方法是设置纸巾售卖机的当前状态,根据题目给出的纸巾售卖机状态图,可以知道,从没有投币状态,经过投币后,应该转换到有 2 元钱状态。setState 方法的参数是一个 State 的对象,因此第(2)空应该是一个有 2 元钱对象,这里可以新创建一个该对象,也可以通过 tissueMachine 类的 getHasQuarterState 方法来获得这样一个对象,所以第(2)空答案应该是 tissueMachine-getHasQuarterState()或 n
13、ew HasQuarterState。 第(3)在类HasQuarterState(有 2 元钱)的 ejectQuarter 函数中,而这个函数是退币函数,在该函数中,也使用了tissueMachine 类的 setState 方法,该方法是设置纸巾售卖机的当前状态,根据题目给出的纸巾售卖机状态图,可以知道,从有 2 元钱状态,经过退币后,应该转换到没有投币状态。而 setState 方法的参数是一个 State 的对象,因此第(3)空应该是一个没有投币对象,而这里我们可以新创建一个该对象,也可以通过 tissueMachine 类的 getNoQuarterState 方法来获得这样一个对
14、象,所以第(3)空答案应该是“tissueMachine-getNoQuarterState()”或“new NoQuarterState”。 同样的道理,可以知道第(4)空的答案是 tissueMachine-getNoQuarterState()或 new NoQuarterState。第(5)空的答案是tissueMachine-getSoldOutState()或 new SoldOutState。三、B试题三/B(总题数:1,分数:15.00)3.某咖啡店当卖咖啡时,可以根据顾客的要求在其中加入各种配料,咖啡店会根据所加入的配料来计算费用。咖啡店所供应的咖啡及配料的种类和价格如表所示
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 中级 软件 设计师 下午 试题 122 答案 解析 DOC
