简答题:请使用VC6或使用【答题】菜单打开考生文件夹projl下的工程projl,此工程中包含一个源程序文件main.cpp,其

  • 题目分类:C++
  • 题目类型:简答题
  • 查看权限:VIP
题目内容:
请使用VC6或使用【答题】菜单打开考生文件夹projl下的工程projl,此工程中包含一个源程序文件main.cpp,其中有类Book(“书”)和主函数main的定义。程序中位于每个“//ERROR****found****”下的语句行有错误,请加以改正。改正后程序的输出结果应该是:
书名:C++语句程序设计总页数:299
已把“c++语言程序设计”翻到第50页
已把“c++语言程序设计”翻到第51页
已把“c++语言程序设计”翻到第52页
已把“c++语言程序设计”翻到第51页
已把书合上。
当前页:0
注意:只修改每个“//ERROR ***found***”下的那一行,不要改动程序中的其他内容。
#include<iostream>
using namespace std;
class Book{
char*title;
int num—pages;//页数
int cur_page;//当前打开页面的页码,0表示书未打开
public:
//ERROR***********found***********
Book(const char*theTitle,int pages)num_pages(pages)
{
title=new char[strlen(theTitle)+1];
strepy(title,theTitle);
cout<<endl<<”书名:”<<title
<<”总页数:”<<num_pages;
}
~Book(){delete[]title;}
bool isClosed()const{return cur_page==0;} //书合上时返回true,否则返回false
bool isOpen()const{return!isClosed();}//书打开时返回true,否则返回false
int numOfPages()const{return num_pages;}//返回书的页数
int currentPage()const{return cur_page;}//返回打开页面的页码
//ERROR***********found***********
void openAtPage(int page_no)const{ //把书翻到指定页
cout<<endl:
i“page_no<l Jj page_no>hum_pages){
tOUt<<”无法翻到第”<<cur page<<”页。”;
ClOSe();
}
else{
cur_page=page_n0;
tout<<”已把“"<<tide<<"”翻到第"<<cur page<<“页”;
}
}
void openAtPrevPage(){openAtPage(cur page—1);{//把书翻到上一页
void openAtNextPage(){openAtPage(cur_page+1);}//把书翻到下一页
void close(){//把书合上
tout<<endl:
if(isClosed())
tout<<"书是合上的。";
else{
//ERROR**********found**********
num_pages=0;
cout<<”已把书合上。”;
}
cOut<<endl:
}
};
int main(){
Book book(”C++语言程序设计”,299);
book.openAtPage(50);
book.openAtNextPage();
book.openAtNextPage();
book.openA.tPrevPage();
book.close();
tout<<”当前页:”<<book.currentPage()<<endl;
return 0:
}
参考答案:
答案解析:

有如下程序: #include<iostream>using namespace std; class Pair{i

有如下程序: #includeusing namespace std; class Pair{int m,n; public:

查看答案

有如下程序: #nclude<iostream>using namespace std; int main(){vo

有如下程序: #ncludeusing namespace std; int main(){void function(do

查看答案

下列字符串中。不可以用做c++标识符的是(  )。

下列字符串中。不可以用做c++标识符的是(  )。 A.y_2006 B._EST_H C.Return D.switch

查看答案

有如下说明: int a[10]={1,2,3,4,5,6,7,8,9,10},* P=a; 则数值为9的表达式是( )

有如下说明: int a[10]={1,2,3,4,5,6,7,8,9,10},* P=a; 则数值为9的表达式是( )。 A.*P+9 B.木(P+8) C

查看答案

我们说儒家是道德至上或者道德决定论的时候,是一种宏观上的总体定性和评价。所谓“子罕言利”或者“小人喻于利”,是着眼于人作

我们说儒家是道德至上或者道德决定论的时候,是一种宏观上的总体定性和评价。所谓“子罕言利”或者“小人喻于利”,是着眼于人作为一种道德存在.超越存在的“应然”特质而

查看答案