首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
某软件公司现欲开发一款飞机飞行模拟系统,该系统主要模拟不同种类飞机的飞行特征与起飞特征。需要模拟的飞机种类及其特征如表16—4所示。 为支持将来模拟更多种类的飞机,采用策略设计模式(Strategy)设计的类图如图16一12所示。 图16—12中,Ai
某软件公司现欲开发一款飞机飞行模拟系统,该系统主要模拟不同种类飞机的飞行特征与起飞特征。需要模拟的飞机种类及其特征如表16—4所示。 为支持将来模拟更多种类的飞机,采用策略设计模式(Strategy)设计的类图如图16一12所示。 图16—12中,Ai
admin
2014-11-13
74
问题
某软件公司现欲开发一款飞机飞行模拟系统,该系统主要模拟不同种类飞机的飞行特征与起飞特征。需要模拟的飞机种类及其特征如表16—4所示。
为支持将来模拟更多种类的飞机,采用策略设计模式(Strategy)设计的类图如图16一12所示。
图16—12中,AirCraft为抽象类,描述了抽象的飞机,而类Helicopter、AirPlane、Fighter和Harrier分别描述具体的飞机种类,方法ny()和takeOff()分别表示不同飞机都具有飞行特征和起飞特征;类FlyBehavior与TakeOffiehaVior为抽象类,分别用于表示抽象的飞行为与起飞行为;类SubSonicFly与SuperSonicFly分别描述亚音速飞行和超音速飞行的行为;类VerticalTakeOff与LongDistanceTakeOff分别描述垂直起飞与长距离起飞的行为。
【C++代码】
#include
USing namespace std;
ClasS FlyBehaVior {
public:virtual void fly()=0;
};
class SubSonicFly:public FlyBehavior(
public:void fly()(cout<<“亚音速飞行!”<
};
class SuperSonicFly:publ ic FlyBehavior(
public:void fly()(cout<<”超音速飞行!”<
);
C las S TakeOf fBehavior(
publiC:virtual void takeOff()=0;
};
ClasS VerticalTakeOff:publiC TakeOffBehavior(
public:void takeOff()(cout<<“垂直起飞!”<
};
ClasS LongDistanceTakeOff:public TakeOffBehavior(
publIC:void takeOff(){cout<<”长距离起飞!-t<
};
C1ass AirCraft(
protected:
(1) ;
(2) ;
public:
void fly()((3);)
void takeOff()((4););
};
clasS Helico。]ter:public AirCraft{
public:
Helicopter()(
flyBehavior=new(5);
takeOffBehavior=new(6):
}
(72){
if(!flyBehavior) delete flyBehaVior;
if(!takeOf fBehavior)delete takeOf fBehavior;
}
};
//
其他代码省略
选项
答案
(1)FlyBehavior*flyBehavior。 (2)TakeOffBehavior*takeOffBehavior (3)flyBehavior一>fly() (4)takeOffBehavior一>takeoff()_____ (5)SubSonicFly{} (6)VerticalTakeOff() (7)~Helicopter() 注:空(1)与空(2)参考答案可互换
解析
本题考查了设计模式中的策略设计模式。
从本题的叙述中可以看出,存在4种不同的飞机类型,但每种飞机类型的起飞特征和飞行特征并不完全相同,这就使得我们很难采用比较直接的方法来实现重用。例如,定义一个抽象的飞机类,实现飞机的起飞特性,然后4种飞机直接重用该特征。但是,我们可以观察到,尽管飞机的起飞特征和飞行特征有所不同,有一点可以肯定的是,每一种飞机都具备了飞行特征和起飞特征。因此,可以抽象出一个飞机类,其中含有飞行特征与起飞特征,但关于两个特征的实现要单独抽取出来,所以义形成了FlyBehavior类和TakeOffBehavior类分别表示抽象的飞行和起飞特征,而这两个类的子类则分别实现不同的起飞和飞行特征,因此,在创建一个具体的飞机时,给其赋予不同的起飞特征和飞行特征即可。
本题中的空(1)和(2)应该填写成员变量,根据类图可以得知,此处应该表示的是飞行和起飞特征变量,在C++中可以采用指针来表示。空(3)和空(4)处需要实现飞行与起飞特征,但AirCraft是抽象的类,所以把实现代理给指针变量。Helicopter类需要指定由父类继承而来的成员变量的初始值,因为Helicopter的特征是垂直起飞和亚音速飞行,因此生成这两个特征的对象,分别赋值给nyBehavior和takeOffBehavior变量。
转载请注明原文地址:https://kaotiyun.com/show/TpDZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
阅读以下说明,回答问题1至问题5。[说明]某小区采用HFC接入Internet的解决方案进行网络设计,网络结构如下图所示。
在“管理工具”中运行“管理IP筛选器列表”,创建一个名为“SNMP消息”的筛选器。在如图12-3所示的“IP筛选器向导”中指定IP通信的源地址,下拉列表框中应选择(1);在如图12-4中指定IP通信的目标地址,下拉列表框中应选择(2)。在图
销售部的网络号是(1),广播地址是(2):技术部的网络号是(3),广播地址是(4);每个子网可用的IP地址有(5)个。设置技术部和销售部的主机网络参数后,如果两个子网间的主机不能通信,用(13)命令来测试数据包是否能够到达网关计算机。如果数据包可以达到
请阅读下列SwitchA的配置信息,并在(1)~(5)处解释该语句的作用。Switch>enable(进入特权模式)Switch#configterminal(进入配置模式)Switch(config)#hostnameSwi
阅读下列有关网络防火墙的说明,回答问题1-4。【说明】为了保障内部网络的安全,某公司在Internet的连接处安装了PIX防火墙,其网络结构如图4-1所示。
DHCP允许服务器向客户端动态分配Ⅲ地址和配置信息。客户端可以从DHCP服务器获得(1)。(1)A.DHCP服务器的地址B.Web服务器的地址C.DNS服务器的地址通常采用IP地址与MAC地址绑定的策略为某些设备保留固定的IP地址
DHCP允许服务器向客户端动态分配Ⅲ地址和配置信息。客户端可以从DHCP服务器获得(1)。(1)A.DHCP服务器的地址B.Web服务器的地址C.DNS服务器的地址图3-3是DHCP服务器安装中的添加排除窗口。 参照图
阅读以下说明,回答问题1至问题5。【说明】某网络拓扑结构如图3-1所示,DHCP服务器分配的地址范围如图3-2所示。
阅读以下Linux系统中关于IP地址和主机名转换的说明,回答问题1-3。【说明】计算机用户通常使用主机名来访问网络中的节点,而采用TCP/IP协议的网络是以IP地址来标记网络节点的,因此需要一种将主机名转换为IP地址的机制。在Linux系统
阅读以下说明,回答问题1至问题4。【说明】某学校欲构建校园网,根据实际情况,计划在校园总部采用有线网络和无线网络相结合的接入方式,校园分部通过Internet采用VPN技术与校园总部互联,该校园网的网络拓扑结构如图1-1所示。
随机试题
石油沥青防腐工艺是热涂缠绕。
"Mustwehandinourexercise-booksnow?""No,you______.
自动分析仪实验数据收集窗时间的设定正确的是A.根据高、中、低浓度标准液反应速度时间曲线加以确定B.越长越准确C.越短越准确D.终点法一般为17~19秒E.速率法一般为3~5秒
患者,男,27岁。自去年冬季以来每天发生空腹痛,进食后疼痛缓解。平时伴有恶心、打嗝、反酸。查体:剑突右侧有局限压痛,无反跳痛。该患者可能的诊断为
在指标库中,每个指标包括()内容。
科学揭示燃烧现象的科学家是()。
有如下程序段:inti=9;while(inti=0){cout
Whatisabettercureforlonelinessthatismentionedinthepassage?
Duringthewholeofadark,cloudydayneartheendoftheyearIhadbeen【C1】______myhorsealongcountryroadswithlittleli
Asregardssocialconventions,wemustsayawordaboutthewell-knownEnglishclasssystem.Thisisanembarrassingsubjectfor
最新回复
(
0
)