首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说明和C++代码,应填入(n)处。 【说明】 某游戏公司现欲开发一款面向儿童的模拟游戏,该游戏主要模拟现实世界中各种鸭子的发声特征、飞行特征和外观特征。游戏需要模拟的鸭子种类及其特征如表10-6所示: 为支持将来能够模拟更多
阅读下列说明和C++代码,应填入(n)处。 【说明】 某游戏公司现欲开发一款面向儿童的模拟游戏,该游戏主要模拟现实世界中各种鸭子的发声特征、飞行特征和外观特征。游戏需要模拟的鸭子种类及其特征如表10-6所示: 为支持将来能够模拟更多
admin
2008-08-01
60
问题
阅读下列说明和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
软件设计师下午应用技术考试
软考中级
相关试题推荐
典型的软件测试过程模型有(46)等,在这些模型中,(47)强调了测试计划等工作的先行和对系统需求和系统设计的测试,(48)对软件测试流程予以了说明。
黑盒测试是通过软件的外部表现来发现软件缺陷和错误的测试方法,具体地说,黑盒测试用例设计技术包括(42)等。现有一个处理单价为1元的盒装饮料的自动售货机软件,若投入1元币,按下“可乐”、“雪碧”或“红茶”按钮,相应的饮料就送出来,若投入的是2元币,在送出饮料
下述关于错误处理流程管理的原则,(49)的说法是不正确的。
文件系统中,设立打开文件(Open)系统功能调用的基本操作是(25)。
以下控制流程图的环路复杂性V(G)等于(54)。
以下(53)属于在GB/T18905《评价者用的过程》中定义软件评价过程的特性。①可重复性②可再现性③公正性④客观性⑤合理性
在某大学学籍管理信息系统中,假设学生年龄的输入范围为16~40,则根据黑盒测试中的等价类划分技术,下面划分正确的是(46)。
在ISO/IEC软件质量模型中,功能性是与一组功能及其指定的性质的存在有关的一组属性,其子特性不包括__________。
软件设计师王某在其公司的某一综合信息管理系统软件开发工作中承担了大部分程序设计工作。该系统交付用户,投入试运行后,王某辞职离开公司,并带走了该综合信息管理系统的源程序,拒不交还公司。王某认为,综合信息管理系统源程序是他独立完成的,他是综合信息管理系统源程序
X软件公司的软件工程师张某兼职于Y科技公司,为完成Y科技公司交给的工作,做出了一项涉及计算机程序的发明。张某认为该发明是利用自己的业余时间完成的,可以以个人名义申请专利。此项专利申请权应归属()。
随机试题
纤维组织代替正常骨组织,骨小梁常呈“C”形和“O”形,骨小梁周围缺乏成骨细胞。以上病理变化常见于
典型的心绞痛与心肌梗死病人胸痛症状鉴别最重要的是
《中华人民共和国食品卫生法》规定,患下列哪些疾病的,不得参加接触直接入口食品的工作
患者,男,45岁,在护理评估中,可忽略的健康数据是
女性,25岁,支气管扩张多年。近日因上感咳嗽剧烈,有大量黄色脓痰。胸部X线显示病变位于右肺下叶,体位引流时护士应指导病人采取()。
(2008年多项选择第53题)甲公司与乙公司150万元货款纠纷一案,经区人民法院审理后判决乙公司向甲公司支付140万元货款,双方均未上诉,因乙公司拒绝支付货’款,甲公司向区人民法院申请强制执行。在执行过程中,甲公司与乙公司达成由乙公司的到期债务人丙公司直接
在以下房地产需求中,最大的需求是()。
课堂教学主要是传授学生知识,使学生获得直接经验。()
试述维纳的成败归因理论,并阐述如何根据这一理论来激发学生的学习动机。
二里头文化
最新回复
(
0
)