欢迎来到麦多课文档分享! | 帮助中心 海量文档,免费浏览,给你所需,享你所想!
麦多课文档分享
全部分类
  • 标准规范>
  • 教学课件>
  • 考试资料>
  • 办公文档>
  • 学术论文>
  • 行业资料>
  • 易语言源码>
  • ImageVerifierCode 换一换
    首页 麦多课文档分享 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    【计算机类职业资格】软件水平考试(中级)软件设计师下午(应用技术)历年真题试卷汇编5及答案解析.doc

    • 资源ID:1340176       资源大小:62.50KB        全文页数:4页
    • 资源格式: DOC        下载积分:5000积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    二维码
    微信扫一扫登录
    下载资源需要5000积分(如需开发票,请勿充值!)
    邮箱/手机:
    温馨提示:
    如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如需开发票,请勿充值!如填写123,账号就是123,密码也是123。
    支付方式: 支付宝扫码支付    微信扫码支付   
    验证码:   换一换

    加入VIP,交流精品资源
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    【计算机类职业资格】软件水平考试(中级)软件设计师下午(应用技术)历年真题试卷汇编5及答案解析.doc

    1、软件水平考试(中级)软件设计师下午(应用技术)历年真题试卷汇编 5 及答案解析(总分:14.00,做题时间:90 分钟)一、必答题(总题数:7,分数:14.00)1.必答题(共 4 道大题,每道大题)(分数:2.00)_2.阅读下列说明和 c+代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 现要求实现一个能够自动生成求职简历的程序,简历的基本内容包括求职者的姓名、性别、年龄及工作经历。希望每份简历中的工作经历有所不同,并尽量减少程序中的重复代码。现采用原型模式(Prototype)来实现上述要求,得到如图 161 所示的类图。 (分数:2.00)_3.阅读以下说明和 C+代码,将

    2、应填入(n)处的字句写在对应栏内。【说明】欲开发一个绘图软件,要求使用不同的绘图程序绘制不同的图形。以绘制直线和圆形为例,对应的绘图程序如表 162 所示。该绘图软件的扩展性要求,将不断扩充新的图形和新的绘图程序。为了避免出现类爆炸的情况,现采用桥接(Bridge)模式来实现上述要求,得到如图 162 所示的类图。 (分数:2.00)_4.阅读下列说明和 C+代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 现欲开发一个软件系统,要求能够同时支持多种不同的数据库,为此采用抽象工厂模式设计该系统。以 SQL Server 和Access 两种数据库以及系统中的数据库表 Departm

    3、ent 为例,其类图如图 163 所示。 (分数:2.00)_5.阅读下列说明 C+代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 某咖啡店当卖咖啡时,可以根据顾客的要求在其中加入各种配料,咖啡店会根据所加入的配料来计算费用。咖啡店所供应的咖啡及配料的种类和价格如表 163 所示。 现采用装饰器(Decorator)模式来实现计算费用的功能,得到如图 165 所示的类图。 (分数:2.00)_6.阅读下列说明 SDC+代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 某大型商场内安装了多个简易的纸巾售卖机,自动售出 2 元钱一包的纸巾,且每次仅售出一包纸巾。纸巾售卖机

    4、的状态如图 166 所示。 采用状态(State)模式来实现该纸巾售卖机,得到如图 167 所示的类图。其中类State 为抽象类,定义了投币、退币、出纸巾等方法接口。类SoldState、SoldOutState、NoQuarterState 和 HasQuarterState 分别对应图 164 中纸巾售卖机的 4 中状态:售出纸巾、纸巾售完、没有投币、有 2 元钱。 (分数:2.00)_7.阅读下列说明和 C+代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 某公司的组织结构图如图 1610 所示,现采用组合(Composition)设计模式来构造该公司的组织结构, 得到如图

    5、 16 一11 所示的类图。 (分数:2.00)_软件水平考试(中级)软件设计师下午(应用技术)历年真题试卷汇编 5 答案解析(总分:14.00,做题时间:90 分钟)一、必答题(总题数:7,分数:14.00)1.必答题(共 4 道大题,每道大题)(分数:2.00)_解析:2.阅读下列说明和 c+代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 现要求实现一个能够自动生成求职简历的程序,简历的基本内容包括求职者的姓名、性别、年龄及工作经历。希望每份简历中的工作经历有所不同,并尽量减少程序中的重复代码。现采用原型模式(Prototype)来实现上述要求,得到如图 161 所示的类图。

    6、 (分数:2.00)_正确答案:(正确答案:(I)virtual Cloneable*Clone()=0 (2)WorkExperience*obj (3)Work (4)Resume*obj (5)a 一Clone()解析:解析:本题考查原型模式的概念及应用,原型模型是一种对象创建模型,用原型实体指定创建对象的种类,并且通过复制这些原型创建新的对象。原型模型允许一个对象再创建另一个可订制的对象,无需知道任何创建的细节。Prototype 模式其实就是常说的”虚拟构造函数”一个实现,C+的实现机制中并没有支持这个特性,但是通过不同派生类实现的 Clone 接口函数可以完成与”虚拟构造函数”同样

    7、的效果。题中声明一个虚拟基类,所有的原型都从这个基类继承, (1)所代表的就是这个基类中的纯虚函数,需要供继承者自行实现,即为 virtual Cloneable*Clone()=0,首先声明一个抽象基类,并定义 clone()函数为纯虚函数。然后根据基类实例化各个子类,并且实现复制构造函数,并实现 clone()函数,由此可知(2)处为 WorkExperience*obj,(3)处 Work,(4)处为 Resume*obj。在 main 函数中实现 Resume*b 对*am 复制,故根据 C+语法(5)中为 a 一Clone()。3.阅读以下说明和 C+代码,将应填入(n)处的字句写在

    8、对应栏内。【说明】欲开发一个绘图软件,要求使用不同的绘图程序绘制不同的图形。以绘制直线和圆形为例,对应的绘图程序如表 162 所示。该绘图软件的扩展性要求,将不断扩充新的图形和新的绘图程序。为了避免出现类爆炸的情况,现采用桥接(Bridge)模式来实现上述要求,得到如图 162 所示的类图。 (分数:2.00)_正确答案:(正确答案:(1)virtual void drawLine(double xl,double y1,double x2,double y2); (2)virtual void drawCircle(double X,double Y,double r); (3)DPIdra

    9、w-a-ircle(x,y,r);(4)DP2drawCircle(x,y,r); (5)virtual void draw();(6)Shape(dp)。)解析:解析:本题考查 Bridge 桥接模式的概念及应用,将抽象与其实现解耦,使它们都可以独立地变化。大致意思是说:将一组实现与另一组使用他们的对象分离。这里的实现指的是抽象类及其派生类用来实现自己的对象(而不是抽象类的派生类,这些派生类被称为具体类)Drawing 是一个虚拟基类,里面包含了希望不同策略实现的算法,派生类 V1Drawing,V2Drawing 都派生自 Drawing,对基类中的希望实现的算法都作了具体实现,且它们都含

    10、有 drawLine 和 drawCircle 函数,所以 Draw 类中缺失的应该是这两个算法,于是 (1)virtual void drawLine(double x1,double y1,double x2,double y2); (2)virtual void drawCircle(double x,double y,double r);DPI 和 DP2 中包含了绘制 Line 和 Circle 的具体实现的Static 方法,因此在 V1Drawing,V2Drawing 类中可以直接进行调用它们。 (3)DPL drawacircle(x,y,r) (4)DP2drawCircl

    11、e(x,y,r);Shape 类派生出 Rectangle 和 Circle 类,里面都含有draw 方法,但是具体 draw 方法的实现却不相同,所以(5)virtual void draw(),最后 Circle 的构造函数初始化了后 4 个变量,还有继承自 shape 的变量一 dp 未做初始化,因此调用 shape构造函数做初始化(6)shape(dp)。4.阅读下列说明和 C+代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 现欲开发一个软件系统,要求能够同时支持多种不同的数据库,为此采用抽象工厂模式设计该系统。以 SQL Server 和Access 两种数据库以及系统

    12、中的数据库表 Department 为例,其类图如图 163 所示。 (分数:2.00)_正确答案:(正确答案:(1)virtual void Insert(Department 木 department) (2)virtual Department GetDepartment(int id) (3)public IDepartment (4)public IDepartment (5)class Ifactory (6)virtual IDepartment*Create Department()解析:解析:本题考查抽象工厂设计模式的概念及其应用。抽象工厂设计模式的意图是:提供一个创建一系列

    13、相关或相互依赖的对象,而无须指出它们具体的类。在如下情况下应当考虑使用抽象工厂模式:当一个系统要独立于它的产品的创建、组合和表示时;当一个系统要由多个产品系列中的一个来配置时;当需强调一系列相关的产品对象的设计以便进行联合使用时;想提供一组对象而不显示它们的实现过程,只显示它们的接口时。抽象工厂设计模式的类图如图 164 所示,其中:5.阅读下列说明 C+代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 某咖啡店当卖咖啡时,可以根据顾客的要求在其中加入各种配料,咖啡店会根据所加入的配料来计算费用。咖啡店所供应的咖啡及配料的种类和价格如表 163 所示。 现采用装饰器(Decorat

    14、or)模式来实现计算费用的功能,得到如图 165 所示的类图。 (分数:2.00)_正确答案:(正确答案:(1)abstract(2)StringgetDescription(3)abstractintcost() (4)Beveragebeverage(5)beverage(6)beverage)解析:解析:由类图可知,Beverage 是基类,Espresso、DarkRoast、CondimentDecorator 是 Beverage的派生类,Mocha、Whip 又是 CondimentDecorator 的派生类。 (1)处应填kdescfiption访问控制类型,可能为 priv

    15、ate 或 protected。在 Beverage派生类 Espressol)-始化函数中直接使用“description,由此可知,在基类中,description访问控制类型为 protected。如果为 priVate,则在派生中不能使用。 在基类中先后动态建立了一个 DarkRoast 对象、Mocha 对象和 Whip 对象,调用初始化函数,并输出。在 Mocha 类和 Whip 类中分别调用了基类的 getDescription()cost()。6.阅读下列说明 SDC+代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 某大型商场内安装了多个简易的纸巾售卖机,自动售出

    16、 2 元钱一包的纸巾,且每次仅售出一包纸巾。纸巾售卖机的状态如图 166 所示。 采用状态(State)模式来实现该纸巾售卖机,得到如图 167 所示的类图。其中类State 为抽象类,定义了投币、退币、出纸巾等方法接口。类SoldState、SoldOutState、NoQuarterState 和 HasQuarterState 分别对应图 164 中纸巾售卖机的 4 中状态:售出纸巾、纸巾售完、没有投币、有 2 元钱。 (分数:2.00)_正确答案:(正确答案:(1)State (2)tissueMachine-getHasQuarterState0 或 new HasQuarterSt

    17、ate (3)tissueMachine-getNoQuarterState0 或 new NoQuarterState (4)tissueMachine-getNoQuarterState0或 new NoQuarterState (5)tissueMachine-getS0ldoutState()或 new So|dOutState)解析:解析: (1)根据题意,本题使用的是状态模式,判断纸巾售卖机的状态,根据不同的状态执行不同的动作。State 定义了纸巾售卖机所对应的一些状态,售出纸巾、纸巾售完等状态。类SoldOutState、NoQuarterState、HasQuarterSta

    18、te、SoldState 均有类 State 派生而来。 (2)void insertQuarter()定义了一个“投币”的方法:在没有“2 元钱”时,客户投币的方法。tissureMachinesetState 是改变纸巾售卖机的状态,此时,客户已投入 2 元钱,故将此时的状态改为“有 2 元钱”的状态,纸巾售卖机调用“有 2 元钱”状态的方法即可。 (3)void ejectQuarter0 定义了一个“退币”的方法:在有 2 元钱的状态下,用户按下退币按钮,纸巾售卖机将此时的状态改为“没有投币”状态,故直接调用 getNoQulnerState()即可。 (4)根据纸巾售卖机状态图可知,

    19、当售出纸巾,并且纸巾数量仍大于 0 时,将返回“没有投币”状态,同第(3)小题的分析,此处应调用getNoQuarterState0。 (5)根据纸巾售卖机状态图可知,当售出纸巾,并且纸巾数量等于 0 时,将返回“纸巾售完”状态,此处用了 ifelse判断语句,当纸巾数量仍大于 0 时,返回“没有投币”状态,否则,纸巾数量一定等于 0,本段程序第(5)空是 else 下的一条语句,故此处是判断 count 为 0 时,纸巾售卖机的状态,显然,应调用 getSoldOutState0。7.阅读下列说明和 C+代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 某公司的组织结构图如图 1

    20、610 所示,现采用组合(Composition)设计模式来构造该公司的组织结构, 得到如图 16 一11 所示的类图。 (分数:2.00)_正确答案:(正确答案:(1)this 一name (2)virtual void Add(Company*c)=0 (3)virtual void Delete(Company*C)=0 (4)Company* (5)Children (6)Children (7)root 一Add(comp) (8)comp 一Add(compl)解析:解析:初始化函数中,将形参的值付给成员 name,形参的变量名和成员变量的名称相同,需要使this 指针指示被赋值的

    21、 name 是类的成员。增加(删除)子公司、办事处或部门用到的函数是 Add 和Delete。由于 C0mpany 是抽象类,并作为 ConcreteCompany、HRDepartment、FinanceDepartment 的基类,ConcreteCompany、HRD 印 anment 继承了其父类的 Add 和 Delete 操作,因此在基类中要将 Add 和 DeIete设置为纯虚函数。类 ConcreteCompany 表示具体的分公司或者办事处,其中的成员 children 用来存储子公司、办事处或部门,其数据类型应为 Company*,当进行增加操作时,要把增加的对象存储在 children的最后;当进行删除操作,则需要从 children 中将对应的对象移除。 (7)处的操作是把上海分公司这个对象加入到北京公司总部中。 (8)处的操作是将南京办事处这个对象加入到上海分公司中。


    注意事项

    本文(【计算机类职业资格】软件水平考试(中级)软件设计师下午(应用技术)历年真题试卷汇编5及答案解析.doc)为本站会员(jobexamine331)主动上传,麦多课文档分享仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文档分享(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

    收起
    展开