阅读下列说明和C++代码,应填入(n)处。【说明】某游戏公司现欲开发一款面向儿童的模拟游戏,该游戏主要模拟现实世界中各种鸭子的发声特征、飞行特征和外观特征。游戏需要模拟的鸭子种类及其特征如表10-6所示:为支持将来能够模拟更多种类鸭子的特征,采用策略设计模式(Strategy)设计的类图如图10-11所示:其中,Duck为抽象类,描述了抽象的鸭子,而类RubberDuck、MallardDuck、 CottonDuck和RedHeadDuck分别描述具体的鸭子种类,方法fly()、quack()和disp

题目

阅读下列说明和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(){/*此处省略显示橡皮鸭的代码*/ }

};

//其他代码省略


相似考题

2.阅读下列说明和Java代码,应填入(n)处。【说明】某游戏公司现欲开发一款面向儿童的模拟游戏,该游戏主要模拟现实世界中各种鸭子的发声特征、飞行特征和外观特征。游戏需要模拟的鸭子种类及其特征如表10-7所示:为支持将来能够模拟更多种类鸭子的特征,采用策略设计模式(Strategy)设计的类图如图10-12所示:其中,Duck为抽象类,描述了抽象的鸭子,而类RubberDuck、MallardDuck、 CottonDuck 和 RedHeadDuck分别描述具体的鸭子种类,方法fly()、quack()和display()分别表示不同种类的鸭子都具有飞行特征、发声特征和外观特征;接口FlyBehavior与 QuackBehavior分别用于表示抽象的飞行行为与发声行为;类FlyNoWay与FlyWithWings分别描述不能飞行的行为和用翅膀飞行的行为;类Quack、Squeak与QuackNoWay分别描述发出“嘎嘎”声的行为、发出橡皮与空气摩擦声的行为与不发声的行为。请填补以下代码中的空缺。【Java代码】(1) FlyBehavior{public void fly();};(2) QuackBehavior{public void quack();};class FlyWithWings implements FlyBehavior{public void fly(){System.out.println(“使用翅膀飞行!”);}};class FlyNoWay implements FlyBehavior{public void fly(){System.out.println(“不能飞行!”);}};class Quack implements QuackBehavior{public void quack(){System.out.println(“发出\‘嘎嘎\’声!”); }};class Squeak implements QuackBehavior{public void quack(){System.out.println(“发出空气与橡皮摩擦声 !”);}};class QuackNoWay implements QuackBehavior{public void quack(){System.out.println(“不能发声!”);}};abstract class Duck{protected FlyBehavior (3);protected QuackBehavior (4);public void fly(){ (5); }public void quack() { (6);};public (7) void display();};class RubberDuck extends Duck{public RubberDuck(){flyBehavior=new (8);quackBehavior=new (9);}public void display(){/*此处省略显示橡皮鸭的代码*/ }};//其他代码省略

4.阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】某软件公司现欲开发一款飞机飞行模拟系统,该系统主要模拟不同种类飞机的飞行特征与起飞特征。需要模拟的飞机种类及其特征如表6-1所示。为支持将来模拟更多种类的飞机,采用策略设计模式(Strategy)设计的类图如图6-l所示。图5-11中,AirCraft为抽象类,描述了抽象的飞机,而类Helicopter、AirPlane、Fighter和Harrier分别描述具体的飞机种类,方法fly( )和takeOff( )分别表示不同飞机都具有飞行特征和起飞特征;类FlyBehavior与TakeOffBehavior为抽象类,分别用于表示抽象的飞行行为与起飞行为;类SubSonicFly与SuperSonicFly分别描述亚音速飞行和超音速飞行的行为;类Verti—calTakeOff与LongDistanceTakeOff分别描述垂直起飞与长距离起飞的行为。【Java代码】interface FlyBehavior{public void fly( );};class SubSonicFly implements FlyBehavior{public void fly( ){System.out.println("亚音速飞行!");}};class SuperSonicFly implements FlyBehavior{public void fly( ){System.out.println("超音速飞行!");}};interface TakeOffBehavior{public void takeOff( );};class VerticalTakeOff implements TakeOffBehavior{public void takeOff( ){System.out.println("垂直起飞!");}};class LongDistanceTakeOff implements TakeOffBehavior{public void takeOff( ){System.out.println("长距离起飞!");}};abstract class AirCraft{protected (1);protected (2);public void fly( ){ (3);}public void takeOff( ){ (4);};};class Helicopter (5) AirCraft{public Helicopter( ){flyBehavior=new (6) ;takeOffBehavior=new (7) ;}};//其它代码省略

