首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
(2012年上半年下午试题五)阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 某咖啡店卖咖啡时,可以根据顾客的要求在其中加入各种配料,咖啡店会根据所加入的配料来计算费用。咖啡店所供应的咖啡及配料的种类和价格
(2012年上半年下午试题五)阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 某咖啡店卖咖啡时,可以根据顾客的要求在其中加入各种配料,咖啡店会根据所加入的配料来计算费用。咖啡店所供应的咖啡及配料的种类和价格
admin
2018-07-27
12
问题
(2012年上半年下午试题五)阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。
【说明】
某咖啡店卖咖啡时,可以根据顾客的要求在其中加入各种配料,咖啡店会根据所加入的配料来计算费用。咖啡店所供应的咖啡及配料的种类和价格如表10.9所示。
现采用装饰器(Decorator)模式来实现计算费用的功能,得到如图10.29所示的类图。
【C++代码】
#include<iostream>
#include<string>
using namespace std;
const int ESPRESSO_PRICE=25;
const int DRAKROAST_PRICE=20 ;
const int MOCHA_PRICE=10;
const int WHIP_PRICE8;
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*beverage){this->beverage=beverage;}
string getDescription() {return beverage->getDescription()+’’,Whip’’; }
int cost() ( return WHIP PRICE+beverage->cost(); }
};
int msin() {
Beverage*beverage=new DarkRoast();
beVerage=new Mocha(______(5));
beVerage=new Whip( ______(6));
cout<<beverage->getDescription()<<’’¥’’<<beverage->cost()<<end1;
return 0;
}
编译运行上述程序,其输出结果为:
DarkRoast,Mocha,Whip,¥38
选项
答案
(1)protected (2)virtual string getDescription (3)virtual int cost()=0 (4)Beverage*beverage (5)beverage (6)beverage
解析
由类图可知,Beverage是基类,Espresso、DarkRoast、CondimentDecorator是Beverage的派生类,Mocha、Whip又是CondimentDecorator的派生类。
空(1)处应填入description的访问控制类型,可能为private或protected。在Beverage的派生类Espresso的初始化函数中直接使用了description,由此可知,在基类中,description的访问控制类型为protected。如果为private,则在派生中不能使用。
在基类中先后动态建立了一个DarkRoast对象、Mocha对象和Whip对象,调用初始化函数,输出在Mocha类和Whip类中分别调用了基类的getDescription()和cost()。
空(2)处和空(3)处考查构造函数的定义。从空(2)处构造函数体中返回值的类型及后续的子类继承程序可知,空(2)处应填入virtual string getDescription;从public int cost() {retum ESPRESSO_PRICE;}可以看出,cost()函数的返回值为常量,因此空(3)处应填入virtual int cost()。
空(4)处考查对CondimentDecorator的定义,在该类中声明一类成员变量,并在this->beverage=beverage和retum beverage->getDescription()+’’,Mocha’’中加以使用。因此空(4)处应填入Beverage*beverage。
空(5)处和空(6)处考查实例化类模板的方法。类模板必须在实例化后才能使用。实例化类模板时,要给出类型实参。从类图可知,空(5)处和空(6)处均应填入beverage。
转载请注明原文地址:https://kaotiyun.com/show/O7DZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
阅读以下说明,回答问题1、问题2、问题3、问题4和问题5,将解答填入对应栏内。[说明]以太网宽带接入方式是目前许多居民小区所普遍采用的,其方式为所有用户都通过一条主干线接入Internet,每个用户均配备个人的私有IP地址,用户只需将小区
从图7-1中可以看出采用什么拓扑结构与设计方法?上述拓扑结构的特点是什么?
将图2-2中(1)和(2)空缺名称填写在对应的解答栏内。按照G.lite的最高速率标准,上传24MB的文件需要多少秒时间?
将图2-2中(1)和(2)空缺名称填写在对应的解答栏内。ADSL有哪两种IP地址的分配方式?
阅读以下说明,回答问题1~6。【说明】ADSL是接入Internet的一种宽带技术,如图2-2所示为一台带网卡的PC机采用ADSL接入Internet的网络结构图。
目前,通过移动电话接入互联网所采用的主要技术是什么?进行一次查询的数据信息见表1-1,网络的基本通信服务费用见表1-2,总费用=网络租用费+通信费。根据表中给出的数据,试计算销售员每月至少应进行多少次查询,才能使得使用移动电话的总费用比使用PDA的总费
Samba的工作原理是:让(1)和NetBIOS这两种协议运行于TCP/IP通信协议之上,且通过Windows的(2)协议让用户的Linux计算机可以在Windows的网络邻居上被看到。Samba服务器配置工具是用来管理Samba共享、用户及基本服
阅读以下基于Linux操作系统部署DHCP服务的技术说明,根据要求回答问题1至问题3。【说明】某地市图书馆内部局域网划分为办公区、电子阅览室、无线阅览室等3个VLAN,并通过一台带防火墙模块的路由器与Internet网互连。为了便于整个局域网IP
随机试题
某金融机构2009年购入甲乙两种债券,它们面额相同(10000元),票面收益率相同(10%)、期限相同(10年),但由于某种原因,两者市场价格不同(甲10000元,乙9000元),而甲、乙两种债券到期都同样兑付10000元本金。影响商业银行投资决策的因
颞下颌关节脱位病历中,以哪种类型最常见
孙络是络脉中最细小的分支,有“溢奇脉”、“通营卫”的作用。()
在设计火灾时,应分析和确定建筑物的基本情况,其中不包括()
根据企业所得税法律制度的规定,下列关于企业清算的所得税处理的表述中,正确的有()。
比纳—西蒙测验属于()。
凯恩斯主义
解释程序的功能是______。
在Java中,实现线程组的类是()。
Althoughhehaslivedwithusforyears,he______usmuchimpression.
最新回复
(
0
)