当前位置: 首页icon 51CTO软考 > 软考资讯 >考试科目 >2015年11月 软件设计师 下午题之五

2015年11月 软件设计师 下午题之五

作者:wx6225b14cdec172023-11-08 01:00:13
备考咨询 刷题指导
添加专属学姐
下载资料 2024上半年软考备考资料+考试大纲
下载按钮 下载
引号

摘要:对于【软件设计师】软考考试而言,真题无疑是最重要的学习资料之一。在软考备考过程中,吃透真题、掌握真题所考知识点、熟悉真题的出题思路,对我们提升分数的效果是最明显的,通过对真题的反复练习,还可以查漏补缺。今天,给大家带来【2015年11月 软件设计师 下午题】部分真题的详解,一起来看看吧~1、阅读下列说明和C++代码,将应填入  (n)  处的字句写在

引号
摘要:对于【软件设计师】软考考试而言,试题无疑是最重要的学习资料之一。在软考备考过程中,吃透试题、掌握试题所考知识点、熟悉试题的出题思路,对我们提升分数的效果是最明显的,通过对试题的反复练习,还可以查漏补缺。今天,给大家带来【2015年11月 软件设计师 下午题】部分试题的详解,一起来看看吧~



1、阅读下列说明和C++代码,将应填入  (n)  处的字句写在答题纸的对应栏内。【说明】      某大型购物中心欲开发一套收银软件,要求其能够支持购物中心在不同时期推出的各种促销活动,如打折、返利(例如,满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(doublemotieyCondition, double moneyReturn) {           this->moneyCondition=moneyCondition;      this->moneyReturn=moneyRetum;    }                                                                  double acceptCash(doublemoney) {       double result =money;      if(money>=moneyCondition)          result=money-(int)(money/moneyCondition ) * moneyRetum;       return result ;    }};class CashContext {private:   CashSuper *cs;public:   CashContext(int type) {     switch(type) {      caseNORMAL:           //正常收费                  (2)      ;          break;      case CASH_RETURN:       //满300返100                  (3)       ;           break;      case CASH_DISCOUNT:     //打八折                 (4)       ;          break;   }}double GetResult(double money) {            (5)     ;    }};//此处略去main()函数 
答案:

见解析


答题解析:

参考答案:

1virtual double acceptCash(double money) = 0

2cs = new CashNormal()

3cs = new CashReturn(300,100)

4cs = new CashDiscount(0.8)

5return cs->acceptCash(money)

试题分析:

策略模式的结构图如下:



查看完整试题>>>


代理合作学习群