更多“ 阅读下列说明和C++代码,应填入(n)处。【说明】某游戏公司现欲开发一款面向儿童的模拟游戏,该游戏主要模拟现实世界中各种鸭子的发声特征、飞行特征和外观特征。游戏需要模拟的鸭子种类及其特征如表10-6所示:为支持将”相关问题
  • 第1题:

    阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】某软件公司欲开发一款汽车竞速类游戏,需要模拟长轮胎和短轮胎急刹车时在路面上留 下的不同痕迹,并考虑后续能模拟更多种轮胎急刹车时的痕迹。现采用策略(Strategy)设计模式来实现该需求,所设计的类图如图 5-1 所示。

    【Java代码】import java.util.*; interface BrakeBehavior{public (1) ;/*其余代码省略*/}class LongWheelBrake implements BrakeBehavior{public void stop(){System.out.println("模拟长轮胎刹车痕迹! ");}/*其余代码省略*/}class ShortWheelBrake implements BrakeBehavior {public void stop(){System.out.println("模拟短轮胎刹车痕迹! ");}/*其余代码省略 */}abstract class Car{protected (2) wheel;public void brake(){ (3) ;}/*其余代码省略*/}class ShortWheelCar extends Car {public ShortWheelCar(BrakeBehavior behavior){(4) ; } /*其余代码省略*/}class StrategyTest{public static void main(String[]args){BrakeBehaviorbrake =new ShortWheelBrake();ShortWheelCar car1= new ShortWheelCar(brake);car1. (5) ;}}


    答案:
    解析:
    1. void stop()2. BrakeBehavior3. wheel.stop()4. wheel=behavior5. brake()

  • 第2题:

    阅读下列说明和C++代码,将应填入
    (n)
    处的字句写在答题纸的对应栏内。
    【说明】
      某软件公司现欲开发一款飞机飞行模拟系统,该系统主要模拟不同种类飞机的飞行特征与起飞特征。需要模拟的飞机种类及其特征如表5-1所示。表5-1



     为支持将来模拟更多种类的飞机,采用策略设计模式(Strategy)设计的类图如图5-1所示。



    图5-1中,AirCraft为抽象类,描述了抽象的飞机,而类Helicopter、AirPlane、Fighter和Harrier分别描述具体的飞机种类,方法fly()和takeOff()分别表示不同飞机都具有飞行特征和起飞特征;类FlyBehavior与TakeOffBehavior为抽象类,分别用于表示抽象的飞行为与起飞行为;类SubSonicFly与SuperSonicFly分别描述亚音速飞行和超音速飞行的行为;类VerticalTakeOff与LongDistanceTakeOff分别描述垂直起飞与长距离起飞的行为。 【C++ 代码】 #include


    答案:
    解析:
    (1)FlyBehavior*flyBehavior      
    (2)TakeOffBehavior*takeOffBehavior

  • 第3题:

    阅读下列说明和?C++代码,将应填入(n)处的字句写在答题纸的对应栏内。
    【说明】
    阅读下列说明和?Java代码,将应填入?(n)?处的字句写在答题纸的对应栏内。
    【说明】
    某快餐厅主要制作并出售儿童套餐,一般包括主餐(各类比萨)、饮料和玩具,其餐品种
    类可能不同,但其制作过程相同。前台服务员?(Waiter)?调度厨师制作套餐。现采用生成器?(Builder)?模式实现制作过程,得到如图?6-1?所示的类图。






    答案:
    解析:

  • 第4题:

    阅读下列说明和 Java 代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 某软件公司欲开发一款汽车竞速类游戏,需要模拟长轮胎和短轮胎急刹车时在路面上 留 下的不同痕迹,并考虑后续能模拟更多种轮胎急刹车时的痕迹。现采用策略(Strategy) 设 计模式来实现该需求,所设计的类图如图 5-1 所示。




    答案:
    解析:
    1.void stop()2.BrakeBehavior3.wheel.stop()4.wheel=behavior5.brake()

  • 第5题:

    阅读下列说明和Java代码,将应填入
    (n)
    处的字句写在答题纸的对应栏内。
    【说明】
      某软件公司现欲开发一款飞机飞行模拟系统,该系统主要模拟不同种类飞机的飞行特征与起飞特征。需要模拟的飞机种类及其特征如表6-1所示。表6-1



    为支持将来模拟更多种类的飞机,采用策略设计模式(Strategy)设计的类



    图6-1中,AirCraft为抽象类,描述了抽象的飞机,而类Helicopter、AirPlane、Fighter和Harrier分别描述具体的飞机种类,方法fly__(6)__和takeOff__(7)__分别表示不同飞机都具有飞行特征和起飞特征类FlyBehavior与TakeOffBehavior为抽象类,分别用于表示抽象的飞行为与起飞行为;类SubSonicFly与SuperSonicFly分别描述亚音速飞行和超音速飞行的行为;类VerticalTakeOff与LongDistanceTakeOff分别描述垂直起飞与长距离起飞的行为。【Java 代码】 interface FlyBehavior {
      public void fly();
     };
     class SubSonicFly
    implements FlyBehavior{
      public void fly(){
    System.out.println("亚音速飞行!"); }
     };
     class SuperSonicFly
    implements FlyBehavior{
      public void fly(){
    System.out.println("超音速飞行!" ); }
     };
     interface TakeOffBehavior {
      public void takeOff();
     };
     class VerticalTakeOff
    implements TakeOffBehavior {
      public void takeOff (){
    System.out.println("垂直起飞!" ); }
     };
     class LongDistanceTakeOff
    implements TakeOffBehavior {
      public void takeOff(){
    System.out.println("长距离起飞!"); }
     };
      abstract class AirCraft {
          protected? (1) ?;
          protected? (2) ?;
      public void fly(){? (3)? ; }
      public void takeOff()
    {?? (4)?? ; };
     };
     class Helicopter(5)AirCraft{
          public Helicopter (){
          flyBehavior = new? (6)? ;
          takeOffBehavior = new?
    (7)? ;
       }
      };
     //其它代码省略


    答案:
    解析:
    试题答案 (1)FlyBehavior