导航
您当前的位置:首页 > 计算机 > 软件水平
问题:

[问答题] 某咖啡店当卖咖啡时,可以根据顾客的要求在其中加入各种配料,咖啡店会根据所加入的配料来计算费用。咖啡店所供应的咖啡及配料的种类和价格如下表所示。中级软件设计师,历年真题,2012年上半年(下午)《软件设计师》真题现采用装饰器(Decorator)模式来实现计算费用的功能,得到如图5-1所示的类图中级软件设计师,历年真题,2012年上半年(下午)《软件设计师》真题【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_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<<beverage->getDescription(  )<<"¥"<<beverage->cost(  )endl;return 0;}编译运行上述程序,其输出结果为:DarkRoast,Mocha,Whip¥38
答案解析:

相关问题
关于我们 | 用户指南 | 版权声明 | 给我留言 | 联系我们 | 积分商城 | 答案求助 | 网站地图
Copyright © 2024 www.daanwo.com All Rights Reserved