首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
使用VC6打开考生文件夹下的源程序文件modi3.cpp,其中定义了用于表示雇员的Employee类,但类Employee的定义并不完整。请按要求完成下列操作,将类CEmployee的定义补充完成。 (1)定义私有数据成员name、street、city、
使用VC6打开考生文件夹下的源程序文件modi3.cpp,其中定义了用于表示雇员的Employee类,但类Employee的定义并不完整。请按要求完成下列操作,将类CEmployee的定义补充完成。 (1)定义私有数据成员name、street、city、
admin
2016-10-28
25
问题
使用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<iostream.h>
#include<string.h>
#define MAXLEN20
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,intnewAge)
{
//********2********
age=newAge;
}
void CEmployee::alterName(char*newName)
{
//********3********
}
bool CEmployee::IsEqual(char*ename)
{
//********4********
}
void CEmployee::display()
{
cout<<name<<" "<<street<<" ";
cout<<City<<" "<<zipcode<<" "<<age<<endl;
}
void mein(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"<<endl;
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个标识下应添加“char name[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,可利用字符串拷贝函数strcpy0完成拷贝任务,故第3个标识下应添加“strcpy(name,newName);”。
(4)IsEqual(char*enamel函数是比较name成员变量和参数newName是否相同,可使用字符串比较函数strcmp(),第4个标识下应添加“return strcmp(name,ename)==0;”。
转载请注明原文地址:https://jikaoti.com/ti/dYE0FFFM
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
有如下程序:#include<iostream>usingnamespacestd;template<typenameT>Ttotal(T*data){Ts=0;While(*dat
在重载运算符函数时,下面()。运算符必须重载为类成员函数形式。
面向对象的模型中,最基本的概念是对象和【】。
Jackson结构化程序设计方法是英国的M.Jackson提出的,它是一种面向【】的设计方法。
分布式数据库系统不具有的特点是
在双链表中,每个节点有两个指针域,一个指向前驱节点,另一个指向【】。
下列类的定义中,有()处语法错误。classBase {public:Base(){}Base(inti){data=i;
在C++中,打开一个文件,就是将这个文件与一个()建立关联,关闭一个文件,就是取消这种关联。
A、 B、 C、 D、 D面向对象设计方法与面向过程设计方法有本质的不同,其基本原理是:使用现实世界的概念抽象地思考问题从而自然地解决问题。其特点包括:分类性、多态性、封装性、模块独立性、继承和多态性等。模块
随机试题
在我国,除了对医务人员行为实行法律监督外,还有以下方式来监督医务人员的道德行为
A.尺神经B.正中神经C.桡神经D.桡神经和尺神经E.正中神经和尺神经能引起垂腕的神经损伤是
黄某住甲市A区,因涉嫌诈骗罪被甲市检察院批准逮捕。由于案情复杂,期限届满侦查不能终结,侦查机关报请有关检察机关批准延长1个月。其后,由于该案重大复杂,涉及面广,取证困难,侦查机关报请有关检察机关批准后,又延长了2个月。但是,延长2个月后,仍不能侦查终结,且
某运转设备的安装水平度允许偏差为纵向0—10,/1000、横向0.20,/1000,测量人员可选用的水平仪精度有()。
横向关系的查核重点是分析与纳税有关的()。
人民法院审理行政案件的依据是()。
有两盏4米高的路灯相距10米。一个身高1.5米的路人走在这两盏路灯之间,则他的两个影子的总长度为()米。
简述波士顿矩阵的运用。
某地出租车计价标准如下:3千米以内(含3千米)为起步价8元,超出3千米但不超过10千米的部分每千米收费1.4元,超出10千米的部分每千米加价50%。小王乘坐该地出租车共计付费34.6元,则小王乘出租车走的路程为()千米。
A、Seeingafilm.B、Attendinganeveningparty.C、Havinganothertry.D、Findingabettertheatre.AM:I’mreallydisappointedwi
最新回复
(
0
)