首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请使用VC6或使用【答题】菜单打开考生文件夹prog2下的工程prog2,此工程中包含一个程序文件main.cpp,其中有“班级”类Class和“学生”类Student的定义,还有主函数main的定义。在主函数中定义了两个“学生”对象,他们属于同一班级。程
请使用VC6或使用【答题】菜单打开考生文件夹prog2下的工程prog2,此工程中包含一个程序文件main.cpp,其中有“班级”类Class和“学生”类Student的定义,还有主函数main的定义。在主函数中定义了两个“学生”对象,他们属于同一班级。程
admin
2016-08-19
85
问题
请使用VC6或使用【答题】菜单打开考生文件夹prog2下的工程prog2,此工程中包含一个程序文件main.cpp,其中有“班级”类Class和“学生”类Student的定义,还有主函数main的定义。在主函数中定义了两个“学生”对象,他们属于同一班级。程序展示,当该班级换教室后,这两个人的教室也同时得到改变。请在横线处填写适当的代码,然后删除横线,以实现上述类定义。此程序的正确输出结果应为:
改换教室前:
学号:0789姓名:张三班级:062113教室:521
学号:0513姓名:李四班级:062113教室:521
改换教室后:
学号:0789姓名:张三班级:062113教室:311
学号:0513姓名:李四班级:062113教室:311
注意:只能在横线处填写适当的代码,不要改动程序中的其他内容。
1 #include
2 using namespace std;
3 class Class{//"班级"类
4 public:
5 C1ass(const char*id,const char*room){
6 strcpy(class id,id);
7 //**********found**********
8 _____
9 }
10 const char*getClassID()const{re-turn class_id;}//返回班号
11 //**********found**********
12 const char*getClassroom()const{____}//返回所在教室房号
13 void changeRoomTo(const char *new_room) { //改换到另一个指定房号的教室
14 strcpy(classroom,new room);
15 }
16 private:
17 char class id[20]; //班号
18 char classroom[20]; //所在教室房号
19 };
20 class Student{ //“学生”类
21 char my id[1 0]; //学号
22 char my name[2 0]; //姓名
23 Class&my class; //所在教室
24 public:
25 //**********found**********
26 Student(const char*the_id,const char*the_name,Class&the_class):_______{:
27 strcpy(my_id,the_id);
28 strcpy(my_name,the_name);
29 }
30 const char*getID()const{return my id;}
31 const char*getName()const{re-turn my_name;}
32 Class getClass()const(return my_class;}
33 };
34 void showStudent(Student*stu){
35 cout<<"学号:"<
getID()<<…" ";
36 cout<<"姓名:"<<stu一>getName()<<" ";
37 cout<<"班级:"<
getClas s().
getClassID()<<" ";
38 cout<<"教室:"<
getClass().getClassroom()<
39 }
40 int main(){
41 Class cla("0 62113","521");
4 Student Zhang("0789","张三",cla),Li("0513","李四",cla);
43 cout<<”改换教室前:”<
44 showStudent(&Zhang);
45 showStudent(&Li);
46 //062113班的教室由521改换到311
47 //**********found**********
48 ______
49 cout<<"改换教室后:"<
50 showStudent(&Zhang);
51 showStudent(&Li);
52 return 0;
53 }
选项
答案
(1)strcpy(classroom,room); (2)retum classroom; (3)my_class(the_class) (4)cla.changeRoomTo("311");
解析
(1)主要考查考生对strcpy函数的掌握情况,根据上一条语句:strcpy(class_id,id);可知,这条语句要复制字符串room,因此使用strcpy函数复制,即strcpy(classroom,room);。
(2)主要考查考生对函数返回值的掌握情况,根据函数要求:返回所在教室房号及函数要求返回的类型为const char*,可以得出这里直接使用return语句返回classroom即可。
(3)主要考查考生对构造函数的掌握情况,先看函数体中:
strcpy(my_id,the_id);
strcpy(my_name,the_name);
可知只有参数Class&the_class未使用,因此在这里使用成员列表初始化给my_class赋初始值。
(4)主要考查考生对成员函数调用的掌握,程序要求062113班的教室由521改换到311。在类Class中已经定义了函数:void changeRoomTo(const char*new_room),因此直接调用函数changeRoomTo即可。
转载请注明原文地址:https://kaotiyun.com/show/2ZNp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
C++流中重载了运算符<<,它是一个()。
下列函数中,哪项是正确的递归函数()。AintFun(intn){if(n<1)return1;elsereturnn*Fun(n+1);}B)
下列叙述中,正确的是()。
下列程序中画线处应填入的语句是classBase{public:voidfun(){cout<<"Baseoffun"<<end1:}};clas
将一个函数声明为一个类的友元函数必须使用关键字【】。
以下哪个不是C++语言中的有效标识符()。
流操作子______可跳过输入流中的前导空白字符。
下列运算符中全都可以被友元函数重载的是
将E-R图转换到关系模式时,实体与联系都可以表示成
在数据库技术中,实体集之间的联系可以是一对_或一对多或多对多的,那么“学生”和“可选课程”的联系为【】。
随机试题
电子计数器测量周期时,若时标信号周期为T0,计数数据为N,测TX=N/T0.
A、崩解剂B、黏合剂C、填充剂D、润滑剂E、填充剂兼崩解剂糊精
人体对X线衰减由大到小排列正确的是
按()因素选择应优先缩短持续时间的关键工作。
对于交易金额较小的、收入费用在资产总额中所占比重较小的、规模效益小的、不会导致投资者等有关各方决策失误或误解的交易或事项,可以合并,粗略反映。()
国际工程的设计通常由()编制概念设计和基本设计。
某中学进行体能测试,有学生中途晕倒,对此你怎么看?
我国乡村男性用于有酬劳动和学习时间比其他9国中最长的国家多()。下列选项中,男性每天无酬劳动的时间最长的国家是()。
品德不良的含义和类型。
有三个关系R、S和T如下:[*9]由关系R和S通过运算得到关系T,则所使用的运算为()。
最新回复
(
0
)