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

admin2017-03-22  26

问题 使用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********之后添加适当的语句。
    注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。
#include
#include
#defiRe  MAXLEN  20
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::IsEqual  (char
  *ename)
  {
    //********4********
  }
  void CEmployee::display()
  {
    cout  <<  name  <<  "   "  <<
street<<"  ";
    cout  <<  city    <<  "    "<<
zipcode<<"  "<}
void main(void)
{
    CEmployee employee[4]。
    {
    CEmployee("李伟","兴荣路213号","兰州","413412”,21),
    CEmployee("张星","南山街157号","贵州","534670",30),
    CEmployee("赵曦","北大街108号","深圳","412440",43),
    CEmployee("刘兰","南大街330号","北京","670893",17),
    };
    for(int i=0;i<4;i++)
    employee.display();
    cout<<"\n修改\"张星\"的名字为\"刘新\"\n"<    for(int j=0;j<4;j++)
    {
    if(employee[j].IsEqual("张星"))
    {
    employee[j].
alterName("刘新");
    employee[j].display();
    break;
    }
    }
}

选项

答案(1)添加语句: char name[MAXLEN],street [MAXLEN], city[MAXLEN],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;

解析 (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是否相同,可使用字符串比较函数strcmp0,第4个标识下应添加“return strcmp(name,ename)==0;”。
转载请注明原文地址:https://kaotiyun.com/show/Q9Ap777K
0

最新回复(0)