阅读下列说明和C++代码。[说明]某大型商场内安装了多个简易的纸巾售卖机,自动出售2

题型:填空题

问题:

阅读下列说明和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)处应填()。

考点:计算机软件水平考试中级软件设计师中级软件设计师2011下半年下午试题
题型:填空题

下列有关当今国际形势特点的概括,不正确的是(    )

A.和平与发展是主流

B.地区性冲突有所增加

C.世界形势趋于紧张

D.世界格局向多极化方向发展

题型:填空题

资产负债表和损益表都是反映企业特定日期财务状况的会计报表。()

题型:填空题

动平衡是使转子在旋转时,检查转子的不平衡因素,并设法消除其不平衡()。

A.力量

B.力矩

C.力臂

D.重量

题型:填空题

已知在双代号网络计划中,某工作有2项紧前工作,它们的最早完成时间分别为18天和23天。如果该工作的持续时间为6天,则该工作的最早完成时间为()

A.18天

B.23天

C.24天

D.29天

题型:填空题

“秦以前,民皆以金玉为印,龙虎钮,唯其所好。秦以来,天子独以印称玉玺,又独以玉,群臣莫敢用。”(《史记集解》)材料反映了()

A.秦朝时期人们以金玉为印

B.皇权至上,皇帝独尊

C.秦以前玉玺为皇帝独有

D.皇权为民,与民共享

更多题库