首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说明SDC++代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 某大型商场内安装了多个简易的纸巾售卖机,自动售出2元钱一包的纸巾,且每次仅售出一包纸巾。纸巾售卖机的状态如图16.6所示。 采用状态(State)
阅读下列说明SDC++代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 某大型商场内安装了多个简易的纸巾售卖机,自动售出2元钱一包的纸巾,且每次仅售出一包纸巾。纸巾售卖机的状态如图16.6所示。 采用状态(State)
admin
2014-11-13
47
问题
阅读下列说明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://www.kaotiyun.com/show/k4DZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
阅读以下说明,回答问题1和问题2。说明二层隧道协议L2TP(Layer2TunnelingProtocol)是一种基于点对点协议PPP的二层隧道协议。某网络结构如图5-1所示,采用L2TP来实现网络安全。
阅读以下说明,回答问题1至问题3,将解答填入答题纸对应的解答栏内。说明网络解决方案如图4-1所示。该网络原先使用的是国外品牌的交换机,随着网络规模的扩大,增添了部分国产品牌的交换机,交换机1至交换机5均是国产10M/100M自适应交换机,交换机6
阅读以下说明,回答问题1至问题6。说明ADSL是接入Internet的一种宽带技术。图2-1为一台带网卡的PC机采用ADSL接入Internet的网络结构图。
阅读以下说明,回答问题1至问题3。[说明]某公司规模扩大,既要考虑保证目前土建装修的效果不被破坏,又要满足网络扩容和企业工作实际需求,同时还要保证投资不要过大。经过深入分析和研究对比,决定采用无线局域网组网来解决网络扩容的问题,网络拓扑如图1-1
同一个VLAN中的成员可以形成一个广播域,从而实现何种功能?使Switch1的千兆端口允许所有VLAN通过的配置命令如下,请给出空白处的配置内容:Switchl(config)#interfacegigabit0/1(进入千兆端口配置模式)
SSL协议使用(1)密钥体制进行密钥协商。在IIS5.0中,Web服务器管理员必须首先安装Web站点数字证书,然后Web服务器才能支持SSL会话,数字证书的格式遵循ITU-T(2)标准。通常情况下,数字证书需要由(3)颁发。如果Web服务器管理员希望W
FTTx+LAN接入方式采用什么拓扑结构?本方案采用DHCP来分配网络地址。DHCP是(4)协议的一个扩展,便于客户自动从服务器获取IP地址和相关设置,其中实现IP地址动态分配的过程如下:(下面①到④未按顺序排列)①客户设置服务器ID和IP地址
在“管理工具”中运行“管理IP筛选器列表”,创建一个名为“SNMP消息”的筛选器。在如图12-3所示的“IP筛选器向导”中指定IP通信的源地址,下拉列表框中应选择(1);在如图12-4中指定IP通信的目标地址,下拉列表框中应选择(2)。在图
在“管理工具”中运行“管理IP筛选器列表”,创建一个名为“SNMP消息”的筛选器。在如图12-3所示的“IP筛选器向导”中指定IP通信的源地址,下拉列表框中应选择(1);在如图12-4中指定IP通信的目标地址,下拉列表框中应选择(2)。在图
阅读以下关于Linux网关安装和配置过程的说明,回答问题1至问题5。【说明】当局域网中存在大量计算机时,根据业务的不同,可以将网络分成几个相对独立的子网。图12-2是某公司子网划分的示意图,整个网络被均分为销售部和技术部两个子网,子网之间通过一台
随机试题
试述在创造社会价值中实现自我价值。
认为决策要完全依据其后果或结果做出,是下述四种道德观的()
男性,70岁,高血压病患者,BP170/90mmHg,根据中国高血压病治疗指南,他的血压应降到
手术时切口在睑皮肤面,与睑缘平行的疾病是
母乳喂养的优点应除外
收益乘数法是将()乘以相应的收益乘数转换成价值的方法。
再就业培训的主要对象不包括()。
阅读材料,完成下列要求。材料一《孟子》中记载了孟子与其学生关于法律问题的讨论。学生问:“舜做了天子后,假如其父杀人,舜的法官该怎么办呢?”孟子回答:“抓起来就行了。”学生又问:“难道舜不阻止法官吗?”孟子说:“舜怎么能阻止呢?法官是按职责办事
评述下述案例中的教育内容、教育方法和师生关系。(2009年)某班有个名叫张亮的9岁小男孩,患有轻度小儿麻痹症,是全班捉弄的对象。他松不开夹克衫拉链,课间休息,在操场上做游戏动作不协调,诸如此类的事情常使他遭到同学的取笑,每当张亮遭到嘲笑和捉弄时,
下列与进程相关的信息中,哪些信息是保存在进程控制块(PCB)中的?()
最新回复
(
0
)