A-A+

使用VC++6.0打开考生文件夹下的源程序文件3.cpp 其中定义了用于表示雇员的Emplo

2022-08-05 20:55:02 问答库 阅读 172 次

问题详情

使用VC++6.0打开考生文件夹下的源程序文件3.cpp,其中定义了用于表示雇员的Employee类,但类Em-ployee的定义并不完整。请按要求完成下列操作,将类TC的定义补充完整。 (1)定义私有数据成员name、street、city、zipcode和age分别用于表示姓名、街道、城市、邮编、年龄,除年龄是整型外,其余都是char型的数据。请在注释1之后添加适当的语句。 (2)完成默认构造函数TC的定义,使其把参数传递给私有数据成员name、streel、city、zipcode和age。请在注释2之后添加适当的语句。 (3)完成成员函数aherName(char*newName)的定义。请在注释3之后添加适当的语句。 (4)完成成员函数IsEqual(char*ename)的定义,实现当name相等时返回真,否则返回假的功能。请在注释4之后添加适当的语句。 注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。 试题程序: include<iostream.h> include<string.h) defineMAXLEN20 classTC { private: //********、******** intage; public: TC(char*newName,char*newStreet,char* newCt,char*newZp,intnewAge); voidalterName(char*newName); voiddisplay(); boolIsEqual(char*ename); }; TC::TC(char*newName,char*newStreet,char* newCt,char*newZp,intnewAge) { //********2******** age=newAge; } voidTC::alterName(char*newName) { //********3******** } boolTC::IsEqual(char*ename) { //********4******** } voidTC::display() { cout$amp;请帮忙给出正确答案和分析,谢谢!

参考答案

正确答案:
(1)应添加“charname[MAXLEN],street[MAX-LEN],city[MAXLEN],zipcode[MAXLEN];”。
(2)应添加“strcpy(name,newName);strcpy(street,newStreet);strcpy(city,newCt);strcPy(zipeode,De-wZp);”。
(3)应添加“strcpy(name,newName);”。
(4)应添加“returnstrcmp(name,ename)==0;”。
【解析】本题第1处要求补充类TC的私有数据成员name、street、city、zipcode和age的定义,分别用于表示姓名、街道、城市、邮编、年龄,除年龄是整型外,其余都是char型的数据,由主函数内的对象数组可知,name、street、city、zipcode均为字符数组,故第1处应添加“charname[MAX-LEN],street[MAXLEN],city[MAXLEN],zipcode[MAXLEN];”。构造函数完成成员变量的初始化,这里需要给name、street、city、zipeode赋初值,可利用字符串拷贝函数将参数字符串复制到成员变量中,第2处应添加“strcpy(name,newName);strcpy(street,newStreet);strcpy(city,newCt);strcpy(zipcode,newZp);”。函数al-terName(char*newName)是改变成员变量name的值,即将参数复制给name,可利用字符串拷贝函数strcpy完成复制任务,故第3处应添加“strcpy(name,newName);”。IsEqual(char*ename)函数是比较name成员变量和参数newName是否相同,可使用字符串比较函数strcmp,第4处应添加“returnstrcmp(name,ename)==0;”。

考点:源程序,雇员