刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

阅读下列说明、C++代码和运行结果,填补代码中的空缺,将解答填入答题纸的对应栏内。
[说明]
对部分乐器进行建模,其类图如下图所示,包括:乐器(Instrument)、管乐器(Wind)、打击乐器(Percussion)、弦乐器(Stringed)、木管乐器(Woodwind)、铜管乐器(Brass)。
类图
下面是实现上述设计的C++代码,其中音乐类(Music)使用各类乐器(Instrument)进行演奏和调音等操作。

using namespace std;

    enum Note(/*枚举各种音调*/

  
 MIDDLE_C,C_SHARP,B_FLAT

    };

    class
Instrument{/*抽象基类,乐器*/

    public:

    ______;  
//play函数接口

    virtual void
adjust()=0;    //adjust函数接口

    };

    class Wind ______
{

    public:

    void play(Note n)
 { cout<<"Wind.play()
 "<<n<<endl;    }

    void adjust()
{cout<<"Wind.adjust()"<<endl;    }

    );

    /*类Percussion和Stringed实现代码略*/

    class Brass ______{

    public:

    void play(Note n)
 {cout<<"Brass.play()
 "<<n<<endl;  }

    void adjUSt()
{cout<<"Brass.adjust()"<<endl;)

    };

    class
Woodwind:public Wind{

    public:

    void play(Note n)
 {  cout<<"Woodwind.play()"<<n<<endl;  }

    };

    class MusiC {

    public:

    void
tune(Instrument*i)  {  i->play(MIDDLE_C.;  }

    void
adjust(Instrument*i){    i->adjust();    }

    void tuneAll(
______ e[],int numIns){    /*为每个乐器定调*/

    for(int i=0; i<numIns; i++){

    this->tune(e[i]);

    this->adjust(e[i]);

    }

    }

    };

    /*使用模板定义一个函数size,该函数将返回数组array的元素个数,实现代码略*/

    int main(){

    Music*music=
______ Music();

    Instrument*
orchestra[]={new Wind(),new Woodwind()  };

    music->tuneAll(orchestra,size(orchestra));/*size返回数组orchestra的元素个数*/

    for(int i=0;i<size(orchestra);i++)

    delete
orchestra[i];

    delete music;

    }

本程序运行后的输出结果为:

Wind.play()0

    Wind.adjust()

    Woodwind.play()0

    Wind.adjust()


使用微信搜索喵呜刷题,轻松应对考试!

答案:

virtual void play(Noten)=0
:public Instrument
:public Wind
Instrument*
new

解析:

根据题目描述和给出的代码片段,我们可以按照以下步骤进行解析和填补空白:

  1. Instrument类中,我们需要定义两个纯虚函数playadjust,表示乐器的基本行为。因此,第一个空应填写为:virtual void play(Note n)=0;
  2. Wind类是Instrument的子类,所以应该继承自Instrument类。因此,第二个空填写为:: public Instrument
  3. 同样地,由于题目中的类图显示WoodwindWind的子类,所以第三个空应填写为:: public Wind
  4. Music类的成员函数tuneAll中,我们需要遍历一个乐器数组并为每个乐器进行定调操作。由于乐器数组的元素类型为乐器指针,所以第四个空应填写为:Instrument*
  5. 在主函数main中创建Music类的对象时,需要使用关键字new来动态分配内存。因此,第五个空应填写为:new Music()
创作类型:
原创

本文链接:阅读下列说明、C++代码和运行结果,填补代码中的空缺,将解答填入答题纸的对应栏内。[说明]对部分乐器

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share