首页
登录
从业资格
阅读下列说明和C++代码,将应填入 (n) 处的字句写在答题纸的对应栏内。
阅读下列说明和C++代码,将应填入 (n) 处的字句写在答题纸的对应栏内。
admin
2022-08-02
23
问题
阅读下列说明和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)试题分析:策模式的结构图如下:
转载请注明原文地址:https://tihaiku.com/congyezige/2407732.html
本试题收录于:
中级 软件设计师题库软件水平考试初中高级分类
中级 软件设计师
软件水平考试初中高级
相关试题推荐
以下关于黑盒测试的叙述中,不正确的是( )。A.不需要了解程序内部的代码及实现
软件测试的对象不包括( )。A.软件代码 B.软件开发过程 C.文档 D
将高级语言程序翻译为机器语言程序的过程中常引入中间代码,好处是( )。A.有利
( )属于系统软件,它直接执行高级语言源程序或与源程序等价的某种中间代码。A.
修改现有软件系统的设计文档和代码以增强可读性,这种行为属于()维护。A.正确性
传统编译器进行词法分析、语法分析、代码生成等步骤的处理时,前一阶段处理的输出是后
软件测试的对象不包括()。A.一段功能的实现代码 B.概要设计说明书 C.
软件测试的对象不包括()。A.软件代码 B.软件文档 C.质量保证方法
以下关于测试方法的叙述中,正确的是()。A.根据是否需要执行被测试代码可分为
以下关于测试方法的叙述中,正确的是()。A.根据是否需要执行被测试代码可分为
随机试题
OscarHopefulsOnMarch5th,2006,actors,director
Ofthemillionsofinventions,whataretheeightgreatest?A)I’vedraw
BernardMadoffcarriedoutthelargestfraudinUShistoryfor[br][originalte
Whenwethinkofentrepreneurs,mostofusimagine【C1】______,successful,ove
A市坚持发挥科技创新的引领作用,强化企业的创新主体地位,研发投入不断增加,研发人
斜疝修补术后,预防阴囊血肿的措施是A.平卧位,膝下垫软枕 B.预防便秘、尿潴留
根据公司法律制度的规定,上市公司的优先股股东有权出席股东大会会议,就相关事项与普
A.必须符合国务院卫生行政部门规定的条件和技术标准,并经县级以上地方人民政府卫生
假设其他条件不变,银行系统收回贷款流通中的货币总量会( )。A.不变 B.增
使用计量标准器具必须具备的条件是( )。A.经计量检定合格 B.具有正常工作
最新回复
(
0
)