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

admin2020-06-29  34

问题 使用VC++6.0打开考生文件夹下的源程序文件3.cpp,其中定义了用于表示雇员的Employee类,但类Employee的定义并不完整。请按要求完成下列操作,将类TC的定义补充完整。
    (1)定义私有数据成员name、street、city、zipcode和age分别用于表示姓名、街道、城市、邮编、年龄,除年龄是整型外,其余都是char型的数据。请在注释1之后添加适当的语句。
    (2)完成默认构造函数TC的定义,使其把参数传递给私有数据成员name、street、city、zipcode和age。请在注释2之后添加适当的语句。
    (3)完成成员函数alterName(char*newName)的定义。请在注释3之后添加适当的语句。
    (4)完成成员函数IsEqual(char*ename)的定义,实现当name相等时返回真,否则返回假的功能。请在注释4之后添加适当的语句。
    注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。
    试题程序:
    #include
    #include
    #define MAXLEN 20
    class TC
    {
    private:
    //********1********
    int age;
    public:
    TC(char  * newName,char  *newStreet,char *
    newCt,char*newZp,int newAge);
    void alterName(char*newName);
    void display();
    bool IsEqual(char*ename);
    };
    TC::TC(char*newName,char*newStreet,char*
newCt,char*newZp,int newAge)
{
  //********2********
  age=newAge;
  }
  void TC::alterName(char*newName)
  {
//********3********
}
bool TC::IsEqual(char*ename)
{
  //********4********
}
void TC::display()
{
cout<cout<}
void main(void)
{
TC employee[4]=
{
TC("张三","海淀区复兴路1号","北京","000001",18),
TC("李四","海淀区复兴路2号","北京","000002",19),
TC("王五","海淀区复兴路3号","北京","000003",20),
TC(”赵六”,"海淀区复兴路4号","北京","000004",21)
};
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处要求补充类TC的私有数据成员name、street、city、zipcode和age的定义,分别用于表示姓名、街道、城市、邮编、年龄,除年龄是整型外,其余都是char型的数据,由主函数内的对象数组可知,name、street、city、zipcode均为字符数组,故第1处应添加“char name[MAXLEN],street[MAXLEN],city[MAXLEN],zipcode[MAXLEN];”。构造函数完成成员变量的初始化,这里需要给name、street、city、zipcode赋初值,可利用字符串拷贝函数将参数字符串复制到成员变量中,第2处应添加“strcpy(name,newName);strcpy(street,newStreet);strcpy(city,newCt);strcpy(zipcode,newZp);”。
    函数aherName(char*newName)是改变成员变量name的值,即将参数复制给name,可利用字符串拷贝函数strcpy完成复  制任务,故第3处应添加“strcpy(name,newName);”。IsEqual(char*ename)函数是比较name成员变量和参数newName  是否相同,可使用字符串比较函数strcmp,第4处应添加“return strcmp(name,ename)==0;”。
转载请注明原文地址:https://kaotiyun.com/show/np8p777K
0

最新回复(0)