首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 某大型商场内安装了多个简易的纸巾售卖机,自动售出2元钱一包的纸巾,且每次仅售出一包纸巾。纸巾售卖机的状态如图10.35所示。 采用状态(State)
阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 某大型商场内安装了多个简易的纸巾售卖机,自动售出2元钱一包的纸巾,且每次仅售出一包纸巾。纸巾售卖机的状态如图10.35所示。 采用状态(State)
admin
2018-07-25
31
问题
阅读下列说明和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://jikaoti.com/ti/yFi7FFFM
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
阅读以下说明,回答问题1和问题2。【说明】某学校拟组建一个小型校园网,具体设计如下:1.设计要求。(1)终端用户包括:48个校园网普通用户;一个有24个多媒体用户的电子阅览室;一个有48个用户的多媒体教室(性能要求高于电子阅
阅读以下-基于代理服务器的ADSL宽带接入的技术说明,根据要求回答问题1至问题5。【说明】非对称数字用户线(AsymmetricDigitalSubscriberLine,ADSL)是一种利用现有的传统电话线路高速传输数字信息的技术。某单位
阅读以下在Windows2003操作系统中架构VPN的技术说明,根据要求回答问题1至问题5。【说明】某电子商务公司随着业务的不断发展,公司的员工人数也随之增加。该公司决定在技术部尝试采用虚拟公司的组织机构运行方式,仅允许员工user1~user
阅读以下说明然后完成问题1、问题2、问题3、问题4,把答案填入相应的对应栏内。[说明]如图10-1是Cisco1900交换机划分为两个vain拓扑图,把E0/10划分为vlan2,把E0/20划分为vlan3。[*]
请说出图9-1的拓扑结构名称与特点。根据IP地址与子网掩码,请判断它们是否属于同一个网段?如果不是,请说出他们分别属于哪个网段。
请问无线局域网的工作模式有哪几种?平时所用的手机可漫游在不同的基站之间,WLAN工作站也可漫游,请问WLAN的“漫游”含义是什么?
请指出现有虚拟局域网络的4种划分方式。以下为Cisco以太网交换机Catalyst2924(ws-c2924xlA,拥有24个10/100Mbit/s自适应端口)的VLAN划分命令,请解释(1)~(3)处的标有下划线部分配置命令的含义。(“//”后为
请指出现有虚拟局域网络的4种划分方式。在基于端口的VLAN划分中,交换机上的每一个端口允许以哪3种模式划入VLAN中,并简述它们的含义。
阅读以下有关网络设计的叙述,分析网络结构,回答问题1、问题2和问题3。某企业从20世纪50年代中期开始使用PC,历经3+网络、NOVELL网络的应用,后着手组建企业网络。经过需求分析和论证,设计出网络方案如图3-2所示。
阅读以下关于FTTC宽带接入Internet的技术说明,根据要求回答问题1至问题5。【说明】光纤接入网(OpticalAccessNetwork,OAN)是以光纤为传输媒体,并利用光波作为光载波传送信号的接入网。FTTC+LAN是实现居民宽带
随机试题
子痫之证,出现颜面潮红,心悸烦躁,神昏抽搐等,治法应为:
甲癣最多见的类型为
医学伦理学的无伤害原则,是指
甲申请了一种立体挂历的外观设计专利,其应当与申请日前的现有外观设计不相同,下列情况中哪些应属于外观设计的不相近似范围?()
某设备原值为50000元,预计净残值为2000元,预计可使用8年。若该设备采用年数总和法计提折旧,则其第一年的年折旧率为()。
魏晋时期,对儒家思想信仰的怀疑,对人生意义的探求,促使魏晋玄学的出现。当时的士大夫把()和称为“三玄”。
在采用直接标价的前提下,如果需要比原来更少的本币就能兑换一定数量的外国货币,这表明()。
情景:明天全班同学去参加植树活动任务:请你以班长的身份拟写一个书面通知,告诉他们:.明天是植树节,天气暖和。你们不上课,去公园植树。.早晨八点在学校门口集合,骑自行车去。.中午在那里吃饭,请带好水和食物请用下面格式。NOTICE…………
Earth:MeltingintheHeat?Glaciersaremelting;theicecapsaredisappearingintotheoceans;sealevelsmayrisebymany
Judgeswillnormallyinterpretcontractsstrictlyandwillusecertainprincipleswhenit______(解决意思前后矛盾、模菱两面可的问题时).
最新回复
(
0
)