ImageVerifierCode 换一换
格式:DOC , 页数:5 ,大小:66.50KB ,
资源ID:1340374      下载积分:5000 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝扫码支付 微信扫码支付   
注意:如需开发票,请勿充值!
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.mydoc123.com/d-1340374.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(【计算机类职业资格】软件设计师-30及答案解析.doc)为本站会员(postpastor181)主动上传,麦多课文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文库(发送邮件至master@mydoc123.com或直接QQ联系客服),我们立即给予删除!

【计算机类职业资格】软件设计师-30及答案解析.doc

1、软件设计师-30 及答案解析(总分:100.00,做题时间:90 分钟)一、试题一(总题数:1,分数:20.00)1.阅读下列说明和 Java 代码,将应填入_处的字句写在下面。 说明 现要求实现一个能够自动生成求职简历的程序,简历的基本内容包括求职者的姓名、性别、年龄及工作经历。希望每份简历中的工作经历有所不同,并尽量减少程序中的重复代码。 现采用原型模式(Prototype)来实现上述要求,得到如下图所示的类图。 (分数:20.00)_二、试题二(总题数:1,分数:20.00)2.阅读以下说明和 Java 代码,将应填入_处的字句写在下面。 说明 欲开发一个绘图软件,要求使用不同的绘图程序

2、绘制不同的图形。以绘制直线和圆形为例,对应的绘图程序如下表所示。 不同的绘图程序 DP1 DP2 绘制直线 draw a line(x1,y1,x2,y2) drawline(x1,x2,y1,y2) 绘制圆 draw a circle(x,y,r) drawcircle(x,y,r) 该绘图软件的扩展性要求,将不断扩充新的图形和新的绘图程序。为了避免出现类爆炸的情况,现采用桥接(Bridge)模式来实现上述要求,得到如下图所示的类图。 (分数:20.00)_三、试题三(总题数:1,分数:20.00)3.阅读下列说明 Java 代码,将应填入_处的字句写在下面。 说明 现欲开发一个软件系统,要

3、求能够同时支持多种不同的数据库,为此采用抽象工厂模式设计该系统。以SQL Server 和 Access 两种数据库以及系统中的数据库表 Department 为例,其类图如图 1 所示。 (分数:20.00)_四、试题四(总题数:1,分数:20.00)4.阅读下列说明和 Java 代码,将应填入_处的字句写在下面。 说明 某咖啡店当卖咖啡时,可以根据顾客的要求在其中加入各种配料,咖啡店会根据所加入的配料来计算费用。咖啡店所供应的咖啡及配料的种类和价格如下表所示。 咖啡 价格/杯(¥) 配料 价格/杯(¥) 蒸馏咖啡(Espresso) 25 摩卡(Mocha) 10 深度烘焙咖啡(DarkR

4、oast) 20 奶泡(Whip) 8 现采用装饰器(Decorator)模式来实现计算费用的功能,得到如下图所示的类图。 (分数:20.00)_五、试题五(总题数:1,分数:20.00)5.阅读下列说明和 Java 代码,将应填入_处的字句写在下面。 说明 某大型商场内安装了多个简易的纸巾售卖机,自动售出 2 元钱一包的纸巾,且每次仅售出一包纸巾。纸巾售卖机的状态如图 1 所示。 图 1 纸巾售卖机状态图采用状态(State)模式来实现该纸巾售卖机,得到如图 2 所示的类图。其中类 State 为抽象类,定义了投币、退币、出纸巾等方法接口。类 SoldState、SoldOutState、N

5、oQuarterState 和 HasQuanerState 分别对应图 1 中纸巾售卖机的 4 中状态:售出纸巾、纸巾售完、没有投币、有 2 元钱。 (分数:20.00)_软件设计师-30 答案解析(总分:100.00,做题时间:90 分钟)一、试题一(总题数:1,分数:20.00)1.阅读下列说明和 Java 代码,将应填入_处的字句写在下面。 说明 现要求实现一个能够自动生成求职简历的程序,简历的基本内容包括求职者的姓名、性别、年龄及工作经历。希望每份简历中的工作经历有所不同,并尽量减少程序中的重复代码。 现采用原型模式(Prototype)来实现上述要求,得到如下图所示的类图。 (分数

6、:20.00)_正确答案:()解析:implements WorkExperience obj=new WorkExperience() implements (WorkExperence)work.Clone() new Resume(this.work) a.Clone() 解析 本题考查原型模式的概念及应用,原型模型是一种对象创建模型,用原型实体指定创建对象的种类,并且通过复制这些原型创建新的对象。原型模型允许一个对象再创建另一个可订制的对象,无需知道任何创建的细节。 所有的 Java 类都继承自 java.lang.Object,而 object 类提供一个 Clone()方法,可以将

