使用VC6打开考生文件夹下的工程test18_3,此工程包含一个源程序文件test18_3.cpp,其中定义了用于表示雇员的类 Employee,但类Employee的定义并不完整。请按要求完成下列操作,将类Employee的定义补充完整。 (1)补

admin2009-01-15  92

问题 使用VC6打开考生文件夹下的工程test18_3,此工程包含一个源程序文件test18_3.cpp,其中定义了用于表示雇员的类 Employee,但类Employee的定义并不完整。请按要求完成下列操作,将类Employee的定义补充完整。
   (1)补充类Employee的构造函数,请使用字符串函数将数据成员name,address,city,province和zipcode分别初始化为参数*nm,*addr,*city,*prov和*zip的值。请在注释“//**1**”之后添加适当的语句;
   (2)完成类Employee的成员函数ChangeName(char * newName)的定义,将newName指向的内容赋值给数据成员name,请在注释“//**2**”之后添加适当的语句;
   (3)完成类Employee的成员函数Display()的定义,先使用指针buffer动态申请一个char型的200单位大小的空间,然后使用字符串函数将数据成员name和address依次复制其中,最后返回该指针buffer,将请在注释“//**3**”之后添加适当的语句。输出结果如下:
   王东建国路大街105号
   注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。
   源程序文件test18_3.cpp清单如下:
     #include <iostream.h>
     #include <string.h>
     class Employee{
     protected:
      char name[20];
      char address[100];
      char city[20];
      char province[20];
      char zipcode[10];
     public:
      Employee(char *nm, char *addr,char *city,  char *prov, char *zip);
      void ChangeName(char *newName);
      char *Display();
    };
    Employee::Employee(char *nm, char *adr,  char *cit, char *prov, char *zip)
    {
     //**1**
    strcpy(city, cit);
      strcpy(province,prov);
      strcpy(zipcode,zip);
    }
    void Employee::ChangeName(char * newName)
   {
    //**2**
   }
   char *Employee::Display()
   {
    //**3**
   strcat(buffer,  address);
    return buffer;
   }
   void main()
   {
   Employee emp("李华","建国路大街105号","石家庄","河北","103400");
   emp. ChangeName ("王东");
   cout<<emp.Display()<<end1;
  }

选项

答案(1) strcpy(name,nm); strcpy(address,adr); (2) strcpy(name,newName); (3) char *buffer=new char[200]; strcpy(buffer,name);

解析 本题主要考查考生对于类的定义和字符串函数的灵活运用。算法如下:先使用strchr函数将名字中的空格找到,然后替换成为字符串结束标志,接着使用strcpy函数将被切断的字符串后面的部分复制到一个新的字符串newName中,再使用strcat函数连接“,”和原字符串的前半部分。
转载请注明原文地址:https://kaotiyun.com/show/GOID777K
0

最新回复(0)