软题库 移动APP 扫码下载APP 随时随地移动学习 培训课程
当前位置:信管网 >> 在线考试中心 >> 信息系统项目管理师题库 >> 试题查看
试卷名称 2014年上半年程序员考试下午真题试题(案例分析)
考试中心《2014年上半年程序员考试下午真题试题(案例分析)》在线考试
试卷年份2014年上半年
试题题型【分析简答题】
试题内容

阅读下列说明、C++代码和运行结果,填补代码中的空缺(1)~(5),将解答填入答题纸的对应栏内。
【说明】
    对部分乐器进行建模,其类图如图5-1所示,包括:乐器(Instrument)、管乐器(Wind)、打击乐器(Percussion)、弦乐器(Stringed)、木管乐器(Woodwind)、铜管乐器(Brass)。
   

图5-1  类图
    下面是实现上述设计的C++代码,其中音乐类(Music)使用各类乐器(Instrument)进行演奏和调音等操作。
【C++代码】
#include<iostream>
using namespace std;
enum Note { /* 枚举各种音调 */
    MIDDLE_C, C_SHARP, B_FLAT
};
class Instrument{ /* 抽象基类,乐器 */
public:
     (1) ;    //play函数接口
    virtual void adjust()=0;    //adjust函数接口
};
class Wind  (2)   {
public:
    void play(Note n)  {  cout<<"Wind.play()"<<n<<end1;  }
    void adjust()  {  cout<<"Wind.adjust()"<<end1;  }
};
/* 类Percussion和Stringed实现代码略 */
class Brass  (3)   {
public:
    void play(Note n) {  cout<<"Brass.play()"<<n<<end1;  }
    void adjust()  {  cout<<"Brass.adjust ()"<<end1;  }
};
class Woodwind : public Wind {
public:
    void play(Note n) {  cout<<"Woodwind.play()"<<n<<end1;  }
};
class Music {
public:
    void tune(Instrument* i) {  i->play(MIDDLE_C);  }
    void adjust(Instrument* i) {  i->adjust();  }
    void tuneAll(  (4)  e[], int numIns)  {    /* 为每个乐器定调 */
        for( int i=0; i<numlns; i++)  {
            this->tune(e[i]);
            this->adjust(e[i]);
        }
    }
};
/* 使用模板定义一个函数size,该函数将返回数组array的元素个数,实现代码略 */
int main() {
    Music* music=   (5)  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()


相关试题

推荐文章
合作网站内容