首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说明SDC++代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 某大型商场内安装了多个简易的纸巾售卖机,自动售出2元钱一包的纸巾,且每次仅售出一包纸巾。纸巾售卖机的状态如图16.6所示。 采用状态(State)
阅读下列说明SDC++代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 某大型商场内安装了多个简易的纸巾售卖机,自动售出2元钱一包的纸巾,且每次仅售出一包纸巾。纸巾售卖机的状态如图16.6所示。 采用状态(State)
admin
2014-11-13
52
问题
阅读下列说明SDC++代码,将应填入(n)处的字句写在答题纸的对应栏内。
【说明】
某大型商场内安装了多个简易的纸巾售卖机,自动售出2元钱一包的纸巾,且每次仅售出一包纸巾。纸巾售卖机的状态如图16.6所示。
采用状态(State)模式来实现该纸巾售卖机,得到如图16—7所示的类图。其中类State为抽象类,定义了投币、退币、出纸巾等方法接口。类SoldState、SoldOutState、NoQuarterState和HasQuarterState分别对应图16—4中纸巾售卖机的4中状态:售出纸巾、纸巾售完、没有投币、有2元钱。
【C++代码】
#include
USing namespace Std;
//以下为类的定义部分
Class TissueMachine; //类的提前引用
C1ass State{
publ iC:
virtual void insertQuar七er()=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,*hasQuartersta七e,*soldState,*state;
int count; //纸巾数
publ ic:
Ti S sueMachine(int number);
void setState(State*state);
State* getHasQuarterState();
State*getNoQuarterState();
State*getSoidState();
State*getS01dOurState();
int getCount();
//其余代码省略
};
//以下为类的实现部分
void NoQuarterState::inserQuarter()(
tissureMachine->setState(2) ;
}
void HasQuarterstate::ej ectQuarter(){
tissureMachine->setState(3) ;
}
void SoldState::dispense()(
i f(ti SsueMachine一>getCount()>0)(
tissureMachine->setState(4);
}
e1Se{
tissureMachine->setState(5);
}
}
//其余代码省略
选项
答案
(1)State (2)tissueMachine->getHasQuarterState0或new HasQuarterState (3)tissueMachine->getNoQuarterState0或new NoQuarterState (4)tissueMachine->getNoQuarterState0或new NoQuarterState (5)tissueMachine->getS0ldoutState()或new So|dOutState
解析
(1)根据题意,本题使用的是状态模式,判断纸巾售卖机的状态,根据不同的状态执行不同的动作。State定义了纸巾售卖机所对应的一些状态,售出纸巾、纸巾售完等状态。类SoldOutState、NoQuarterState、HasQuarterState、SoldState均有类State派生而来。
(2)void insertQuarter()定义了一个“投币”的方法:在没有“2元钱”时,客户投币的方法。tissureMachine.setState是改变纸巾售卖机的状态,此时,客户已投入2元钱,故将此时的状态改为“有2元钱”的状态,纸巾售卖机调用“有2元钱”状态的方法即可。
(3)void ejectQuarter0定义了一个“退币”的方法:在有2元钱的状态下,用户按下退币按钮,纸巾售卖机将此时的状态改为“没有投币”状态,故直接调用getNoQulnerState()即可。
(4)根据纸巾售卖机状态图可知,当售出纸巾,并且纸巾数量仍大于0时,将返回“没有投币”状态,同第(3)小题的分析,此处应调用getNoQuarterState0。
(5)根据纸巾售卖机状态图可知,当售出纸巾,并且纸巾数量等于0时,将返回“纸巾售完”状态,此处用了if…else…判断语句,当纸巾数量仍大于0时,返回“没有投币”状态,否则,纸巾数量一定等于0,本段程序第(5)空是else下的一条语句,故此处是判断count为0时,纸巾售卖机的状态,显然,应调用getSoldOutState0。
转载请注明原文地址:https://kaotiyun.com/show/k4DZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
阅读以下说明和交换机的配置信息,回答问题1至问题3,将解答填入答题纸的对应栏内。[说明]某公司设3个部门,为了便于管理,每个部门组成1个VLAN,公司网络结构如图9-4所示。[交换机Switch1的部分配置信息]Switch
阅读以下说明,回答问题1至问题4,将解答填入答题纸的对应栏内。[说明]A公司用1台Web服务器和1台应用服务器来管理销售信息。销售人员在办公室时通过PC机来访问应用服务器,若在公司以外,则通过具有数据显示功能的移动电话或PDA(Perso
阅读以下说明,回答问题1和问题2。说明二层隧道协议L2TP(Layer2TunnelingProtocol)是一种基于点对点协议PPP的二层隧道协议。某网络结构如图5-1所示,采用L2TP来实现网络安全。
限制MailUser邮件主机里每个用户的邮箱大小不超过10MB,如何配置?IMail安装完成后,系统自动建立了一个名为root的用户,在默认情况下root用户是个失效的账号,如何设置使其生效?
同一个VLAN中的成员可以形成一个广播域,从而实现何种功能?若网络用户的物理位置需要经常移动,应采用什么方式划分VLAN?
同一个VLAN中的成员可以形成一个广播域,从而实现何种功能?将Switcbl的端口6划入v2的配置命令如下,请给出空白处的配置内容:Switch1(config)#interfacefastEthemet0/6(进入端口6配置模式)S
同一个VLAN中的成员可以形成一个广播域,从而实现何种功能?使Switch1的千兆端口允许所有VLAN通过的配置命令如下,请给出空白处的配置内容:Switchl(config)#interfacegigabit0/1(进入千兆端口配置模式)
阅读以下说明,回答问题1~7。[说明]下图是在网络中划分VLAN的连接示意图。VLAN可以不考虑用户的物理位置,而根据功能、应用等因素将用户从逻辑上划分为一个个功能相对独立的工作组,每个用户主机都连接在支持VLAN的交换机端口上,并属于某个VLA
网络设计流程通常由以下五个阶段组成:A.确定网络物理结构B.确定网络逻辑结构C.对现有网络的体系结构进行分析D.安装和维护E.需求分析根据网络开发设计的过程,给出上述五个阶段的先后排序:(1)。为上
阅读以下关于Linux网关安装和配置过程的说明,回答问题1至问题5。【说明】当局域网中存在大量计算机时,根据业务的不同,可以将网络分成几个相对独立的子网。图12-2是某公司子网划分的示意图,整个网络被均分为销售部和技术部两个子网,子网之间通过一台
随机试题
营养物质的主要吸收部位是()
对地西泮错误的叙述是
《电子废物污染环境防治管理办法》,自()起施行。
各单位在预算管理中的职权主要包括()。
2017年7月1日,A、B两公司签订了一份价值,100万元的货物买卖合同。合同约定:A公司于2017年7月15日向B公司交付全部货物,交付地点为B公司仓库;B公司在验货合格后10日内一次性支付全部货款;任何一方如违约,应向守约方支付违约金10万元。合同订立
根据民事诉讼法律制度的规定,申请执行的期限为()。
项目信息系统是组织战略的重要子系统,其主要作用就是保障组织内各子系统间的沟通以及组织与外部的沟通,所以信息系统的战略规划必须符合组织战略。系统开发计划主要是针对已确定的开发策略选定相应的开发方法。选定开发方法时必须注意这种方法所适用的开发环境、所需要的计算
对民主社会主义认识正确的是()。①最初的民主社会主义是资本主义社会主义②民主社会主义是马克思社会主义的分支③民主社会主义否认了社会制度的客观性④民主社会主义肯定了工人阶级的领导地位⑤民主社会主义把社会主义看成是一种道德需要、道德抗议,否
左边给定的是纸盒的外表面,下列哪一项能由它折叠而成?
车辆购置税的纳税环节是()。
最新回复
(
0
)