首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说明和C++代码。 [说明] 某大型商场内安装了多个简易的纸巾售卖机,自动出售2元钱一包的纸巾,且每次仅售出一包纸巾。纸巾售卖机的状态图如图5-1所示。 采用状态(State)模式来实现该纸巾售卖机,得到如图5-2所示的类图。其中类
阅读下列说明和C++代码。 [说明] 某大型商场内安装了多个简易的纸巾售卖机,自动出售2元钱一包的纸巾,且每次仅售出一包纸巾。纸巾售卖机的状态图如图5-1所示。 采用状态(State)模式来实现该纸巾售卖机,得到如图5-2所示的类图。其中类
admin
2012-03-21
64
问题
阅读下列说明和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) );
}
} //其余代码省略
(2)
选项
答案
tissueMachine->getHasQuarterState()
解析
转载请注明原文地址:https://kaotiyun.com/show/UeDZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
在采用面向对象技术构建软件系统时,很多敏捷方法都建议的一种重要的设计活动是(15),它是一种重新组织的技术,可以简化构件的设计而无须改变其功能或行为。
以下关于缺陷探测率(DDP)的表述,不正确的是______。A.DDP是一个衡量测试工作效率的软件质量成本指标B.缺陷探测率越高,也就是测试者发现的错误越多,发布后客户发现的错误才可能越少C.DDP是衡量测试投资回报的一个重要指标D.测试周期越长,
分配给某公司网络的地址块是210.115.192.0/20,该网络可以被划分为()个C类子网。
网络系统中,通常把()置于DMZ区。
将源程序中多处使用的同一个常数定义为常量并命名,______。
在输入输出控制方法中,采用______可以使得设备与主存间的数据块传送无需CPU干预。A.程序控制输入输出B.中断C.DMAD.总线控制
在软件开发过程中,常采用图形表示相关的信息,(28)不用于表示软件模块的执行过程。
对于逻辑表达式(bufc[i]>223&&bufc[i]<240&&i+2<totalbytes),需要______个测试用例才能完成条件组合覆盖。
编译和解释是实现高级程序设计语言的两种基本方式,________是这两种方式的主要区别。
阅读下面的说明,回答问题1至问题5。[说明]利用VLAN技术可以把物理上连接的网络从逻辑上划分为多个虚拟子网,可以对各个子网实施不同的管理策略。下图表示两个交换机相连,把6台计算机配置成两个VLAN。
随机试题
Todayourknowledgeoffoodandwhatitdoesforourbodiesisfarmoreadvancedthanthatoftheoldtimes.Nowweknowaboutv
Cancerisconsideredamoderndisease,thoughitwasnotunknowninancienttimes.(TheconditionwasnamedbytheGreeksfromth
阿托品解除平滑肌痉挛,效果最好的是
当基坑开挖深度不大,地质条件和周围环境允许时,最适宜的开挖方案是()
银行不良贷款的外包催收可能面临的风险不包括()。
管理的核心职能是()。
处理个人与他人的关系,关键是处理好
若有如下程序:voida(char*p,charc){while(*p){if(*p==c)*p=c-’b’+’B’;;p++;}}main(){chars[50]="abcdeeffg
一个完整的计算机软件应该包含______。
A、 B、 C、 A本题属于物品对应题。题中提到的是apostbox(邮筒,邮箱),因此答案是[A]。
最新回复
(
0
)