7、一个 Java 对象复制一份。因此在 Java 中可以直接使用 Object 提供的 Clone()方法来实现对象的克隆。能够实现克隆的java 类必须实现一个标识接口 Cloneable,表示这个 java 类支持复制。 题中 WorkExperience 类和 Resume 类需要实现 Cloneable 接口,故第一个空和第三个空为implements,WorkExperience 中需要实现 Clone 方法,并将自身复制一份,由下面的代码可知第二个空为 WorkExperience obj=newWorkExperience()。Resume 类中的私有构造方法实现 WorkExpe

8、fience 的深复制,故第四处中为(Work Experence)work.Clone(),而 Resume 类中 Clone 方法实现自身的复制,故第五处中为“newResume(this.work)”。 在 main 中实现 Resume b 对 a 的复制,故第六处中为“a.Clone()”。二、试题二(总题数:1,分数:20.00)2.阅读以下说明和 Java 代码,将应填入_处的字句写在下面。 说明 欲开发一个绘图软件,要求使用不同的绘图程序绘制不同的图形。以绘制直线和圆形为例,对应的绘图程序如下表所示。 不同的绘图程序 DP1 DP2 绘制直线 draw a line(x1,y1

9、,x2,y2) drawline(x1,x2,y1,y2) 绘制圆 draw a circle(x,y,r) drawcircle(x,y,r) 该绘图软件的扩展性要求,将不断扩充新的图形和新的绘图程序。为了避免出现类爆炸的情况,现采用桥接(Bridge)模式来实现上述要求,得到如下图所示的类图。 (分数:20.00)_正确答案:()解析:interface; void drawLine(double x1,double y1,double x2,double y2); void drawCircle(double x,double y,double r); DP1.draw_a circle

10、(x,y,r); DP2.drawCircle(x,y,r); abstract public void draw(); 解析 本题考查 Bridge 桥接模式的概念及应用,将抽象与其实现解耦,使它们都可以独立地变化。大致意思是说:将一组实现与另一组使用他们的对象分离。Java 语言中声明抽象函数时可利用 abstract,且每个函数都需要声明访问类型。对照试题五的代码我们可以看出:第一个空为 interface,这里的实现指的是抽象类及其派生类用来实现自己的对象(而不是抽象类的派生类,这些派生类被称为具体类),Drawing 是一个虚拟基类,里面包含了希望利用不同策略实现的算法,派生类 V1

11、Drawing,V2Drawing 都派生自 Drawing,对基类中希望实现的算法都作了具体实现,且它们都含有drawLine 和 drawCircle 函数,所以 Draw 类中缺失的应该是这两个算法,于是第二处为“void drawLine(double x1,doubley1,doublex2,double y2);”,第三处为“voiddrawCircle(doublex,doubley,double r);”,DP1 和 DP2 中包含了绘制 Line 和 Circle 的具体实现 Static 的方法,因此在 V1Drawing、V2Drawing 类中可以直接调用它们,第四处为

12、“DP1.draw_a_circle(x,y,r)第五处 DP2.drawCircle(x,y,r);”,Shape 类派生出 Rectangle 和 Circle类,里面都含有 draw 方法,但是具体 draw 方法的实现却不相同,所以第六处为“abstractpublicvoid draw”。三、试题三(总题数:1,分数:20.00)3.阅读下列说明 Java 代码,将应填入_处的字句写在下面。 说明 现欲开发一个软件系统,要求能够同时支持多种不同的数据库,为此采用抽象工厂模式设计该系统。以SQL Server 和 Access 两种数据库以及系统中的数据库表 Department 为例

