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

admin2015-07-20  32

问题 使用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相等时返回真,否则为假的功能,请在注释∥********3********之后添加适当的语句。
注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。
  #include
  #include
  #define MAXLEN 2 0
  class CEmployee
  {
  private:
    ∥********1********
    int age;
public:
    CEmployee  (char*newName,
char  *newStreet,char  *newCt,
char*newZp,int newAge);
    void alterName(char*newName);
    void display();
    bool IsEqual(char*ename);
    };
    CEmployee::CEmployee(char
    *newName,char  *newStreet,char
    *newCt,char*newZp,int newAge)
    {
   ∥********2********
    age=newAge;
    }
    void CEmployee::alterName(char
    *newName)
    {
    ∥********3********
}
bool CEmployee::I sEqual  (cha:*ename)
{
   ∥********4********
}
void CEmployee::display()
{
    cout  <<  name  <<  “    ”  <•
street<<“  ”;
    cout  <<  city    <<    ¨    ¨<•
zipcode  <<  “    ”<}
void main(void)
{
    CEmployee employee[4]=
    {
    CEmployee(“李伟”,“兴穿
路213号”,“兰州”,“4 134 12”,21)
    CEmployee(“张星”,”南山
街15 7号”,”贵州”,”5 3 4 6 70”,3 0)
    CEmployee(”赵曦”,“北大
街10 8号”,“深圳”,“4 1244 0”,43)
    CEmployee(”刘兰”,“南大
街3 3 0号”,“北京”,”67 0 8 93 n,17)
    };
    for(int i=0;i<4;i++)
    employee.display()
    cout<<”\n修改\II张星\“的名字
为\”刘新\”\ntt<    for(int j=0;j<4;J++)
    {
    if(employee[j].IsEqua
(”张星”))
    {
    employee[j].
alterName(”刘新”);
    employee[j].display();
    break;
    }
    }
}

选项

答案(1)添加语句:char name[MAXLEN],street[MAXLEN],c ity[MAXLEN],z ipcode[MAXLEN]; (2)添加语句: strcpy(name, newName);strcpy(street,newStreet); strcpy(city,newct);strcpy(Zipcode,newZp); (3)添加语句:strcpy(name,newName); (4)添加语句:return strcmp(name,ename)==0 ;

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

最新回复(0)