问题 问答题

综合应用题使用VC6打开考生文件夹下的工程test10_3,此工程包含一个源程序文件test10_3.cpp,其中定义了用于表示雇员信息的CEmployee类与表示公司信息的Company类,但这两个类的定义并不完整。请按要求完成下列操作。(1)定义Cemployee类的私有数据成员name(大小为50的字符数组)和pay(double型数据),分别用于记录雇员姓名和月薪。请在注释"//**1**"之后添加适当的语句。(2)完成Company类默认构造函数的定义,该构造函数将n值赋值给私有成员num,并完成指针emp所指的n个Cemployee对象空间的申请,请在注释"//**2**"之后添加适当的语句。(3)完成Company类成员函数void Company::add(int code,char name[50],double pay)的定义,该函数将某一雇员的编号code、姓名name及月薪 pay输入到公司信息中。请在注释"//**3**"之后添加适当的语句。(4)完成Company类成员函数void Company::print()的定义,使其以"_ is paid _RMB for one month"的格式输出公司内所有员工的月薪信息。请在注释"//**4**"之后添加适当的语句。注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。源程序文件test10_3.cpp清单如下:#include#includeclass CEmployee{public: void putname(char n[50]){strcpy(name,n);}void getname(char n[50]){strcpy(n,name);} void putpay(double d){pay=d;} double getpay(){return pay;}private: //**1** };class Company{private: CEmployee *emp; int num; public: Company(int n); void add(int code,char name[50],double pay); void print();};Company::Company(int n){ //**2** }void Company::add(int code,char name[50],double pay){ //**3** }void Company::print(){ //**4** for(int i=0;igetname(c); money=(emp+i)->getpay(); cout<

答案

参考答案:(1)char name[50];double pay;(2)num=n;emp=new CEmployee[num];(3)(emp+code)->putname(name);(emp+code)->putpay(pay);(4)char c[50]; double money;

解析:本题考查点为类成员的定义、类成员函数的定义与调用、对象数组的使用。注意指针和动态申请空间new的使用方法。使用指针调用成员应该用"->"符号,new的返回值是指针类型的。

多项选择题
判断题