首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说明和C++代码,应填入(n)处。 【说明】 某游戏公司现欲开发一款面向儿童的模拟游戏,该游戏主要模拟现实世界中各种鸭子的发声特征、飞行特征和外观特征。游戏需要模拟的鸭子种类及其特征如表10-6所示: 为支持将来能够模拟更多
阅读下列说明和C++代码,应填入(n)处。 【说明】 某游戏公司现欲开发一款面向儿童的模拟游戏,该游戏主要模拟现实世界中各种鸭子的发声特征、飞行特征和外观特征。游戏需要模拟的鸭子种类及其特征如表10-6所示: 为支持将来能够模拟更多
admin
2008-08-01
67
问题
阅读下列说明和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
软件设计师下午应用技术考试
软考中级
相关试题推荐
请根据下面叙述的场景选用适当的设计模式。若某面向对象系统中的某些类有且只有一个实例,那么采用(30)设计模式能够有效达到该目的:该系统中的某子模块需要为其他模块捉供访问不同数据库系统(如 Oracle、SQL Server和DB2 UDB等)的功能,这些数
(51)不属于测试人员编写的文档。
(25)属于系统软件,它直接执行高级语言源程序或与源程序等价的某种中间代码。
J2EE系统架构被各种信息系统普遍采用,______不属于其服务器端应用组件。A.ServletB.JSPC.EJBD.Applet
GB/T18905.5《软件工程产品评价》中,分别规定了开发者用、需方用、评价者用的过程,以下理解正确的是______。A.计划开发新产品的厂商,该标准中规定不允许利用他们自己的技术人员进行产品评价B.软件产品的一般评价过程是:确立评价需求,规定、设
结构化开发方法中,(35)主要包含对数据结构和算法的设计。对算法设计时,其主要依据来自(36)。描述算法时,(37)不是理想的表达方式。(37)
结构化开发方法中,(35)主要包含对数据结构和算法的设计。对算法设计时,其主要依据来自(36)。描述算法时,(37)不是理想的表达方式。(35)
在结构化分析方法中,利用分层数据流图对系统功能建模。以下关于分层数据流图的叙述中,不正确的是___________(32)。采用数据字典为数据流图中的每个数据流、文件、加工以及组成数据流或文件的数据项进行说明,其条目不包括____________(33)。
在分布式数据库中有分片透明、复制透明、位置透明和逻辑透明等基本概念,其中:___________(19)是指局部数据模型透明,即用户或应用程序无须知道局部使用的是哪种数据模型;___________(20)是指用户或应用程序不需要知道逻辑上访问的表具体是怎
以下关于数据流图的叙述中,不正确的是()。
随机试题
女婴,10个月,人工喂养。低热咳嗽2天,面及四肢抽搐4~5次,每次20~30秒自止,间歇期吃奶如常。体检:体温38.5℃,前囟2cm×3cm,平坦,咽充血,肋骨串珠,面神经征阳性。血白细胞8×109/L,中性0.6,血糖4.44mmol/L(80mg/dl
呕吐伴右上腹痛及发热、寒战或有黄疸者应考虑呕吐伴眩晕、眼球震颤者见于
A.主承托区B.副承托区C.边缘封闭区D.缓冲区E.有牙区受力方向与力垂直的区域是
关于下列账务处理正确的有( )。
雇前背景调查涉及到很多方面,以下()不是背景调查的主要调查项目。
在环境保护与经济发展的关系上,各国抛弃了或一味追求“经济优先”,或过分强调“环境优先”的片面做法,而是将二者有机地结合起来,既对危害环境的行为给予制裁,又要兼顾环境侵害的价值性,使保护环境与发展经济相协调,以求取最大的综合利益。从以上论述中,最能
Theoldcoupledecidedto______aboyandagirlthoughtheyhadthreechildrenoftheirown.
在软件项目管理中可以使用各种图形工具来辅助决策,以下对Gantt图的描述错误的是______。
在考生文件夹下有一个工程文件sjt5.vbp,请先装入该工程文件,然后完成以下操作:在名称为Forml的窗体上画三个命令按钮,其名称分别为Cl、C2和C3,标题分别为”读入数据”、”计算”和”存盘”(如图2-200所示)。程序运行后,如果单击”读入数据”按
Thebadweather______ourbuildingplanforawholeweek.
最新回复
(
0
)