首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
某咖啡店当卖咖啡时,可以根据顾客的要求在其中加入各种配料,咖啡店会根据所加入的配料来计算费用。咖啡店所供应的咖啡及配料的种类和价格如表16-1所示。 现采用装饰器(Decorator)模式来实现计算费用的功能,得到如图16-4所示的类图。 【C++代码
某咖啡店当卖咖啡时,可以根据顾客的要求在其中加入各种配料,咖啡店会根据所加入的配料来计算费用。咖啡店所供应的咖啡及配料的种类和价格如表16-1所示。 现采用装饰器(Decorator)模式来实现计算费用的功能,得到如图16-4所示的类图。 【C++代码
admin
2017-08-31
53
问题
某咖啡店当卖咖啡时,可以根据顾客的要求在其中加入各种配料,咖啡店会根据所加入的配料来计算费用。咖啡店所供应的咖啡及配料的种类和价格如表16-1所示。
现采用装饰器(Decorator)模式来实现计算费用的功能,得到如图16-4所示的类图。
【C++代码】
#include
#include
US ing namespace std;
const int ESPRESSO PRICE=2 5;
const int DRAKROAST PRICE=20;
const int MOCHA PRICE=10;
const int WHIP PRICE=8;
class Beverage{ //饮料
(1) :string description;
public;
(2) ()f 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 PR工CE+beVerage一>COSt();}
};
class Whip :public condimentDecorator { //奶泡
public:
Whip(Beverage*beVerage){this一>beVerage=beVerage; }
string getDescription() {return beverage一>getDescription( )+“,Whip”; }
int cost() { return WHI P 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 Y38
选项
答案
(1)protected (2)virtual string getDescription (3)virtual int cost0=0 (4)Beverage*beverage (5)beverage (6)beverage
解析
本题考查了C++语言的应用能力和装饰设计模式的应用。
第(1)空很明显,是要说明属性description在类Beverage中的类型,应该是私有的、受保护的或公有的,从后面的程序可以看出,子类中继承使用了该属性,因此这里只能定义为受保护的,因此第(1)空的答案为protected。
第(2)空处也很明显,是要给出一个函数的定义,并且该函数的函数体是“returndescription;99 9从子类奶泡和摩卡中不难发现这个函数应该是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/4ODZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
请指出图1-12中(1)空缺处传输的是模拟信号,还是数字信号?请指出图1-12中(3)空缺处的网络名称。在如图1-12所示的网络拓扑结构中,(4)空缺处所使用的设备至少应提供哪几种物理接口?
阅读以下某单位宽带网络接入的技术说明,根据要求回答问题1至问题6。【说明】接入网(AN)泛指用户网络接口(UNI)与业务节点接口(SNI)间实现传送承载功能的实体网络。其目标是建立一种标准化的接,方式,以一个可监控的接入网络,使用户能够获得话音、
阅读以下有关网络规划的叙述,回答问题1、问题2和问题3。网络工程是一项复杂的系统工程,一般可分为网络规划、网络设计、工程实施、系统测试验收和运行维护等几个阶段。网络规划是在需求分析的基础上,进行系统可行性分析和论证,以确定网络总体方案。网络规划阶段
从工作的频段、数据传输速率、优缺点以及它们之间的兼容性等方面,对IEEE802.11a、IEEE802.11b和IEEE802.11g进行比较。1.将(1)处空缺设备的名称填写在相应位置。
如果在网络设计过程中划分了很多VLAN,则可采用VTP来简化其管理。交换机管理IP地址只能创建在(1)中,而VTP信息只能在(2)端口上传播。共享相同VLAN数据库的交换机构成一个(3)。不同交换机平台、不同的IOS版本支持的VLAN数量不同,从图6-18
阅读以下关于某硬件防火墙相关配置的技术说明,根据要求回答问题1至问题4。【说明】某单位在部署内部局域网时选用了一款硬件防火墙,该防火墙分别带有“WAN”、“LAN”“DMZ”、“FUN”等4个网络接口,支持Web界面、命令行等多种管理模式。该单位
非对称数字用户线(AsymmetricDigitalSubscriberLine,ADSL)是一种利用现有的传统电话线路高速传输数字信息的技术。ADSL技术可以充分利用现有铜线网路,只要在用户线路两端加装ADSL设备即可为用户提供服务。ADSL系统构
依据给出的可选设备进行选型,将(1)~(5)处空缺的设备名称填写在相应位置将(6)~(8)处空缺的介质填写在相应位置(所给介质可重复选择)。
请用100字以内的文字说明该网管软件项目采用快速原型开发方法的优缺点。请指出图7-15可能存在的关键路径是什么?(请用英文字母序号列出)
随机试题
工业企业其他业务收入包括的项目有()
砒石的主治是
胎儿娩出后,压迫宫底,牵引脐带易引起隐性出血常见的原因是
细粒棘球蚴病主要的传染源是
某女,停经55天,恶心呕吐5天,呕吐清涎,神疲乏力,舌淡苔白,脉缓滑无力,尿妊娠试验阳性。治宜( )。
某建筑基坑采用排桩作为支护结构,如图9.6.4所示,排桩桩长为9m,地基土为均质砂土,坑底采用集水井进行排水。已知砂土的饱和重度为18kN/m3,取γw=10kN/m3。按《建筑地基基础设计规范》作答。试问:为满足抗渗流稳定性,排桩嵌固深度t(
从长期偿债能力来讲,有形资产净值债务率越低越好。( )
社会主义法治的重要使命是()
在关系数据库中,描述全局数据逻辑结构的是。
Theblind,overweightpatientinthewheelchairhasterriblepaininherbackandburningpaininherlegs.Shealsohasadvance
最新回复
(
0
)