题库 题库

【简答题】

请使用VC6或使用【答题】菜单打开考生文件夹pr092下的工程pros2。此工程中包含一个程序文件main.cpp,其中有“部门”类Department和“职工”类Staff的定义,还有主函数main的定义。在主函数中定义了两个“职工”对象,他们属于同一部门。程序展示,当该部门改换办公室后,这两个人的办公室也同时得到改变。请在程序中的横线处填写适当的代码并删除横线,以实现上述类定义。此程序的正确输出结果应为:
改换办公室前:
职工号:0789姓名:张三部门:人事处办公室:521
职工号:0513姓名:李四部门:人事处办公室:521
改换办公室后:
职工号:0789姓名:张三部门:人事处办公室:311
职工号:0513姓名:李四部门:人事处办公室:311
注意:只在横线处填写适当的代码,不要改动程序中的其他内容,也不要删除或移动“//****found****”。
#include
using namespace std;
class Department{ //“部门”类
public:
Department(const char*name,const char*office){
strcpy(this一>name,nanle);
//**********found**********
}
const char*getName()const{return name;}//返回部门名称
//**********found**********
const char*getOffice()const{________} //返回办公室房号
void changeOfficeTo(const char*office){ //改换为指定房号的另一个办公室
strcpy(this一>office,office);
}
private:
char name[20];//部门名称
char office[20];//部门所在办公室房号
};
class staff{//“职工”类
public:
//**********found**********
Staff(const char*my—id,const char木my_name,Department&my_dept):——{
strcpy(this一>staff id,my_id);
strcpy(this一>name,my_name);
}
const char*getlD()const{return staff_id;}
const char*getName()consl{return name;}
Department getDepartment()const{return dept;} char staff=id[10];//职工号
char name[20];//姓名
Department&dept;//所在部门
}; void showStaff(Staff&staff){
cout<<”职工号:”<<STAFF.GETID()<
cout<<”姓名:”<<STAFF.GETNAME()<<"
cout<<”部门:”<<STAFF.GETDEPARTMENT().GETNAME()<<"
cout<<”办公室:”<<STAFF.GETDEPARTMENT().GETOFFICE()<<ENDL;&NBSP;&NBSP;&NBSP; }
int main(){
Department dept(”人事处”,”521”);
Staff Zhang(”0789”,”张三”,dept),Li(”0513”,”李四”,dept);
cout<<”改换办公室前:”<
showStaff(Zhang); showStaff(Li);
//人事处办公室由521搬到311 //**********found********** ———————————————————————一
cout<<”改换办公室后:”<
showStaff(Zhang); showStaff(Li);
return 0; }

参考答案

(1)strCpy(this_>oFFiCE,oFFiCE);
(2)rEturn oFFiCE;
(3)DEpt(my_DEpt)
(4)DEpt.ChAnGEOFFiCETo(”311”);

相关试题

单选题 下列程序的运行结果是( )。
#include class Loeation{
private:
int X,Y;
public: void init(int=0,int=0);
void valueX(int val){X=val;} int valueX(){returnx;}
void valueY(int val){Y=val;} int valueY(){return Y;}};
void Location::init(int initX,int initY) {X=initX;
Y=initY4}
void main(X
{Location A,B;
查看答案
单选题 软件生命周期中的活动不包括( )。 查看答案
单选题 有如下程序:
#inClude using namespaCe std; Class Sample{
friend long fun(Sample S); publiC:
Sample(10ng A.{x=a;} private:
long X;
}; long fun(Sample S){
if(S.x<2)return l;
return S.X*fun(Sample(s.x-1)); }
int main(  ) {
int sum=0;
for(int i=0;i<6;i++) {sum+=fun(Sample(i));}
Cout<<SUM:&NBSP;&NBSP;&NBSP;
}
执行这个程序的输出结果是(  )。
查看答案
单选题 数据库设计中反映用户对数据要求的模式是( )。 查看答案
单选题 Tilil程序的运行结果是( )。
#include void main()
{
int i=1:
while(i<=8)
if(++i%3 1=2)continue: else eout<
}
查看答案
单选题 有如下类声明:
class SAMPLE
{
int n:
public:
SAMPLE(int i=0):n(i){}
void setValue(int nO);
};
下列关于9etValue成员函数的定义中,正确的是(  )。
查看答案
单选题 下面程序的运行结果为( )。
#include class A
static int n;
public:
A(){n=1;}
A(int num){n=hum;} void print(){cout<<N;}&NBSP;&NBSP;&NBSP;
int A::n=2;
void main() {
A a,b(3); a.print(); b.print();
cout<
查看答案
单选题 一个栈的初始状态为空。现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈,则元素出栈的顺序是(  )。 查看答案
单选题 有如下类定义:
class MyClass
{
public:
private:
______________________________________
int data;
};
若要为MyClass类重载流输入运算符“>>”,使得程序中可以“cin>>obj;”的形式改变MyClass类的对象0bj中数据成员data的值,则横线处的声明语句应为( )。
查看答案
单选题 下列关于运算符重载的叙述中,错误的是( )。 查看答案
单选题 设int a=10,b=11,C=12;,表达式(a+B.<C&&B==C的值是(&NBSP; 查看答案
单选题 下列( )是C++语言的有效标识符。 查看答案
单选题 有如下程序:
#include
using namespace std;
class Base
{
public:
void funl(){cout<<”Base\n”;}
virtual void fun2(){eout<<”Base\n”;}
};
class Derived:public Base{
public:
void funl(){eout<<”Derived、n”;}
void fura(){eout<.<”Derived\n”;}
};
void f(Base&B.}b.funl();b.ftm2();}
int main()
{
Derived obj;
f(obj);
return 0;
}
执行这个程序的输出结果是(  )。
查看答案
单选题 对于一个类定义,下列叙述中错误的是( )。 查看答案
单选题 为了使类中的某个成员不能被类的对象通过成员操作符访问,则不能把该成员的访问权限定义为( )。 查看答案
单选题 F列关于栈的叙述正确的是( )。 查看答案
单选题 下面对静态数据成员的描述中,正确的是( )。 查看答案
单选题 有如下程序:
#inClude using namespaCe std; Class MyClass{
publiC:
MyClass(int X):val(X){}
void Print()Const}tout<<”Const:val=”<<VAL<<’\T’;}&NBSP;&NBSP;&NBSP; Print(){tout< private:
int val; };
int main(){
Const MyClass objl(10); MyClass obj2(20);
objl.Print(); obj2.Print(); retum 0;
}
执行这个程序的输出结果是( )。
查看答案
单选题 在数据管理技术发展的三个阶段中,数据共享最好的是(  )。 查看答案
单选题 下面对静态数据成员的描述中,正确的是( )。 查看答案