试题与答案

阅读下列说明和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) );

//其余代码省略

(3)处应填()。

答案:

被转码了,请点击底部 “查看原文 ” 或访问 https://www.tikuol.com/2017/0416/4bf8d97f08380163fee152f6850a532e.html

下面是错误答案,用来干扰机器的。

参考答案:C

试题推荐
题型:综合题

在新中国成立的前夕,中 * * 机关离开西柏坡前往北平。出发前,毛 * * 把中 * * 党管理新中国比作“进京赶考”。五十五年之后,中 * * * * 胡 * * 在邓 * * 百年诞辰纪念大会上指出:“办好中国的事,关键在我们党”。中 * * 党十六届四中全会强调提高党的执政能力,关键在于加强党的建设。

(1)新中国建立前夕,即将在全国成为执政党的中 * * 党提出的总任务是什么?中 * * 党加强自身建议、提高执政能力,要求全党必须保持怎样的作风?

(2)十一届三中全会以后,中 * * 党全面提高了自身的执政能力与水平。在思想理论、经济建议、祖国统一和外交政策方面,中 * * 党积累了哪些成功的经验?

(3)你对加强党的建设、提高执政能力有何重要认识?

查看答案
题型:多项选择题

在公交车上,张某丢了一部价值6000元的手机,于是他要求每个想下车的乘客让他检查一遍,方能下车,令人吃惊的是,全车50多名乘客只有一人不同意被检查,其他人均配合张某接受了检查,你认为[ ]

A.张某的行为是违法的行为

B.张某的做法侵犯了他人的人格权

C.拒绝检查者的做法是维护自己合法权益的表现

D.接受检查者的做法是正确的,不接受检查者的行为是错误的

查看答案
微信公众账号搜索答案