摘要:2015年下半年软件设计师考试真题下午卷 试题五(15分)阅读下列说明和C++代码,将应填入 (n) 处的字句写在答题纸的对应栏内。
 >>>>>>>>>> 点击进入2016年软件设计师网络课堂课
  >>>>>>>>>>点击进入软件设计师历年真题题库
  >>>>>>>>>>点击进入2016年软件设计师考试指南
2015年下半年软件设计师考试真题下午卷
  试题五(15分)
  阅读下列说明和C++代码,将应填入  (n)  处的字句写在答题纸的对应栏内。
 【说明】
  某大型购物中心欲开发一套收银软件,要求其能够支持购物中心在不同时期推出的各 种促销活动,如打折、返利(例如,满3 00返1 00)等等。现采用策略( Strategy)模式实现该要求,得到如图5-1所示的类图。
 

 【C++代码】
  #include <iostream> Using namespace std;
      enum TYPE{NORMAL, CASH_DISCOUNT, CASH_RETURN}; class CashSup er{ 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;m otieyCondition, double moneyReturn) {
  this=>moneyCondition - moneyCondition;
      this=>m oneyRetumF moneyRetum;
      } .
      double acceptCash(double money) {
  double result = money;
      if(money>=moneyCondition)
    result = money - (int)(mon ey l mon eyCondition ) * moneyRetum;
      Return  result
      }
      };
      class CashContext {
      private:
      CashSuper *cs;
  public:
      CashContext(inttype) {
      switch(type) {
      case NORMAL: //正常收费
  (2)
      case CASH;:RETURN //满30返100
   (3)
      Break;
  case CASH DISCOUNT: //打八折
 (4)
      break;
      }
      }
  double GetResult(double money) {
  (5)
      }
      };
      //此处略去main()函数 
相关链接:
  
软考备考资料免费领取
去领取
				专注在线职业教育24年