试题查看

首页 > 软件水平考试 > 试题查看
【分析解答题】

【说明】 某游戏公司现欲开发一款面向儿童的模拟游戏,该游戏主要模拟现实世界中各种鸭子的发声特征、飞行特征和外观特征。游戏需要模拟的鸭子种类及其特征如表10-6所示:{{B}}表10-6{{/B}}

为支持将来能够模拟更多种类鸭子的特征,采用策略设计模式(Strategy)设计的类图如图10-11所示:
其中,Duck为抽象类,描述了抽象的鸭子,而类RubberDuck、MallardDuck、CottonDuck和RedHeadDuck分别描述具体的鸭子种类,方法fly()、quack()和display()分别表示不同种类的鸭子都具有飞行特征、发声特征和外观特征;类FlyBehavior与 QuackBehavior为抽象类,分别用于表示抽象的飞行行为与发声行为:类FlyNoWay与 FlyWithWings分别描述不能飞行的行为和用翅膀飞行的行为;类Quack、Squeak与 QuackNoWay分别描述发出“嘎嘎”声的行为、发出橡皮与空气摩擦声的行为与不发声的行为。请填补以下代码中的空缺。【C++代码】 #include<iostream> using namespace{{U}} (1) {{/U}};class FlyBehavior{ public:{{U}} (2) {{/U}} fly()=0; }; class QuackBehavior{ public:{{U}} (3) {{/U}} 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; } }; classDuck{ protected: FlyBehavior*{{U}} (4) {{/U}}; QuackBehavior*{{U}} (5) {{/U}}; public: void fly(){{{U}} (6) {{/U}}; } void quack(){{{U}} (7) {{/U}};); virtual void display()=0; }; class RubberDuck:publicDuck{ public: RubberDuck(){ flyBehavior=new {{U}} (8) {{/U}}; quackBehavior=new{{U}} (9) {{/U}}; } ~RubberDuck(){ if(!flyBehavior)delete flyBehavior; if(!quackBehavior) delete quackBehavior; } void display(){/*此处省略显示橡皮鸭的代码*/ } }; //其他代码省略
查看答案解析

参考答案:

正在加载...

答案解析

正在加载...

根据网考网移动考试中心的统计,该试题:

0%的考友选择了A选项

0%的考友选择了B选项

0%的考友选择了C选项

0%的考友选择了D选项

你可能感兴趣的试题

【说明】在一个分布网络中,资源(石油、天然气、电力等)可从生产地送往其他地方。在阅读下列说明和图,回答问题1至问题3。【说明】某图书管理系统的主要功能如下:1.阅读下列说明,回答问题1至问题3。【说明】某医院的门诊管理系统实现了为患者提供挂阅读下列说明和图,回答问题1至问题3。【说明】某图书管理系统的主要功能如下:1.阅读下列说明,回答问题1至问题3。【说明】某医院的门诊管理系统实现了为患者提供挂试题五(共15分)阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对