首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说明和C++代码。 [说明] 某大型商场内安装了多个简易的纸巾售卖机,自动出售2元钱一包的纸巾,且每次仅售出一包纸巾。纸巾售卖机的状态图如图5-1所示。 采用状态(State)模式来实现该纸巾售卖机,得到如图5-2所示的类图。其中类
阅读下列说明和C++代码。 [说明] 某大型商场内安装了多个简易的纸巾售卖机,自动出售2元钱一包的纸巾,且每次仅售出一包纸巾。纸巾售卖机的状态图如图5-1所示。 采用状态(State)模式来实现该纸巾售卖机,得到如图5-2所示的类图。其中类
admin
2012-03-21
38
问题
阅读下列说明和C++代码。
[说明]
某大型商场内安装了多个简易的纸巾售卖机,自动出售2元钱一包的纸巾,且每次仅售出一包纸巾。纸巾售卖机的状态图如图5-1所示。
采用状态(State)模式来实现该纸巾售卖机,得到如图5-2所示的类图。其中类State为抽象类,定义了投币、退币、出纸巾等方法接口。类SoldState、SoldOutState、NoQuarterState和HasQuarterState分别对应图5-1中纸巾售卖机的4种状态:售出纸巾、纸巾售完、没有投币、有2元钱。
[C++代码]
#include <iostream>
using namespace std;
//以下为类的定义部分
class TissueMachine; //类的提前引用
class State {
public:
virtual void insertQuarter()=0; //投币
virtual void ejectQuarter()=0; //退币
virtual void turnCrank()=0; //按下“出纸巾”按钮
virtual void dispense()=0; //出纸巾
};
/*类SoldOutState、NoQuarterState、HasQuarterState、SoldState的定义省略,
每个类中均定义了私有数据成员TissueMachine* tissueMachine;*/
class TissueMachine {
private:
(1) *soldOutState, *noQuarterState, *hasQuarterState,*soldState,
*state;
int count; //纸巾数
public:
TissueMachine (int numbers);
void setState (State* state);
State* getHasQuarterState();
State* getNoQuarterState()j
State* getSoldState();
State* getSoldOutState();
int getCount()j
//其余代码省略
};
//以下为类的实现部分
void NoQuarterState ::insertQuarter() {
tissueMachine->setState( (2) );
}
void HasQuarterState ::ejectQuarter() {
tissueMachine->setState( (3) );
}
void SoldState ::dispense() {
if (tissueMachine->getCount()>0) {
tissueMachine->setState( (4) );
}
else {
tissueMachine->setState( (5) );
}
} //其余代码省略
(1)
选项
答案
State
解析
转载请注明原文地址:https://www.kaotiyun.com/show/TeDZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
关于原型化开发方法的叙述中,不正确的是(20)。
(63)不属于网站渗透测试的内容。
若某条无条件转移汇编指令采用直接寻址,则该指令的功能是将指令中的地址码送入______。
用户可以通过http://www.a.com和http://www.b.com访问在同一台服务器上(70)不同的两个Web站点。
以下关于建立良好的程序设计风格的叙述中,正确的是()。
若某计算机系统是由500个元器件构成的串联系统,且每个元器件的失效率均为10-7/h,在不考虑其他因素对可靠性的影响时,该计算机系统的平均故障间隔时间为(5)h。
下图是责任链设计模式的类图,该设计模式的目的是________。该图中,Handler和Handler之间是关联关系,Handler和ConcreteHandler之间是继承关系。
函数main()、f()的定义如下所示。调用函数f()时,第一个参数采用传值(callbyvalue)方式,第二个参数采用传引用(callbyreference)方式,main()执行后输出的值为_______。
通常VLAN有静态和动态2种实现方式,这2种方式分别是如何实现的?各有什么特点?Switch1采用的是哪种实现方式?填充VLAN信息表如表9-3所示,将答案填写在答题纸相应位置。
对文法C[S]:S→a,|∧|(T);T→T,S|S;回答问题1~问题3。
随机试题
广西位于中国南部,毗邻云南、贵州、江西、湖南和广东。()
消防工作的中心任务是专注灭火救援的工作开展,一旦发生火灾要做到“灭得了”,最大限度地减少火灾造成的人员伤亡和财产损失,全力保障人民群众安居乐业和经济社会安全发展。()
阅读《御街行·秋日怀旧》,然后回答问题。御街行秋日怀旧作者:范仲淹纷纷坠叶飘香砌。夜寂静、寒声碎。真珠
“九流”是指先秦的九个学术流派:儒家、道家、阴阳家、法家、名家、墨家、杂家、________________和农家。
A.白喉杆菌B.结核分枝杆菌C.霍乱弧菌D.肺炎链球菌E.炭疽芽胞杆菌菌体细长弯曲,革兰染色阳性,亚甲蓝染色可见菌体内有异染颗粒的细菌是
建筑安装工程费用的构成中,社会保险费的计算基数是()。
近年来,我国许多城市禁止汽车使用含铅汽油,其主要原因是()。
科技创新与民生问题密切相关。下列表述错误的是:
一切从实际出发,就是要
世界上第一台电子数字计算机ENIAC是1946年研制成功的,其诞生的国家是___________。
最新回复
(
0
)