首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列函数说明和c++代码,将应填入(n)处的字句写在答题纸对应栏内。 【说明】 任何一种程序都是为了解决问题而撰写的,解决问题时需要实现一些特定的运算法则。在策略(Strategy)模式下,可以更换实现算法的部分而不留痕迹,切换整个算法,简化改为采用其
阅读下列函数说明和c++代码,将应填入(n)处的字句写在答题纸对应栏内。 【说明】 任何一种程序都是为了解决问题而撰写的,解决问题时需要实现一些特定的运算法则。在策略(Strategy)模式下,可以更换实现算法的部分而不留痕迹,切换整个算法,简化改为采用其
admin
2014-10-11
140
问题
阅读下列函数说明和c++代码,将应填入(n)处的字句写在答题纸对应栏内。
【说明】
任何一种程序都是为了解决问题而撰写的,解决问题时需要实现一些特定的运算法则。在策略(Strategy)模式下,可以更换实现算法的部分而不留痕迹,切换整个算法,简化改为采用其他方法来解决同样问题。以下是一个“剪刀石头布”游戏。猜拳时的“策略”有2种方法:第一种是“猜赢后继续出同样的招式”(WinningStrategy),第二种是“从上一次出的招式中,以概率分配方式求出下一个招式的几率”(ProbStrategy)。程序中定义了Hand类表示猜拳时的“手势”,类内部以O(石头)、1(剪刀)、2(布)来表示。Hand类的实例只会产生3个。以下是C++语言实现,能够正确编译通过。
【C++代码】
ClasS Hand{
private:
int handvalue;
StatiC Hand*hand0;
StatiC Hand*handl;
Static Hand*hand2:
(1):
Hand(int handvalue){
thiS一>handvalue=handvalue;
}
publiC:
(2)Hand*getHand(int handvalue)(
/*省略具体实现*/
}
};
Hand*Hand::hand0=new Hand(0);
Hand*Hand::handl=new Hand(1);
Hand*Hand::hand2=new Hand(2);
ClasS Strategy{
public:
(3)Hand*nextHand()=0;
};
class WinningStrategy :public strategy{
private:
boo1 won;
Hand*prevHand;
public:
WinningStrategy(){
won=false;
}
Hand*nextHand(){
if(!won){
prevHand=Hand::getHand(rand()%3);
}
return prevHand;
}
};
class probStrategy:public strategy{
public:
Hand*nextHand(){
int handvalue=0;
/*省略具体实现*/
return Hand::getHand(handvalue);
}
};
Class Player(
private:
string name;
Strategy*Strategy;
public:
Player(string name,(4)strategy){
thiS一>name=name;
thiS一>strategy=strategy;
}
Hand*nextHand()(//向战略请示手势
return (5);
}
};
选项
答案
(1)private(2)static(3)virtual (4)Strategy*(5)strategy一>nextHand()
解析
Hand类要保证只产生3个实例,就要求不能随便生成Hand类,因此其构造方法需要是private型的,故空(1)应填pnvate。先看空(3),由后面的“=0”易判知nexthand()函数是纯虚函数,故空(3)应填virtual。再来看空(2),由对getHand()方法的调用方式}land::gettland(1rand()%3)及}land::getHand(handvalue),可知该方法是类Hand的静态方法,故空(2)应填static。
由语句this一>strategy=strategy;可知:this一>strategy与strategy同数据类型,this表示自身指针,而this一>strategy是Strategy*类型,故空(4)应填Strategy*,注意是指针。方法nextHand0是“向战略请示手势”,取得手势足通过其所采用的“策略”实现的,故空(5)应填strategy一>nextHand0。注意指针写法。
转载请注明原文地址:https://www.kaotiyun.com/show/64DZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
假设系统有n(n≥5)个并发进程,它们竞争互斥资源R。若采用PV操作,当有3个进程同时申请资源R,而系统只能满足其中1个进程的申请时,资源R对应的信号量s的值应为_______。
目前,通过移动电话接人互联网采用的主要技术是什么?进行一次查询的数据信息如表9-1所示,网络的基本通信服务费用如表9-2所示,总费用=网络租用费+通信费。根据表中给出的数据,试计算销售员每月至少应进行多少次查询,才能使得使用移动电话的总费用比使用PDA
阅读以下说明,回答问题1和问题2。说明二层隧道协议L2TP(Layer2TunnelingProtocol)是一种基于点对点协议PPP的二层隧道协议。某网络结构如图5-1所示,采用L2TP来实现网络安全。
造成故障1的原因是什么?如何解决?1.路由器2上采用了NAT技术。NAT中的动态地址翻译和IP地址伪装有什么区别?2.图4-2是路由器2上的地址伪装表,将图4-2中(1)~(5)处空缺的信息填写在相应位置。
限制MailUser邮件主机里每个用户的邮箱大小不超过10MB,如何配置?IMail安装完成后,系统自动建立了一个名为root的用户,在默认情况下root用户是个失效的账号,如何设置使其生效?
限制MailUser邮件主机里每个用户的邮箱大小不超过10MB,如何配置?限制MailUser邮件主机里每个用户邮箱里所能存放的最多邮件数量不超过20个,如何配置?
根据图3-1所给出的网络连接方式及相关的网络参数,区域(A)与区域(B)中计算机的网络参数配置(如图3-2所示)为:区域(A)计算机“IP地址”(范围):(1):区域(A)计算机“子网掩码”;(2);区域(A)计算机“默认网关”:(
阅读以下说明,回答问题1至问题8。[说明]Linux系统开机引导时首先启动内核,由内核检查和初始化硬件设备,载入设备的驱动程序模块,安装root文件系统,然后内核将启动一个名为init的进程。在init运行完成并启动其他必要的后续进程后,
在校园网设计过程中,划分了很多VLAN,采用了VTP来简化管理。1.VTP信息只能在(1)端口上传播。2.运行VTP的交换机可以工作在三种模式:(2)、(3)、(4)。3.共享相同VLAN数据库的交换机构成一个(5)。该校园网在
随机试题
会计账簿
在PowerPoint2010p,若要在“幻灯片浏览”视图中选择多张不连续的幻灯片,应先按住()键。
A.ClrB.TpC.MICD.CpE.Clh
患者,男,35岁,3个月来发热,乏力,盗汗,食欲缺乏。查体;体重减轻,一般状况尚可。实验室检查:痰结核分枝杆菌阳性,初步诊断为肺结核收住入院。医嘱行PPD试验。PPD试验结果阳性的判定标准为皮肤硬结直径达
基金公司实行内部监察稽核的目的是()
产生“劣币驱逐良币”现象的货币制度是()。
甲公司是一家上市公司,注册资本1亿元。甲公司最近3个会计年度连续盈利,最近3年公司实现的年均可分配利润达到3000万元,自2008年以来没有以任何形式向股东分配利润。2011年2月1日,在公司股东大会上,董事会提交了如下议案:(1)增选公司董事的方案:鉴
已知某单模光纤的工作波长为1550nm,其传输损耗为0.2dB/km,试求传输多少公里后光功率下降为原来的一半?
给定资料材料1“某地医院出现人感染‘SK5’病毒死亡案例”“疫苗有害,为了孩子的健康,请远离疫苗”“生长期1个月,街头‘速成鸭’大都含激素”……2017年4月19日,北京地区网站联合辟谣平台和腾讯较真平台携手发布了《谣言易感人群分析报告
Formanyyears,Hawaiihasbeenamagicnametopeoplewholiketotravel.PeopleonbothsidesofthePacificOcean,inJapana
最新回复
(
0
)