信管网试题内容
信管网 导航

试卷名称:2012年上半年软件设计师考试下午真题试题(案例分析)

考试年份:2012年上半年

试题来源:《2012年上半年软件设计师考试下午真题试题(案例分析)》在线考试

试题内容

阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。
【说明】

某咖啡店当卖咖啡时,可以根据顾客的要求在其中加入各种配料,咖啡店会根据所加入的配料来计算费用。咖啡店所供应的咖啡及配料的种类和价格如下表所示。

咖啡
格/杯
配  料
格/份
蒸馏咖啡(Espresso)
25
摩卡(Mocha)
10
深度烘焙咖啡(DarkRoast)
20 奶泡(Whip)
8

现采用装饰器(Decorator)模式来实现计算费用的功能,得到如图5-1所示的类图

【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*beverage) { this->beverage=beverage; }
string getDescription( ) {return beverage->getDescription( )+",Whip"; }
int cost( ) { return WHIP_PRICE+beverage->cost( ); }
};

int main() {
Beverage* beverage = new DarkRoast( );
beverage=new Mocha( (5) );
beverage=new Whip( (6) );
cout return 0;
}
编译运行上述程序,其输出结果为:
DarkRoast, Mocha, Whip ¥38
参考答案:暂时没有答案(仅供参考) 收藏

【解析】

普通会员无法查看试题解析。[开通试题解析服务]