首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
某咖啡店当卖咖啡时,可以根据顾客的要求在其中加入各种配料,咖啡店会根据所加入的配料来计算费用。咖啡店所供应的咖啡及配料的种类和价格如表16-1所示。 现采用装饰器(Decorator)模式来实现计算费用的功能,得到如图16-4所示的类图。
某咖啡店当卖咖啡时,可以根据顾客的要求在其中加入各种配料,咖啡店会根据所加入的配料来计算费用。咖啡店所供应的咖啡及配料的种类和价格如表16-1所示。 现采用装饰器(Decorator)模式来实现计算费用的功能,得到如图16-4所示的类图。
admin
2015-06-03
28
问题
某咖啡店当卖咖啡时,可以根据顾客的要求在其中加入各种配料,咖啡店会根据所加入的配料来计算费用。咖啡店所供应的咖啡及配料的种类和价格如表16-1所示。
现采用装饰器(Decorator)模式来实现计算费用的功能,得到如图16-4所示的类图。
【C++代码】
#include
#include
USing namespace std;
const int ESPRESSO_PRICE=25;
const int DRAKROAST_PRICE=20;
const int MOCHA_PRICE=10;
const int WHIP_PRICE=8;
class Beverage{ //饮料
(1):String deScription;
public:
(2)(){return description;}
(3);
};
class condimentDecorator :public Beverage { //配料
protected:
(4);
};
class Espresso:public Beverage{ //蒸馏咖啡
public:
Espresso ( ) { description=”Espresso”;}
int cost( ){return ESPRESSO PRICE;}
};
class DarkRoast:public Beverage{ //深度烘焙咖啡
public:
DarkRoast( ){ description= “DardRoast”;}
int cost(){return DRAKROAST PRICE;}
};
class Mocha :public condimentDecorator { //摩卡
public:
Mocha(Beverage*beverage) {this->beverage=beverage;}
string getDescription( ){return beverage->getDescription( )+“,Mocha”;}
int COSt( ){ return MOCHA PRICE+beVerage->cost( );}
};
class Whip :public condimentDecorator { //奶泡
public:
Whip(Beverage*beuerage) {this->beverage=beverage; }
string getDescription( ) {return beverage->getDescription( )+“,Whip”;}
int cost( ) { return WHIP PRICE+beverage->cost( );}
};
int meln() {
Beverage*beverage=new DarkRoast( );
beverage=new Mocha((5));
beverage=new Whip((6));
cout<
getDescription ( )<<“¥”<
cost( ) endl;
return 0;
}
编译运行上述程序,其输出结果为:
DarkRoast, Mocha, Whip ¥38
选项
答案
(1)protected (2)virtual string getDescription (3)virtual int cost()=0 (4)Beverage*beverage (5)beverage (6)beverage
解析
本题考查了C++语言的应用能力和装饰设计模式的应用。
第(1)空很明显,是要说明属性description在类Beverage中的类型,应该是私有的、受保护的或公有的,从后面的程序可以看出,子类中继承使用了该属性,因此这里只能定义为受保护的,因此第(1)空的答案为protected。
第(2)空处也很明显,是要给出一个函数的定义,并且该函数的函数体是“retumdescription;”,从子类奶泡和摩卡中不难发现这个函数应该是getDescription,因此本空的答案为virtual string getDescription。
第(3)空需要结合后面各子类才能发现,在Beverage中还应该定义一个函数cost,而这个函数在Beverage中并没有实现,因此要定义为纯虚函数,所以第(3)空的答案为virtual int cost()=0。
第(4)空在类CondimentDecorator中,且是该类唯一的一条语句,而它的子类分别是奶泡和摩卡,在奶泡和摩卡这两个类中,都用到了Beverage*beverage,而在使用之前并没有说明,因此这就可以说明,Beverage*beverage是在父类CondimentDecorator中定义的,子类直接继承使用,因此第(4)空的答案为Beverage*beverage。
第(5)和第(6)空在主函数当中,其中第(5)空是要创建一个Mocha对象,应该调用的是类Mocha的构造函数。从类Mocha中,可以看出,其构造函数Mocha的参数是一个Beverage类型的对象指针,而在主函数中,开始就定义了一个Beverage类型的对象指针beverage,因此这里只需填写beverage即可。同理第(6)空的答案也是beverage。
转载请注明原文地址:https://kaotiyun.com/show/2dDZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
在控制面板的“添加/删除程序”对话框中选择(1),然后进入“应用程序服务器”选项,在(2)组件复选框中选择“文件传输协议(FTP)服务”,就可以在Windows2003中安装FTP服务。(1)A.更改或删除程序B.添加新程序C.添加/删除
如果防火墙采用.NAPT技术,则该单位至少需要申请(1)个可用的公网地址。1.ACL默认执行顺序是(5),在配置时要遵循(6)原则、最靠近受控对象原则、以及默认丢弃原则。(5)、(6)备选项(A)最大特权(B)最小特权(C)随机选取(D)自左到右
为了使DNS_Server1能正确解析本地Web站点的域名,需对DNS_Server1中的DNS服务进行配置。在图1所示的对话框中,新建的区域名称是(1);在图2所示的对话框中,添加的新建主机名称为(2),IP地址栏应填入(3)。将DNS_Serve
阅读以下说明,将(n)的含义填入对应栏内。[说明]电子邮件是Internet中应用最广泛的服务,因此安装和配置一个高效与满足实际需求的电子邮件系统是每一个系统管理员的奋斗的目标之一,Linux的出现为构建低成本的、高效的电子邮件服务器提供了
如果ping127.0.0.1(本地循环地址),如果该地址无法Ping通,则说明了是什么原因?在DOS状态下输入tracertwww.ciu.net.cn并执行后,经过一段时间等待,系统会反馈出很多IP地址。出现在最上方(第1条记录)的IP地址是什么
阅读以下有关网络设备安装与调试的叙述,分析设备配置文件,回答问题1至问题3。现以一台远程访问服务器(RemoteAccessServer,RAS)Cisco2509、RJ45为例来说明。第一步,准备安装与调试所需的设备,主要包括RAS
在图4-8所示的无线接待室中WLAN采用的体系结构如图4-9所示,请将(1)~(3)空缺处填写完整IEEE802.11标准采取了认证和加密措施,其中(9)具有控制图4-8所示的拓扑结构中无线接待室WLAN接入的能力。IEEE802.11标准提供WEP
请指出图1-12中(1)空缺处传输的是模拟信号,还是数字信号?图1-12中(2)空缺处是什么设备?该设备在本宽带网络中完成哪些功能?
简述网络规划阶段需求分析的方法和解决的问题。(控制在100个字以内)在需求分析过程中应对已有网络的现状及运行情况作调研,如果要在已有的网络上作新的网络建设规划,如何保护用户已有投资?(控制在100个字以内)
随机试题
当时间序列的变化比较稳定时,利用直观的方法选择平滑系数a的值应该是()
男,44岁,饱餐后突发右上腹阵发性绞痛,向右肩部放射,伴恶心、呕吐。查体:T37.8℃,右上腹压痛,反跳痛(一),Murphy(+)。血常规示WBC11.3×109/L,血淀粉酶略升高。出现上题中所描述的临床表现后,患者下一步最应采取的处理措施是
肾母细胞瘤最常见的临床表现是
手太阴肺经的络穴是
对看涨期权来说,期权合约标的物的市场价格等于或大于期权的执行价格时,内涵价值为零。()
总资产周转率与()无关。
在网络中,执行将域名转换为对应的IP地址功能的服务器通常称作________服务器,而处于内网与外网之间,用于阻隔外部攻击的设备称为________。
马赫带【河北师范大学2012】
下列关于二叉树遍历的叙述中,正确的是(42)。
A、Ituseslotsofgasbuthasalotoffun.B、Itistooexpensivetobuy.C、Itistypicalforroadtrips.D、Itisbigenoughto
最新回复
(
0
)