使用VC6打开考生文件夹下的源程序文件modi3.cpp,其中定义了用于表示雇员的Employee类,但类Employee的定义并不完整。请按要求完成下列操作,将类CEmployee的定义补充完成。 (1)定义私有数据成员name、street、c

admin2019-06-05  49

问题 使用VC6打开考生文件夹下的源程序文件modi3.cpp,其中定义了用于表示雇员的Employee类,但类Employee的定义并不完整。请按要求完成下列操作,将类CEmployee的定义补充完成。
    (1)定义私有数据成员name、street、city、zipcode和age分别用于表示姓名、街道、城市、邮编、年龄,除年龄是整型外其余都是char型的数据。请在注释//********1********之后添加适当的语句。
    (2)完成默认构造函数CEmployee的定义,使其把参数传递给私有数据成员name、street、city、zipcode和age。请在注释//********2********之后添加适当的语句。
    (3)完成成员函数alterName(char*newName)的定义。请在注释//********3********之后添加适当的语句。
    (4)完成成员函数IsEqual(char*ename)的定义,实现当name相等时返回真,否则为假的功能,请在注释//********4********之后添加适当的语句。
    注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。
1  #include<iostream.h>
2  #include<string.h>
3  #define  MAXLEN  20
4  class CEmployee
5  {
6   private:
7    //********1********
8
9    int age;
10   public:
11    CEmployee  (char *newName,char  *newStreet,char  *newCt,char *newZp,int newAge);
12    void alterName(char*newName);
13    void display();
14    bool IsEqual(char*ename);
15  };
16   CEmpIoyee::CEmployee  (char*newName,char  *newStreet,char*newCt,char*newZp,int newAge)
17   {
18   //********2********
19
20    age=newAge;
21   }
22  void CEmployee::alterName(char*newName)
23  {
24    //********3********
25
26  }
27  bool CEmployee::IsEqual  (char*ename)
28   {
29    //********4********
30
31   }
32   void CEmployee::display()
33  {
34    cout  <<  name  <<  ’’    ’’<<street<<’’  ’’;
35    cout  <<  city    <<  ’’    ’’<<zipcode<<’’ ’’<<age<<end1;
36  }
37   void main(void)
38   {
39    CEmployee employee[4]=
40    {
41    CEmployee(’’李伟’’,’’兴荣路213号’’,’’兰州’’,’’413412’’,21),
42    CEmployee(’’张星’’,’’南山街157号’’,’’贵州’’,’’534670’’,30),
43    CEmployee(’’赵曦’’,’’北大街108号’’,’’深圳’’,’’412440’’,43),
44    CEmployee(’’刘兰’’,’’南大街330号’’,’’北京’’,’’670893’’,17),
45    };
46    for(int i=0;i<4,i++)
47    employee.display(),
49    cout<<’’\n修改\’’张星\’’的名字为\’’刘新\’’\n’’<<end1;
50    for(int j=0;j<4;j++)
51    {
52    if(employee[j].IsEqual(’’张星’’))
53    {
54    employee[j].alterName(’’刘新’’);
55    employee[j].display();
56    break;
57    }
58    }
59  }

选项

答案(1)添加语句:char name[MAXLEN],street [MAXLEN], city[MAXLZN],zipcode[MAXLEN]; (2)添加语句:strcpy(name,newName);strcpy(street,newStreet); strcpy(city,newCt);strcpy(zipcode,newZp); (3)添加语句:strcpy(name,newName); (4)添加语句:return strcmp(name,ename)==0;

解析 程序中定义了一个表示雇员的类CEmployee,该类定义了私有数据成员name、street、city、zipcode和age分别用于表示姓名、街道、城市、邮编、年龄,同时定义了四个函数包括构造函数以及三个成员函数,分别实现更改雇员姓名,判断雇员姓名以及显示雇员信息功能。
    (1)第1个标识下要求补充类CEmployee的私有数据成员name、street、city、zipcode和age的定义,分别用于表示姓名、街道、城市、邮编、年龄,除年龄是整型外其余都是char型的数据,由主函数内的对象数组可知,name、street、city、zipcode均为字符数组,故第1个标识下应添加“charname[MAXLEN],street[MAXLEN],city[MAXLEN],zipcode[MAXLEN];”。
    (2)构造函数完成成员变量的初始化,这里需要给name、street、city、zipcode赋初值,可利用字符串拷贝函数将参数字符串拷贝到成员变量中,第2个标识下应添加“strcpy(name,newName);strcpy(street,newStreet);strcpy(city, newCt);strcpy(zipcode,newZp);”。
    (3)函数alterName(char*newName)是改变成员变量name的值,即将参数拷贝给name,可利用字符串拷贝函数strcpy()完成拷贝任务,故第3个标识下应添加“strcpy(name.newName);”。
    (4)IsEqual(char*ename)函数是比较name成员变量和参数newName是否相同,可使用字符串比较函数strcmp(),第4个标识下应添加“returnstrcmp(name,ename)==0;”。
转载请注明原文地址:https://kaotiyun.com/show/nm8p777K
0

最新回复(0)