首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 某大型商场内安装了多个简易的纸巾售卖机,自动售出2元钱一包的纸巾,且每次仅售出一包纸巾。纸巾售卖机的状态如图10.35所示。 采用状态(State)
阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 某大型商场内安装了多个简易的纸巾售卖机,自动售出2元钱一包的纸巾,且每次仅售出一包纸巾。纸巾售卖机的状态如图10.35所示。 采用状态(State)
admin
2018-07-25
63
问题
阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。
【说明】
某大型商场内安装了多个简易的纸巾售卖机,自动售出2元钱一包的纸巾,且每次仅售出一包纸巾。纸巾售卖机的状态如图10.35所示。
采用状态(State)模式来实现该纸巾售卖机,得到如图10.36所示的类图。其中类State为抽象类,定义了投币、退币、出纸巾等方法接口。类SoldState、SoldOutState、NoQuarterState和HasQuarterState分别对应图10.35中纸巾售卖机的4种状态:售出纸巾、纸巾售完、没有投币、有2元钱。
【C++代码】
#inClude<iostream>
using namespace std;
//以下为类的定义部分
class TissueMachine; //类的提前引用
C1ass State{
public:
virtual void insertQuarter()=0; //投币
virtual void ejectQuarter()=0; //退币
virtual void turnCrank()=0; //按下“出纸巾”按钮
virtusl void dispense()=0; //出纸巾
};
/*类SoidOutState、NoQuarterState、HasQuarterState、SoldState的定义省略,
每个类中均定义了私有数据成员TissueMachine*tissueMachine*/class TiSsueMachine{
private:
____(1)*soldOutState,*noQuarterState,*hasQuarterState,*soldstate,*state;
int count; //纸巾数
public:
TissueMachine(int number);
void setState(State*state);
State* qetHasQuarterState();
State* qetNoQuarterState();
State* qetSoldState();
State* getSoldOutState();
int getCount();
//其余代码省略
};
//以下为类的实现部分
void NoQuarterState::insertQuarter(){
tissueMachine->setState____(2);
}
void HasQuarterstate::ejectQuarter()(
tissueMachine->setState____(3);
}
void SoldState::dispense(){
if(tissueMachine->getC0unt()>0){
tissueMachine->setState____(4);
}
else{
tissueMachine->setState____(5);
}
}
//其余代码省略
选项
答案
(1)State (2)tissueMachine->getHasQuarterState0或new HasQuarterState() (3)tissueMachine->getNoQuarterState0或new NoQuanerState() (4)tissueMachine->getNoQuarterState0或new NoQuarterState() (5)tissueMachine->getSoldoutState()或new SoldOutState()
解析
空(1):根据题意,本题使用的是状态模式,判断纸巾售卖机的状态,根据不同的状态执行不同的动作。State定义了纸巾售卖机所对应的一些状态,如售出纸巾、纸巾售完等。类SoldOutState、NoQuarterState、HasQuarterState、SoldState均由类State派生而来。
空(2):void insertQuarter()定义了一个“投币”的方法,即在“没有投币”状态下,用户投币的方法。tissureMachine->setState是改变纸巾售卖机的状态,此时,用户已投入2元钱,故将此时的状态改为“有2元钱”的状态,纸巾售卖机调用“有2元钱”状态的方法即可。
空(3):void ejectQuarter()定义了一个“退币”的方法,即在“有2元钱”状态下,用户按下退币按钮,纸巾售卖机将此时的状态改为“没有投币”状态,故直接调用getNoQuarterState()即可。
空(4):根据纸巾售卖机状态图可知,当售出纸巾并且纸巾数量仍大于0时,将返回“没有投币”状态。同空(3)的分析,此处应调用getNoQuarterState()。
空(5):根据纸巾售卖机状态图可知,当售出纸巾并且纸巾数量等于0时,将返回“纸巾售完”状态。此处用了if…else…判断语句,当纸巾数量仍大于0时,返回“没有投币”状态,否则,纸巾数量一定等于0。空(5)处是else下的一条语句,故此处是判断count为0时纸巾售卖机的状态,显然应调用getSoldOutState()。
转载请注明原文地址:https://kaotiyun.com/show/G7DZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
阅读以下说明,回答【问题1】~【问题4】,将解答填入空白处。【说明】某小型单位的网络图如图5所示,Cisco路由器有ISDN模块,单位通过ISDN连接Internet。ISDN是指近年来供最终用户使用的一套数字服务,包括电话网络的数字化,以便ISP
对一个大型校园网工程进行网络备份系统设计时,应考虑解决哪些主要的问题?请用150字以内的文字简要说明。某商务公司在全国各城市共有15个分支机构,这些机构已经建设了基于大型关系数据库的信息管理系统,每天负责独立地处理本区域内的业务并实时存储业务数据。每个
阅读以下交换机Switch01的部分配置信息,结合图2-8所示的网络拓扑图将(1)~(8)空缺处的内容(命令或解释)填写完整。Switch>enable(进入特权模式)S
阅读以下关于交换机VLAN配置的技术说明,根据要求回答问题1至问题3。【说明】某电子商务公司下设销售部、技术部、财务部等3个部门,为了便于管理,每个部门组成一个VLAN,每个VLAN的编号、所包含的服务器及主机名称见表2-3。该公司部分网络拓扑结
阅读以下在Windows2003操作系统中架构VPN的技术说明,根据要求回答问题1至问题5。【说明】某电子商务公司随着业务的不断发展,公司的员工人数也随之增加。该公司决定在技术部尝试采用虚拟公司的组织机构运行方式,仅允许员工user1~user
该企业网络的核心层采用了ATM技术,由3台ATM交换机互联构成。试对ATM网络技术的主要特点、协议分层结构和优点作简要叙述。(控制在100个字以内)图中用了两台路由器Router1,和Router2,简述路由器的技术特点,并说明Router1和Rout
目前,通过移动电话接入互联网所采用的主要技术是什么?进行一次查询的数据信息见表1-1,网络的基本通信服务费用见表1-2,总费用=网络租用费+通信费。根据表中给出的数据,试计算销售员每月至少应进行多少次查询,才能使得使用移动电话的总费用比使用PDA的总费
在安装RedhatLinux9.0操作系统的过程中,如果没有选择安装Web服务器,Apache服务器则需要手动安装。现从http://httpd.apache.org网站上免费下载了一个apache-2.2.3RPM格式的软件包,请将以下(1)空缺处
在安装RedhatLinux9.0操作系统的过程中,如果没有选择安装Web服务器,Apache服务器则需要手动安装。现从http://httpd.apache.org网站上免费下载了一个apache-2.2.3RPM格式的软件包,请将以下(1)空缺处
为了便于用户下载相关资料,特安装一台FTP服务器,其服务器端软件是Serv-U,假如要增加一个名为CIU10009的用户,对应目录为D盘,且要求加密,在图6-4中怎么设置?假如要封闭某用户的账号,请问在图6-4中怎么设置?
随机试题
患者,男性,肺心病,因肺部感染入院,血气分析结果:pH7.33,PaCO29.3kPa(70mmHg),HCO3-36mmol/L。由于治疗不当而使疾病加重时,可应用
关于药物流行病学的叙述,不正确的是:
鉴别肾盂肾炎或膀胱炎最有意义的是
能抑制脱氧胸苷酸合成酶的药物是氟尿嘧啶。()
从2006年1月1日起,曹小姐发现自己基本养老保险中个人账户的缴费比例发生了变化,其规模统一由本人缴费工资的11%调整为()。
下列杂剧不是关汉卿所作的是()。
幼儿园的环境创设主要是指()。
设f(x)在[a,+∞)上连续,f(a)
设A、B为任意两个事件,且AB,P(B)>0,则下列选项必然成立的是()
以下是学生选课系统中“学生查询成绩”交互行为的描述,请按要求回答问题。交互开始时终端上显示首页,用户选择“查询”请求后,显示“请输入学号”。在用户输入学号后,系统核对学生学号:若输入的学号不正确,则显示“输入的学号不正确”,此次查询取消,回
最新回复
(
0
)