问题 问答题

请使用VC6或使用[答题] 菜单打开考生文件夹proj2下的工程proj2。此工程中包含一个源程序文件main. cpp,其中有“房间”类Room及其派生出的“办公室”类Office的定义,还有主函数main的定义。请在程序中“//****found****”下的横线处填写适当的代码并删除横线,以实现上述类定义。此程序的正确输出结果应为:
办公室房间号:308
办公室长度:5.6
办公室宽度:4.8
办公室面积:26.88
办公室所属部门:会计科
注意:只能在横线处填写适当的代码,不要改动程序中的其他内容,也不要删除或移动“//****found****”。
#include<iostream>
using namespace std;
class Room //"房间"
int room_no; //房间号
double length; //房间长度(m)
double width; //房间宽度(m)
public :
Room( int the_room_no, double the length, double the_width ) : roomno (the_room_no) , length ( the_length) , width ( the_width )
int theRoomNo() const return roomno ;
//返回房间号
double theLength()const return length; //返回房间长度
double theWidth()const return width; //返回房间宽度
//********** found **********
double theArea () const ______ //返回房间面积(矩形面积)
;
class Office: public Room //"办公室"类
char * depart; //所属部门
public :
Office(int the_room_no, double the_length, double the_width, const char * the_depart)
//********** found **********
:______
depart = new char[ strlen(the_depart) + 1 ] ;
//********** found **********
strcpy (______) ;
~Office() delete []depart;
const char * theDepartment() const return depart; //返回所属部门
;
int main()
//********** found **********
Office ______;
cout << "办公室房间号:" << an_office. theRoomNo() << endl
<< "办公室长度:" << an_office. theLength() << endl
<< "办公室宽度:" << an_office. theWidth() << endl
<< "办公室面积:" << an_office. theArea() << endl
<< "办公室所属部门" << an_office. theDepartment() << endl;
return 0 ;

答案

参考答案:(A)reLurn iength *width;
(B)Room(the_room_no, the_length, the_width)
(C)depart, the_depart
(D)an_office(C0H, E.F, D.H,"会计科")
[考点分析] 主要考查的是Room类及其派生类Office,其中涉及构造函数,const函数,动态数组,析构函数。strcpy函数用于复制字符串,其格式为:strcpy(字符串A,字符串B)。
[解题思路] (A)主要考查考生对成员函数的掌握,题目要求返回房间面积(矩形面积)。由此可知空格部分要填写的是一个return语句,返回房间面积,也就是length*width,因此可以得出程序return length * width; 。
(B)主要考查考生对派生类的构造函数的掌握,派生类的构造函数要使用成员列表初始法先对基类进行初始化。
(C)考查strcpy函数,由前一条语句“depart=new char[strlen(the_depart)+A]; ”可知,程序给depart分配了长度为the_depart串长加A的空间,因此要复制字符串the_depart串到depart,直接填写“strcpy(depart, the_depart)”即可。
(D)主要考查考生对类的掌握,题目要求输出的结果为:
办公室房间号:C0H
办公室长度:E.F
办公室宽度:D.H
办公室面积:BF.HH
办公室所属部门:会计科
由Office类的构造函数可知要定义的一个Office类的对象为an_office(C0H, E.F, D.H, ”会计科”)。

单项选择题
判断题