1、软件设计师-面向对象程序设计(二)及答案解析(总分:150.95,做题时间:90 分钟)阅读下列说明和 Java 代码,将应填入 (n) 处的字句写在对应栏内。说明某游戏公司现欲开发一款面向儿童的模游戏,该游戏主要模拟现实世界中各种鸭子的发声特征、飞行特征和外观特征。游戏需要模拟的鸭子种类及其特征如表 18-5 所示。表 18-5 鸭子各类及其特征鸭子种类 发声特征 飞行特征 外现特征灰鸭(MallaIdDuck)发出“嘎嘎”声(Quack)用翅膀飞行(FlyWithWings) 灰色羽毛红头鸭(RedHeadDuck)发出“嘎嘎”声(Quack)用翅膀飞行(FlyWithWings)灰色羽毛
2、、头部红色棉花鸭(CottonDuck) 不发声(QuackNoWay) 不能飞行(FlyNoWay) 白色橡皮鸭(RubberDuck)发出橡皮与空气摩擦声(Squeak) 不能飞行(FlyNoWay)黑色橡皮颜色为支持将来能够模拟更多种类鸭子的特征,采用策略设计模式(Strategy)设计的类图如图 18-8 所示。(分数:15.03)填空项 1:_填空项 1:_填空项 1:_填空项 1:_填空项 1:_填空项 1:_填空项 1:_填空项 1:_填空项 1:_阅读下列说明和 C+代码,将应填入 (n) 处的字句写在对应栏内。说明已知某企业的采购审批是分级进行的,即根据采购金额的不同由不同层
3、次的主管人员来审批,主任可以审批 5 万元以下(不包括 5 万元)的采购单,副董事长可以审批 5 万元至 10 万元(不包括 10 万元)的采购单,董事长可以审批 10 万元至 50 万元(不包括 50 万元)的采购单,50 万元及以上的采购单就需要开会讨论决定。采用责任链设计模式(Chain of Responsibility)对上述过程进行设计后得到的类图如图 18-9 所示。(分数:14.98)填空项 1:_填空项 1:_填空项 1:_填空项 1:_填空项 1:_填空项 1:_填空项 1:_阅读下列说明和 Java 代码,将应填入 (n) 处的字句写在对应栏内。说明已知某企业的采购审批是
4、分级进行的,即根据采购金额的不同由不同层次的主管人员来审批,主任可以审批 5 万元以下(不包括 5 万元)的采购单,副董事长可以审批 5 万元至 10 万元(不包括 10 万元)的采购单,董事长可以审批 10 万元至 50 万元(不包括 50 万元)的采购单,50 万元及以上的采购单就需要开会讨论决定。采用责任链设计模式(Chain of Responsibility)对上述过程进行设计后得到的类图如图 18-10 所示。(分数:14.98)填空项 1:_填空项 1:_填空项 1:_填空项 1:_填空项 1:_填空项 1:_填空项 1:_阅读下列说明和 C+代码,将应填入 (n) 处的字句写在
5、对应栏内。说明已知某企业欲开发一个家用电器遥控系统,即用户使用一个遥控器即可控制某些家用电器的开与关。遥控器如图 18-11 所示。该遥控器共有 4 个按钮,编号分别是 03,按钮 0 和 2 能够遥控打开电器 1 和电器2,按钮 1 和 3 则能遥控关闭电器 1 和电器 2。由于遥控系统需要支持形式多样的电器,因此,该系统的设计要求具有较高的扩展性。现假设需要控制客厅电视和卧室电灯,对该遥控系统进行设计所得类图如图18-12 所示。(分数:14.98)填空项 1:_填空项 1:_填空项 1:_填空项 1:_填空项 1:_填空项 1:_填空项 1:_阅读下列说明和 Java 代码,将应填入 (
6、n) 处的字句写在对应栏内。说明已知某企业欲开发一个家用电器遥控系统,即用户使用一个遥控器即可控制某些家用电器的开与关。遥控器如图 18-13 所示。该遥控器共有 4 个按钮,编号分别是 03,按钮 0 和 2 能够遥控打开电器 1 和电器2,按钮 1 和 3 则能遥控关闭电器 1 和电器 2。由于遥控系统需要支持形式多样的电器,因此,该系统的设计要求具有较高的扩展性。现假设需要控制客厅电视和卧室电灯,对该遥控系统进行设计所得类图如图18-14 所示。(分数:14.98)填空项 1:_填空项 1:_填空项 1:_填空项 1:_填空项 1:_填空项 1:_填空项 1:_阅读下列说明和 C+代码,
7、将应填入 (n) 处的字句写在对应栏内。说明已知某类库开发商提供了一套类库,类库中定义了 Application 类和 Document 类,它们之间的关系如图18-15 所示,其中,Application 类表示应用程序自身,而 Document 类则表示应用程序打开的文档。Application 类负责打开一个已有的以外部形式存储的文档,比如一个文件,一旦从该文件中读出信息后,它就由一个 Document 对象表示。(分数:16.00)填空项 1:_填空项 1:_填空项 1:_填空项 1:_填空项 1:_填空项 1:_填空项 1:_填空项 1:_阅读下列说明和 Java 代码,将应填入 (
8、n) 处的字句写在对应栏内。说明已知某类库开发商提供了一套类库,类库中定义了 Application 类和 Document 类,它们之间的关系如图18-16 所示,其中,Application 类表示应用程序自身,而 Document 类则表示应用程序打开的文档。Application 类负责打开一个已有的以外部形式存储的文档,比如一个文件,一旦从该文件中读出信息后,它就由一个 Document 对象表示。(分数:15.04)填空项 1:_填空项 1:_填空项 1:_填空项 1:_填空项 1:_填空项 1:_填空项 1:_填空项 1:_阅读下列说明和 C+代码,将应填入 (n) 处的字句写在
9、对应栏内。说明现欲实现一个图像浏览系统,要求该系统能够显示 BMP、JPEG 和 GIF 三种格式的文件,并且能够在Windows 和 Linux 两种操作系统上运行。系统首先将 BMP、JPEG 和 GIF 三种格式的文件解析为像素矩阵,然后将像素矩阵显示在屏幕上。系统需具有较好的扩展性,以支持新的文件格式和操作系统。为满足上述需求并减少所需生成的子类数目,采用桥接(Bridge)设计模式进行设计所得类图如图 18-17 所示。(分数:14.98)填空项 1:_填空项 1:_填空项 1:_填空项 1:_填空项 1:_填空项 1:_填空项 1:_阅读下列说明和 Java 代码,将应填入 (n)
10、 处的字句写在对应栏内。说明现欲实现一个图像浏览系统,要求该系统能够显示 BMP、JPEG 和 GIF 三种格式的文件,并且能够在Windows 和 Linux 两种操作系统上运行。系统首先将 BMP、JPEG 和 GIF 三种格式的文件解析为像素矩阵,然后将像素矩阵显示在屏幕上。系统需具有较好的扩展性,以支持新的文件格式和操作系统。为满足上述需求并减少所需生成的子类数目,采用桥接(Bridge)设计模式进行设计所得类图如图 18-18 所示。(分数:14.98)填空项 1:_填空项 1:_填空项 1:_填空项 1:_填空项 1:_填空项 1:_填空项 1:_阅读下列说明和 C+代码,将应填入
11、 (n) 处的字句写在对应栏内。说明现欲构造一棵文件/目录树,采用组合(Composite)设计模式来设计,得到的类图如图 18-19 所示。(分数:15.00)填空项 1:_填空项 1:_填空项 1:_填空项 1:_填空项 1:_软件设计师-面向对象程序设计(二)答案解析(总分:150.95,做题时间:90 分钟)阅读下列说明和 Java 代码,将应填入 (n) 处的字句写在对应栏内。说明某游戏公司现欲开发一款面向儿童的模游戏,该游戏主要模拟现实世界中各种鸭子的发声特征、飞行特征和外观特征。游戏需要模拟的鸭子种类及其特征如表 18-5 所示。表 18-5 鸭子各类及其特征鸭子种类 发声特征
12、飞行特征 外现特征灰鸭(MallaIdDuck)发出“嘎嘎”声(Quack)用翅膀飞行(FlyWithWings) 灰色羽毛红头鸭(RedHeadDuck)发出“嘎嘎”声(Quack)用翅膀飞行(FlyWithWings)灰色羽毛、头部红色棉花鸭(CottonDuck) 不发声(QuackNoWay) 不能飞行(FlyNoWay) 白色橡皮鸭(RubberDuck)发出橡皮与空气摩擦声(Squeak) 不能飞行(FlyNoWay)黑色橡皮颜色为支持将来能够模拟更多种类鸭子的特征,采用策略设计模式(Strategy)设计的类图如图 18-8 所示。(分数:15.03)填空项 1:_ (正确答案:
13、interface)解析:填空项 1:_ (正确答案:interface)解析:填空项 1:_ (正确答案:flyBehavior)解析:填空项 1:_ (正确答案:quackBehavior)解析:填空项 1:_ (正确答案:flyBehavior.fly())解析:填空项 1:_ (正确答案:quackBehavior.quack())解析:填空项 1:_ (正确答案:abstract)解析:填空项 1:_ (正确答案:FlyNoWay())解析:填空项 1:_ (正确答案:Squeak())解析:阅读下列说明和 C+代码,将应填入 (n) 处的字句写在对应栏内。说明已知某企业的采购审批是
14、分级进行的,即根据采购金额的不同由不同层次的主管人员来审批,主任可以审批 5 万元以下(不包括 5 万元)的采购单,副董事长可以审批 5 万元至 10 万元(不包括 10 万元)的采购单,董事长可以审批 10 万元至 50 万元(不包括 50 万元)的采购单,50 万元及以上的采购单就需要开会讨论决定。采用责任链设计模式(Chain of Responsibility)对上述过程进行设计后得到的类图如图 18-9 所示。(分数:14.98)填空项 1:_ (正确答案:ProcessRequest(aRequest))解析:填空项 1:_ (正确答案:Approver*)解析:填空项 1:_ (
15、正确答案:Approver:)解析:填空项 1:_ (正确答案:Tammy)解析:填空项 1:_ (正确答案:Meeting)解析:填空项 1:_ (正确答案:Sam)解析:填空项 1:_ (正确答案:Larry)解析:阅读下列说明和 Java 代码,将应填入 (n) 处的字句写在对应栏内。说明已知某企业的采购审批是分级进行的,即根据采购金额的不同由不同层次的主管人员来审批,主任可以审批 5 万元以下(不包括 5 万元)的采购单,副董事长可以审批 5 万元至 10 万元(不包括 10 万元)的采购单,董事长可以审批 10 万元至 50 万元(不包括 50 万元)的采购单,50 万元及以上的采购
16、单就需要开会讨论决定。采用责任链设计模式(Chain of Responsibility)对上述过程进行设计后得到的类图如图 18-10 所示。(分数:14.98)填空项 1:_ (正确答案:ProcessRequest(aRequest))解析:填空项 1:_ (正确答案:Approver)解析:填空项 1:_ (正确答案:super)解析:填空项 1:_ (正确答案:Tammy)解析:填空项 1:_ (正确答案:Meeting)解析:填空项 1:_ (正确答案:Sam)解析:填空项 1:_ (正确答案:Larry)解析:阅读下列说明和 C+代码,将应填入 (n) 处的字句写在对应栏内。说明
17、已知某企业欲开发一个家用电器遥控系统,即用户使用一个遥控器即可控制某些家用电器的开与关。遥控器如图 18-11 所示。该遥控器共有 4 个按钮,编号分别是 03,按钮 0 和 2 能够遥控打开电器 1 和电器2,按钮 1 和 3 则能遥控关闭电器 1 和电器 2。由于遥控系统需要支持形式多样的电器,因此,该系统的设计要求具有较高的扩展性。现假设需要控制客厅电视和卧室电灯,对该遥控系统进行设计所得类图如图18-12 所示。(分数:14.98)填空项 1:_ (正确答案:commandsbutton)解析:填空项 1:_ (正确答案:trunLight(0)或 turnLight(0))解析:填空
18、项 1:_ (正确答案:setChannel(1)解析:填空项 1:_ (正确答案:lightCommand)解析:填空项 1:_ (正确答案:RemoteController)解析:填空项 1:_ (正确答案:Light)解析:填空项 1:_ (正确答案:TV)解析:(5)、(6)、(7)答案顺序可以互换。阅读下列说明和 Java 代码,将应填入 (n) 处的字句写在对应栏内。说明已知某企业欲开发一个家用电器遥控系统,即用户使用一个遥控器即可控制某些家用电器的开与关。遥控器如图 18-13 所示。该遥控器共有 4 个按钮,编号分别是 03,按钮 0 和 2 能够遥控打开电器 1 和电器2,按
19、钮 1 和 3 则能遥控关闭电器 1 和电器 2。由于遥控系统需要支持形式多样的电器,因此,该系统的设计要求具有较高的扩展性。现假设需要控制客厅电视和卧室电灯,对该遥控系统进行设计所得类图如图18-14 所示。(分数:14.98)填空项 1:_ (正确答案:commandsbutton)解析:填空项 1:_ (正确答案:trunLight(0)或 turnLight(0))解析:填空项 1:_ (正确答案:setChannel(1))解析:填空项 1:_ (正确答案:lightCommand)解析:填空项 1:_ (正确答案:RemoteController)解析:填空项 1:_ (正确答案:
20、Light)解析:填空项 1:_ (正确答案:TV)解析:(5)、(6)、(7)答案顺序可以互换。阅读下列说明和 C+代码,将应填入 (n) 处的字句写在对应栏内。说明已知某类库开发商提供了一套类库,类库中定义了 Application 类和 Document 类,它们之间的关系如图18-15 所示,其中,Application 类表示应用程序自身,而 Document 类则表示应用程序打开的文档。Application 类负责打开一个已有的以外部形式存储的文档,比如一个文件,一旦从该文件中读出信息后,它就由一个 Document 对象表示。(分数:16.00)填空项 1:_ (正确答案:Do
21、cument*)解析:填空项 1:_ (正确答案:aDocument)解析:填空项 1:_ (正确答案:!canOpenDocument(docName))解析:填空项 1:_ (正确答案:Document*)解析:填空项 1:_ (正确答案:doCreateDocument())解析:填空项 1:_ (正确答案:adoc-open(docName))解析:填空项 1:_ (正确答案:adoc-read(docName))解析:填空项 1:_ (正确答案:addDocument(adoc))解析:阅读下列说明和 Java 代码,将应填入 (n) 处的字句写在对应栏内。说明已知某类库开发商提供了
22、一套类库,类库中定义了 Application 类和 Document 类,它们之间的关系如图18-16 所示,其中,Application 类表示应用程序自身,而 Document 类则表示应用程序打开的文档。Application 类负责打开一个已有的以外部形式存储的文档,比如一个文件,一旦从该文件中读出信息后,它就由一个 Document 对象表示。(分数:15.04)填空项 1:_ (正确答案:Document)解析:填空项 1:_ (正确答案:aDocument)解析:填空项 1:_ (正确答案:!canOpenDocument(docName))解析:填空项 1:_ (正确答案:D
23、ocument)解析:填空项 1:_ (正确答案:doCreateDocument())解析:填空项 1:_ (正确答案:adoc.open(docName))解析:填空项 1:_ (正确答案:adoc.read(docName))解析:填空项 1:_ (正确答案:addDocument(adoc))解析:阅读下列说明和 C+代码,将应填入 (n) 处的字句写在对应栏内。说明现欲实现一个图像浏览系统,要求该系统能够显示 BMP、JPEG 和 GIF 三种格式的文件,并且能够在Windows 和 Linux 两种操作系统上运行。系统首先将 BMP、JPEG 和 GIF 三种格式的文件解析为像素矩
24、阵,然后将像素矩阵显示在屏幕上。系统需具有较好的扩展性,以支持新的文件格式和操作系统。为满足上述需求并减少所需生成的子类数目,采用桥接(Bridge)设计模式进行设计所得类图如图 18-17 所示。(分数:14.98)填空项 1:_ (正确答案:this-imp)解析:填空项 1:_ (正确答案:ImageImp)解析:填空项 1:_ (正确答案:imp-doPaint(m))解析:填空项 1:_ (正确答案:new BMP())解析:填空项 1:_ (正确答案:new Winlmp())解析:填空项 1:_ (正确答案:image1-setlmp(imageImp1))解析:填空项 1:_
25、(正确答案:17)解析:阅读下列说明和 Java 代码,将应填入 (n) 处的字句写在对应栏内。说明现欲实现一个图像浏览系统,要求该系统能够显示 BMP、JPEG 和 GIF 三种格式的文件,并且能够在Windows 和 Linux 两种操作系统上运行。系统首先将 BMP、JPEG 和 GIF 三种格式的文件解析为像素矩阵,然后将像素矩阵显示在屏幕上。系统需具有较好的扩展性,以支持新的文件格式和操作系统。为满足上述需求并减少所需生成的子类数目,采用桥接(Bridge)设计模式进行设计所得类图如图 18-18 所示。(分数:14.98)填空项 1:_ (正确答案:this.imp)解析:填空项
26、1:_ (正确答案:ImageImp)解析:填空项 1:_ (正确答案:imp.doPaint(m))解析:填空项 1:_ (正确答案:new BMP())解析:填空项 1:_ (正确答案:new Winlmp())解析:填空项 1:_ (正确答案:image1.setlmp(imagelmp1))解析:填空项 1:_ (正确答案:17)解析:阅读下列说明和 C+代码,将应填入 (n) 处的字句写在对应栏内。说明现欲构造一棵文件/目录树,采用组合(Composite)设计模式来设计,得到的类图如图 18-19 所示。(分数:15.00)填空项 1:_ (正确答案:this-name)解析:填空项 1:_ (正确答案:listAbstractFile*)解析:填空项 1:_ (正确答案:NULL)解析:填空项 1:_ (正确答案:this-name)解析:填空项 1:_ (正确答案:childList)解析: