2015年下半年(下午)《软件设计师》真题.docxVIP

2015年下半年(下午)《软件设计师》真题.docx

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2015年下半年(下午)《软件设计师》真题 注意:图片可根据实际需要调整大小 卷面总分:6分 答题时间:240分钟 试卷题量:6题 练习次数:0次 问答题 (共6题,共6分) 1.某大型购物中心欲开发一套收银软件,要求其能够支持购物中心在不同时期推出的各种促销活动,如打折、返利(例如,满300返100)等等。现采用策略(Strategy)模式实现该要求,得到如图5-1所示的类图。 图5-1策略模式类图 【C++代码】 #include<iostream using namespace std; enum TYPE{NORMAL,CASH_DISCOUNT,CASH_RETURN}; class CashSuper{ public: (1); }; class CashNormal:public CashSuper{//正常收费子类 public: double acceptCash(double money){retum money;} }; class CashDiscount:public CashSuper{ private: double moneyDiscount;//折扣率 public: CashDiscount(double discount){moneyDiscount=discount;} double acceptCash(double money){retum money*moneyDiscount;} }; class CashRetum:public CashSuper{//满额返利 private: double moneyCondition;//满额数额 double moneyReturn;//返利数额 public: CashRetnm(double motieyCondition,double moneyReturn){ this-moneyCondition=moneyCondition; this-moneyReturn=moneyReturn; } double acceptCash(double money){ double result=money; if(money=moneyCondition) result=money-(int)(money/moneyCondition)*moneyReturn; return?result; } }; class CashContext{ private: CashSuper*cs; public: CashContext(int type){ switch(type){ case NORMAL://正常收费 (2); break; case CASH_RETURN://满300返100 (3); break; case CASH_DISCOUNT://打八折 (4); break; } } double GetResult(double money){ (5); } }; //此处略去main(  )函数 正确答案: 本题解析: (1)virtual double acceptCash(double money)=0 (2)cs=new CashNormal() (3)cs=new CashReturn(300,100) (4)cs=new CashDiscount(0.8) (5)return cs-acceptCash(money) 本题考查策略(Strategy)模式的基本概念和应用。 Strategy模式的设计意图是,定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换。此模式使得算法可以独立于使用它们的客户而变化,其结构图如下图所示。 ?Strategy(策略)定义所有支持的算法的公共接口。Context使用这个接口来调用某ConcreteStrategy定义的算法。 ?ConcreteStrategy(具体策略)以Strategy接口实现某具体算法。 ?Context(上下文)用一个ConcreteStrategy对象来配置;维护一个对Strategy对象的引用;可定义一个接口来让Strategy访问它的数据。 Strategy模式适用于: ?许多相关的类仅仅是行为有异。“策略”提供了一种用多个行为中的一个行为来配置一个类的方法。 ?需要使用一个算法的不同变体。例如,定义一些反应不同空间的空间/时间权衡的算法。当这些变体实现为一个算法的类层次时,可以使用策略模式。 ?算法使用客户不应该知道的数据。可使用策略模式以避免暴露复杂的、与算法相关的数据结构。 一个类定

您可能关注的文档

文档评论(0)

山水教育[全国可咨询] + 关注
官方认证
服务提供商

山水教育专注行业研报、成人教育、自考、考研考博培训,建筑行业职业资格证书考试、卫生系统职业资格考试、大学专业考核试题等等,欢迎垂询,助您考试成功!

认证主体成都梦创星野科技有限公司
IP属地辽宁
统一社会信用代码/组织机构代码
91510114MACPUY5K3K

1亿VIP精品文档

相关文档