首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说明和C++代码,应填入(n)处。 【说明】 某游戏公司现欲开发一款面向儿童的模拟游戏,该游戏主要模拟现实世界中各种鸭子的发声特征、飞行特征和外观特征。游戏需要模拟的鸭子种类及其特征如表10-6所示: 为支持将来能够模拟更多
阅读下列说明和C++代码,应填入(n)处。 【说明】 某游戏公司现欲开发一款面向儿童的模拟游戏,该游戏主要模拟现实世界中各种鸭子的发声特征、飞行特征和外观特征。游戏需要模拟的鸭子种类及其特征如表10-6所示: 为支持将来能够模拟更多
admin
2008-08-01
69
问题
阅读下列说明和C++代码,应填入(n)处。
【说明】
某游戏公司现欲开发一款面向儿童的模拟游戏,该游戏主要模拟现实世界中各种鸭子的发声特征、飞行特征和外观特征。游戏需要模拟的鸭子种类及其特征如表10-6所示:
为支持将来能够模拟更多种类鸭子的特征,采用策略设计模式(Strategy)设计的类图如图10-11所示:
其中,Duck为抽象类,描述了抽象的鸭子,而类RubberDuck、MallardDuck、 CottonDuck和RedHeadDuck分别描述具体的鸭子种类,方法fly()、quack()和display()分别表示不同种类的鸭子都具有飞行特征、发声特征和外观特征;类FlyBehavior与 QuackBehavior为抽象类,分别用于表示抽象的飞行行为与发声行为:类FlyNoWay与 FlyWithWings分别描述不能飞行的行为和用翅膀飞行的行为;类Quack、Squeak与 QuackNoWay分别描述发出“嘎嘎”声的行为、发出橡皮与空气摩擦声的行为与不发声的行为。请填补以下代码中的空缺。
【C++代码】
#include<iostream>
using namespace (1); class FlyBehavior{
public: (2) fly()=0;
};
class QuackBehavior{
public:(3) quack() = 0;
};
class FlyWithWings:public FlyBehavior{
public:void fly(){ cout<< “使用翅膀飞行 ! ” <<endl; }
};
class FlyNoWay:public FlyBehavior{
public:void fly(){ cout<< “不能飞行!”<<endl;}
};
class Quack:public QuackBehavior{
public:void quack(){ cout<<“发出\‘嘎嘎\’声 !”<<endl; }
};
class Squeak:public QuackBehavior{
public:void quack(){cout<<“发出空气与橡皮摩擦声!”<<endl; }
};
class QuackNoWay:public QuackBehavior{
public:void quack (){ cout<<“不能发声 !”<<endl; }
};
class Duck{
protected:
FlyBehavior*(4);
QuackBehavior*(5);
public:
void fly(){(6); }
void quack(){(7););
virtual void display()=0;
};
class RubberDuck:public Duck{
public:
RubberDuck(){
flyBehavior=new (8);
quackBehavior=new (9);
}
~RubberDuck(){
if(!flyBehavior)delete flyBehavior;
if(!quackBehavior) delete quackBehavior;
}
void display(){/*此处省略显示橡皮鸭的代码*/ }
};
//其他代码省略
选项
答案
(1) std (2) virtual void (3) virtual void (4) fiyBehavior (5) quackBehavior (6) flyBehavior->fly() (7) quackBehavior->quack() (8) FlyNoWay() (9) Squeak()
解析
C++标准的输出输入的命名空间为std,在本题的代码中使用了cout,因此必须使用标准的命名空间,空(1)处应该填写std;FlyWithWings和FlyNoWay类继承了 FlyBehavior,根据它们的成员函数fly的定义可知,fly函数的返回值为void,又因为 FlyBehavior中函数为纯虚拟函数,因此,空(2)处应该填写virtual void,空(3)处的原理和空(2)相同;Duck是各种鸭子种类的基类,而每一种鸭子都具有飞行特征和发声特征,这两种特征分别通过FlyBehavior 和 QuackBehavior来实现,因此空(4)和(5)处应该为这两个类的对象或者指针(这两个类为纯虚类,因此只能采用指针形式)。每一种具体的鸭子种类的飞行特征和发声特征是不同的,因此,在每一种具体鸭子类的构造函数中需要指定其具有的飞行特征和发声特征,表10-6已经指出了RubberDuck的这两种特征分别为FlyNoWay 和 Squeak,所以,通过构造相应类的对象来实现该特征。
转载请注明原文地址:https://kaotiyun.com/show/4fDZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
多条件覆盖是一种逻辑覆盖,它的含义是设计足够的测试用例,使得每个判定中条件的各种可能组合都至少出现一次,满足多条件覆盖级别的测试用例也是满足(44)级别的;针对布尔表达式A&&(B‖C)执行逻辑覆盖测试,测试用例至少需要(45)种组合才能满足多条件覆盖的要
相对于DES算法而言,RSA算法的(7),因此,RSA(8)。
逻辑路径覆盖法是白盒测试用例的重要设计方法,其中语句覆盖法是较为常用的方法,针对下面的语句段,采用语句覆盖法完成测试用例设计,测试用例见下表,对表中的空缺项(True或者False),正确的选择是(60)。语句段:if(A&&(B‖C))
(51)不属于测试人员编写的文档。
设计功能测试用例的根本依据是______。A.用户需求规格说明书B.用户手册C.被测产品的用户界面D.概要设计说明书
()不属于按寻址方式划分的一类存储器。
在结构化分析方法中,利用分层数据流图对系统功能建模。以下关于分层数据流图的叙述中,不正确的是___________(32)。采用数据字典为数据流图中的每个数据流、文件、加工以及组成数据流或文件的数据项进行说明,其条目不包括____________(33)。
在结构化分析方法中,数据流图描述数据在系统中如何被传送或变换,反映系统必须完成的逻辑功能,用于(38)建模。在绘制数据流图时,(39)。(38)
银行系统数据流图中,某个加工根据客户的多个不同属性的值来执行不同的操作,则对该加工最适宜采用()描述。
随机试题
颅内硬膜下血肿内容包括哪些
女性,45岁,因结节性甲亢行甲状腺大部切除术后10小时,测体温37.8℃,之后体温一直未降,反而上升至39.2℃,脉搏130次/分,且较弱,烦躁不安、谵妄。治疗措施如下,哪项不宜
行政机关作出行政处罚之前,当事人要求听证的,应当()
企业对外发生经营业务收取款项时,应()开具发票。
“青出于蓝而胜于蓝”反映出师生关系应具备的特点是()
按劳分配是社会主义的分配原则,其决定因素是
若关系模式R∈1NF,且对于每一个非平凡的函数依赖X→Y,都有X包含码,则R∈
A、Thewomansawahorrormovie.B、Thewomanenjoyedthemovieverymuch.C、Themanwenttotheshowwiththewoman.D、Themanas
A、Lookingthespeakerintheeye.B、Listeningcarefullytothespeaker.C、Measuringthespeaker’sbreathingrate.D、Focusingon
Forthispart,youareallowedtowriteacompositiononthetopiconWaste.Youshouldwriteatleast120wordsandyoushould
最新回复
(
0
)