首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
(2012年上半年下午试题五)阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 某咖啡店卖咖啡时,可以根据顾客的要求在其中加入各种配料,咖啡店会根据所加入的配料来计算费用。咖啡店所供应的咖啡及配料的种类和价格
(2012年上半年下午试题五)阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 某咖啡店卖咖啡时,可以根据顾客的要求在其中加入各种配料,咖啡店会根据所加入的配料来计算费用。咖啡店所供应的咖啡及配料的种类和价格
admin
2018-07-27
15
问题
(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
软件设计师下午应用技术考试
软考中级
相关试题推荐
从下列的2道试题(试题5、试题6)中任选1道解答。如果解答的试题数超过1道,则题号小的1道解答有效。请认真阅读下列有关于路由器配置的技术说明,根据要求回答问题1至问题5。【说明】菜地市级水电站网络除了和远程子网172.20.0.0/24
阅读以下有关网络设备安装与调试的叙述,分析设备配置文件,回答问题1~3。虚拟局域网(VirtualLAN)是与地理位置无关的局域网的一个广播域,由一个工作站发送的广播信息帧只能发送到具有相同虚拟网号的其他站点,可以形象地认为,VLAN是在物理局域
阅读以下有关网络设计的叙述,分析网络结构,回答问题1、问题2和问题3。某企业从20世纪50年代中期开始使用PC,历经3+网络、NOVELL网络的应用,后着手组建企业网络。经过需求分析和论证,设计出网络方案如图3-2所示。
将图2-2中(1)和(2)空缺名称填写在对应的解答栏内。目前在使用ADSL访问Internet时,要不要收取电话费?
将图2-2中(1)和(2)空缺名称填写在对应的解答栏内。ADSL有哪两种IP地址的分配方式?
阅读以下关于RIP动态路由配置的技术说明,结合网络拓扑图回答问题1至问题3。[说明]某大学城局域网的网络拓扑结构如图7-18所示,图中路由器R1、R2,R3均运行基于距离矢量算法的RIP路由协议,并且图中给出了路由器R1、R2、R3各端口的IP地
由于面向3G移动电话的电子商务网站看不到用户进行销售服务,因此,对用户身份进行认证是必要。通常,在Internet中进行电子签名的认证过程如下:①文件的发送者将要发送的文件生成(1);②用发送者的(2)对摘要加密后,将其添加到文件中;
在安装RedhatLinux9.0操作系统的过程中,如果没有选择安装Web服务器,Apache服务器则需要手动安装。现从http://httpd.apache.org网站上免费下载了一个apache-2.2.3RPM格式的软件包,请将以下(1)空缺处
随机试题
网上直接市场调查
胃癌多见于胃溃疡多见于
A.继发反应B.后遗效应C.变态反应D.副作用E.毒性反应停药后血药浓度已降至最低有效浓度以下时仍残存的药理效应称为()。
全面风险管理模式阶段强调信用风险、()和操作风险并举,组织流程再造与定量分析技术并举的全面风险管理模式。
金融机构应按照规定期限保存客户身份资料和客户交易信息,其中客户身份资料在业务关系结束后至少保存()年;客户交易信息在交易结束后至少保存()年。
避免教学中的性别偏向有多个需要注意的方面。比如,在课堂上,教师要给予男女生同样多的注意,对男女生的提问次数、问题性质要差不多,对男女生所给予的反馈质量、数量也要相当。这里讲的是()。
犯罪构成客观要件中的选择要件包括()。
下列属于资本市场的有()
下列关于法律部门划分的表述不能够成立的是()。
A、Heisadirectorinthecompany.B、Heisunqualifiedforhisjob.C、Heisthemanager’sclosefriend.D、Heisarelativeofth
最新回复
(
0
)