首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 某游戏公司现欲开发一款面向儿童的模拟游戏,该游戏主要模拟现实世界中各种鸭子的发声特征、飞行特征和外观特征。游戏需要模拟的鸭子种类及其特征如下表所示。
阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 某游戏公司现欲开发一款面向儿童的模拟游戏,该游戏主要模拟现实世界中各种鸭子的发声特征、飞行特征和外观特征。游戏需要模拟的鸭子种类及其特征如下表所示。
admin
2018-07-23
17
问题
阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。
【说明】
某游戏公司现欲开发一款面向儿童的模拟游戏,该游戏主要模拟现实世界中各种鸭子的发声特征、飞行特征和外观特征。游戏需要模拟的鸭子种类及其特征如下表所示。
为支持将来能够模拟更多种类鸭子的特征,采用策略设计模式(Strategy)设计的类图如题图5-1所示。
其中,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<<’’使用翅膀飞行!’’<<end1;}
};
class FlyNoWay:public FlyBehavior {
public:void fly(){cout<<’’不能飞行!’’<<end1;}
};
class Quack:public QuackBehaVior {
public:void quack(){cout<<’’发出\’嘎嘎’\声!’’<<end1;}
};
class Squeak:publiC QuackBehavior{
public:void quack(){cout<<’’发出空气与橡皮摩擦声!’’<<end1;}
};
class QuackNoWay:public QuackBehavior {
public:void quack(){cout<<’’不能发声!’’<<end1;}
};
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)flyBehavior (5)quackBehaVior (6)flyBehavior->fly() (7)quackBehavior->quack() (8)FlyNoWay() (9)Squealk()
解析
本题考查面向对象的程序设计的抽象类和多态。程序解释如下。
(1)using namespace(1)std; /*所谓namespace,是指标识符的各种可见范围。c++标准程序库中的所有标识符都被定义于一个名为std的namespace中。*/
(2)由题中信息可知,类FlyBehavior与QuackBehavior为抽象类,分别用于表示抽象的飞行行为与发声行为,而这两种行为对应的不止是一种方式,为了表示多种行为方式(即多态),需要定义虚函数,用以给子类进行重载。再由子类中的函数void fly()及void quack()可知,父类中的对应函数返回值也应为void。所以空(2)处和空(3)处的填空如下:
class FlyBehavior{
public:(2)virtual viod fly()=0;
};
class QuackBehavior{
public:(3) virtual void quack()=0;
}
(3)Duck类的定义,由子类RubberDuck类中出现的“flyBehavior=new(8);quackBehavior=new (9);”可知这两个指针类型对象为flyBehavior和quackBehavior。所以空(4)处和空(5)处填空如下:
Class Duck{
protected:
FlyBehavior *(4)flyBehavior;
QuackBehavior* (5)quackBehavior;
由“FlyBehavior*flyBehavior;QuackBehavior*quackBehavior;”及函数名可知,该函数体应调用FlyBehavior类中的fly函数和QuackBehavior类中的quack函数。所以空(6)处和空(7)处填空如下:
public:
void fly(){ (6)flyBehavior->fly(); }
void quack(){ (7)quackBehavior->quack;};
virtual void display()=0;
};
(4)由题中所给信息可知RubberDuck是“发出橡皮与空气摩擦声”并且“不能飞行”的鸭子种类,因此构造函数中创建的对象flyBehavior和quackBehavior对应的类型分别为FlyNoWay和Squeak。所以空(8)处和空(9)处的填空如下:
class RubberDuck:public Duck{
public:
RubberDuck() {
flyBehavior=new(8)FlyNoWay();
quackBehaVior=neW(9)Squeak();
}
转载请注明原文地址:https://kaotiyun.com/show/gKDZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
认真阅读以下关于架构Apache安全服务器的技术说明,根据要求回答问题1至问题5。【说明】某些商务公司要求其网站的部分信息资源只对经过身份认证后的用户开放。因此在Linux+Apache架构Web服务器方案中,需利用mod-ss1模块给Apach
阅读以下基于VPN网络互连的网络规划设计的技术说明,根据要求回答问题1至问题3。【说明】某软件开发公司总部和子公司A、子公司B分别位于3个不同的省城,公司总部通过一台带VPN功能的防火墙与Internet连接。该防火墙支持PPTP、L2TP、IP
阅读以下关于交换机VTP协议配置的技术说明,根据要求回答问题1至问题4。【说明】利用VLAN技术可以把物理上连接的网络从逻辑上划分为多个不同的虚拟子网,可以对各个子网实施不同的管理策略。利用showvtpstatus命令在某台交换机的特权模式
非对称数字用户线(AsymmetricDigitalSubscriberLine,ADSL)是一种利用现有的传统电话线路高速传输数字信息的技术。ADSL技术可以充分利用现有铜线网路,只要在用户线路两端加装ADSL设备即可为用户提供服务。ADSL系统构
非对称数字用户线(AsymmetricDigitalSubscriberLine,ADSL)是一种利用现有的传统电话线路高速传输数字信息的技术。ADSL技术可以充分利用现有铜线网路,只要在用户线路两端加装ADSL设备即可为用户提供服务。ADSL系统构
阅读以下说明,回答问题1、问题2和问题3,将解答填入对应栏内。[说明]在因特网的发展过程中,WWW(WorldWideWeb)和域名服务系统(DNS)两项技术起了重大的推动作用,在域名服务系统(DNS)出现之前,所有的因特网主机名都存储
阅读以下说明,回答问题1和问题2。【说明】某学校拟组建一个小型校园网,具体设计如下:1.设计要求。(1)终端用户包括:48个校园网普通用户;一个有24个多媒体用户的电子阅览室;一个有48个用户的多媒体教室(性能要求高于电子阅
请用100字以内的文字说明该网管软件项目采用快速原型开发方法的优缺点。根据试题的描述信息分析,在最理想的情况下,需要多少天才能完成此网管软件开发任务?如果按保守的估计,则需要多少天才可完成此开发任务?(请列出简要的计算过程)
ADSL技术可以充分利用现有铜线网络,只要在用户线路两端加装ADSL设备即可为用户提供服务。请从以下术语选择适当的编号,将图5-9所示的拓扑结构中(1)~(4)空缺处的名称填写完整。【供选择的答案】A.程控交换机B.二层交换机
随机试题
为使厨房吊顶耐火和不变形,常选用的理想吊顶面层材料是()。
依据《防治海洋工程建设项目污染损害海洋环境管理条例》,禁止进行围填海活动的场所和区域是()。
根据《标准施工合同》,属于标准施工合同的通用条款标题的有()。
某一类高层商住楼地上30层、地下2层,总建筑面积85694.81m2。地下一层至地上四层为商场,建筑面积37275.0lm2,地上四层以上为普通住宅,地下二层为汽车库。该商住楼内的防烟楼梯间及其前室、消防电梯间前室和合用前室,靠外墙布置具备自然排烟条件。商
判断固定资产达到预定可使用状态,应根据()。
甲、乙、丙、丁四家公司与杨某、张某拟共同出资设立一注册资本为400万元的有限责任公司。除杨某与张某拟以120万元货币出资外,四家公司的下列非货币财产出资中,符合公司法律制度规定的是()。
2017年2月,某市税务机关拟对辖区内某房地产开发公司的房产开发项目进行土地增值税清算。该房地产开发公司提供该房产开发项目资料如下:(1)2014年3月以12000万元拍得用于该房地产开发项目的一宗土地,并缴纳契税。(2)2014年5
由于沈阳地处沈水之北,以中华民族传统方位论,即“山北为阴,水北为阳”,故为沈阳。沈水指的是:
求函数的所有间断点,并判断它们的类型.
Celebrate.Celebrate.PhysiciansaredelightedwithaFoodandDrugAdministration(FDA)advisorypanel’srecommendationearlier
最新回复
(
0
)