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()函数
答案:
答题解析:
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()函数
答案:
见解析
答题解析:
参考答案:
(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)
试题分析:
策略模式的结构图如下:
查看完整试题>>>
软考资料: 2024年软考论文范文> 软考考试核心重点难点汇总> 查看更多>
备考刷题:章节练习+每日一练> 软考历年试题+模拟题>查看更多>