当前位置: 首页icon 51CTO软考 > 软考资讯 >考试科目 >2020年11月软件设计师模拟题下午(一)之十二

2020年11月软件设计师模拟题下午(一)之十二

作者:mb64e70626def822024-01-05 01:00:13
备考咨询 刷题指导
添加专属学姐
下载资料 2024上半年软考备考资料+考试大纲
下载按钮 下载
引号

摘要:对于【软件设计师】软考考试而言,试题无疑是最重要的学习资料之一。在软考备考过程中,吃透试题、掌握试题所考知识点、熟悉试题的出题思路,对我们提升分数的效果是最明显的,通过对试题的反复练习,还可以查漏补缺。今天,给大家带来【2020年11月软件设计师模拟题下午(一)】部分试题的详解,一起来看看吧~1、阅读下列说明和C++代码,将应填入__(n)__处的字句写在答题纸的对应栏

引号
摘要:对于【软件设计师】软考考试而言,试题无疑是最重要的学习资料之一。在软考备考过程中,吃透试题、掌握试题所考知识点、熟悉试题的出题思路,对我们提升分数的效果是最明显的,通过对试题的反复练习,还可以查漏补缺。今天,给大家带来【2020年11月软件设计师模拟题下午(一)】部分试题的详解,一起来看看吧~



1、阅读下列说明和C++代码,将应填入__(n)__处的字句写在答题纸的对应栏内。 【说明】某软件公司现欲开发一款飞机飞行模拟系统,该系统主要模拟不同种类飞机的飞行特征与起飞特征。需要模拟的飞机种类及其特征如表5-1所示。为支持将来模拟更多种类的飞机,采用策略设计模式(Strategy)设计的类图如图5-1所示。   图5-1中,AirCraft为抽象类,描述了抽象的飞机,而类Helicopter、AirPlane、Fighter和Harrier分别描述具体 的飞机种类,方法fly()和takeOff()分别表示不同飞机都具有飞行特征和起飞特征;类FlyBehavior与TakeOffBehavior 为抽象类,分别用于表示抽象的飞行行为与起飞行为;类SubSonicFly与SuperSonicFly分别描述亚音速飞行和超音速飞行的行为;类 VerticalTakeOff与LongDistanceTakeOff分别描述垂直起飞与长距离起飞的行为。【C++代码】
答案:

(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的特征是垂直起飞和亚音速飞行,因此生成这两个特征的对象,分别赋值给flyBehavior和 takeOffBehavior变量。



查看完整试题>>>


代理合作学习群