操作题   请使用VC6或使用[答题]菜单打开考生文件夹proj1下的工程proj1。此工程中包含源程序文件main.cpp,其中有类TVSet(“电视机”)和主函数main的定义。程序中位于每个“//ERROR ********found********”之后的一行语句有错误,请加以改正。改正后程序的输出结果应该是:
    规格:29英寸,电源:开,频道:5,音量:18
    规格:29英寸,电源:关,频道:-1,音量:-1
    注意:只修改每个“//ERROR ****found****”下的那一行,不要改动程序中的其他内容。
    #include <iostream>
    using namespace Std;
    class TVSet {  //'电视机'类
    const int size;
    int channel;  //频道
    int volume;  //音量
    bool on;  //电源开关:true表示开,false表示关
    public:
    TVSet (int size): size (size), channel(0), on(false)
    // ERROR ********* found*********
    {}
    int getSize () const { return size; }
    //返回电视机规格
    bool isOn()const{ return on;}    //返回电源开关状态
    //返回当前音量,关机情况下返回-1
    int getVolume () const
    { return isOn()? volume : -1;}
    //返回当前频道,关机情况下返回-1
    int getChannel () const
    { return isOn()? channel: -1; }
    void turnOnOff() { on=! on;}  //将电源在“开”和“关”之间转换
    void setChannelTo (int chan) {    //设置频道(关机情况下无效)
    if(isOn() && chan >=0 && chan< =99)
    // ERROR ********* found*********
    ;
    }
    // ERROR ********* found*********
    void setVolumeTo (int vol)const {  //设置音量(关机情况下无效)
    if(isOn() && vol>=0 && vol <=20)
    volume = vol;
    }
    void show_state() {
    cout << '规格:' <<getSize() << '英寸'<< ',电源:' << (isOn ()? '开' : '关')<< ',频道:' << getChannel ()<< ',音量:' << getVolume () << endl;
    }
    };
   
    int main() {
    TVSet tv (29);
    tv.turnOnOff ();
    tv. setChannelTo (5);
    tv.show_state();
    tv.turnOnOff ();
    tv.show_state();
    return 0;
    }
 
【正确答案】{volume=18;} channel=chan; void setVolumeTo(int vol){
【答案解析】[考点] 本题考查TVSet类,其中涉及构造函数、成员函数、const函数和bool函数。 (1)主要考查考生对构造函数的掌握,有题目要求输出音量为18,因此使用构造函数将volume初始为18。 (2)主要考查考生对成员函数的掌握,满足if条件的要设置频道,即channel=chan;。 (3)主要考查考生对const函数的掌握,函数体内存在语句volume=vol;,使变量的值发生改变,因此不能用const定义函数。