问答题

使用VC6打开考生文件夹下的工程test26_3。此工程包含一个test26_3.cpp,其中定义了类queue,但该类的定义并不完整。请按要求完成下列操作,将程序补充完整。 (1)完成类queue的无参数的构造函数的定义,要求把数据成员bl和el都初始化为0,同时输出queue initialized。请在注释“//**1**”之后添加适当的语句。 (2)完成类queue的成员函数qput(int j)的定义,它的功能是把新的元素加入队列,过程是先依据bl的值判断数组是否已经满了,如果是就输出queue is full,否则bl自加一,并且把参数j的值存入bl指向的数组元素中,请在注释“//**2**”之后添加适当的语句。 (3)完成类queue的成员函数qget()的定义,它的功能是把队列开头的元素提取出队列,并返回该值,过程是先比较el和bl的值判断队列是否已空,如果是就输出queue is empty,否则el自加一,并且把el指向的数组元素返回,请在注释“// **3**”之后添加适当的语句。 程序输出结果如下: queue initialized queue initialized 33 11 44 22 注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。 源程序文件test26_3.cpp清单如下: #include<iostream.h> class queue { int q[100]; int bl,el; public: queue( ); void qput(int j); int qget( ); }; queue::queue( ) { // **1** } void queue::qput(int j) { // **2** { cout<<"queue is full\n"; return; } bl++; q[bl]=j; } int queue::qget( ) { // **3** { cout<<"queue is empty\n"; return 0; } el++; return q[el]; } void main( ) { queue aa,bb; aa.qput(11); bb.qput(22); aa.qput(33); bb.qput(44); cout<<aa.qget()<<" "<<aa.qget()<<"\n"; cout<<bb.qget()<<" "<<bb.qget()<<"\n"; }

【参考答案】

(1) bl=el=O; cout<<"queue initialized\n"; (2) if(bl==100) (......

(↓↓↓ 点击下方‘点击查看答案’看完整答案 ↓↓↓)
热门 试题