13、,其类图如图 1 所示。 (分数:20.00)_正确答案:()解析:void Insert(Department department) Department GetDepartment(int id) implements IDepartment implements Department interface IFactory IDepartment CreateDepartment() 解析 本题考查抽象工厂设计模式的概念及其应用。其类图如图 2 所示。 四、试题四(总题数:1,分数:20.00)4.阅读下列说明和 Java 代码,将应填入_处的字句写在下面。 说明 某咖啡店当卖咖啡时,可

14、以根据顾客的要求在其中加入各种配料,咖啡店会根据所加入的配料来计算费用。咖啡店所供应的咖啡及配料的种类和价格如下表所示。 咖啡 价格/杯(¥) 配料 价格/杯(¥) 蒸馏咖啡(Espresso) 25 摩卡(Mocha) 10 深度烘焙咖啡(DarkRoast) 20 奶泡(Whip) 8 现采用装饰器(Decorator)模式来实现计算费用的功能,得到如下图所示的类图。 (分数:20.00)_正确答案:()解析:abstract String getDescription abstractirt cost() Beverage beverage beverage beverage 解析 装饰

15、器模式描述了如何动态地为一个对象添加职责。该模式采用递归方式组合对象,从而允许添加任意多的对象职责。在下列情况下可以使用装饰器模式: (1)在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责。 (2)处理那些可以撤销的职责。 (3)当不能采用生成子类的方法进行扩充时。一种情况是,可能有大量独立的扩展,为支持每一种组合将产生大量的子类,使得子类数目呈爆炸性增长。另一种情况可能是因为类定义被隐藏,或类定义不能用于生成子类。 装饰器模式的结构如图 2 所示。其中: 五、试题五(总题数:1,分数:20.00)5.阅读下列说明和 Java 代码,将应填入_处的字句写在下面。 说明 某大型商场

16、内安装了多个简易的纸巾售卖机,自动售出 2 元钱一包的纸巾,且每次仅售出一包纸巾。纸巾售卖机的状态如图 1 所示。 图 1 纸巾售卖机状态图采用状态(State)模式来实现该纸巾售卖机,得到如图 2 所示的类图。其中类 State 为抽象类,定义了投币、退币、出纸巾等方法接口。类 SoldState、SoldOutState、NoQuarterState 和 HasQuanerState 分别对应图 1 中纸巾售卖机的 4 中状态:售出纸巾、纸巾售完、没有投币、有 2 元钱。 (分数:20.00)_正确答案:()解析:State tissueMachine.getHasQuarterState

17、()或 new HasQuarterState()或 tissueMachine.HasQuarterState() tissueMachine.getNoQuarterState()或 new NoQuarterState()或 tissueMachine.NoQuarterState() tissueMachine.getNoQuarterState()或 new NoQuarterState()或 tissueMachine.NoQuarterState() tissueMacbine.getSoldOutState()或 new SoldOutState()或 tissueMachin

18、e.SoldOutState() 解析 根据题意,本题使用的是状态模式,判断纸巾售卖机的状态,根据不同的状态执行不同的动作。State 定义了纸巾售卖机所对应的一些状态,售出纸巾、纸巾售完等状态。类SoldOutState、NoQuarterState、HasQuarterState、SoldState 均有类 State 派生而来。 public void insertQuarter()定义了一个“投币”的方法:在没有“2 元钱”时,客户投币的方法。tissureMachine.setState 是改变纸巾售卖机的状态,此时,客户已投入 2 元钱,故将此时的状态改为“有 2 元钱”的状态,纸

19、巾售卖机调用“有 2 元钱”状态的方法即可。 public void ejectQuarter()定义了一个“退币”的方法:在有 2 元钱的状态下,用户按下“退币”按钮,纸巾售卖机将此时的状态改为“没有投币”状态,故直接调用 NoQuarterState()即可。 根据纸巾售卖机状态图可知,当售出纸巾,并且纸巾数量仍大于 0 时,将返回“没有投币”状态,此处应调用 NoQuarterState()。 根据纸巾售卖机状态图可知,当售出纸巾,并且纸巾数量等于 0 时,将返回“纸巾售完”状态,此处用了ifelse 判断语句,当纸巾数量仍大于 0 时,返回“没有投币”状态,否则,纸巾数量一定等于 0,本段程序第五空是 else 下的一条语句,故此处是判断 count 为 0 时,纸巾售卖机的状态,显然,应调用SoldOutState。

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1