首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
使用VC6打开考生文件夹下的源程序文件modi3.cpp,其中定义了用于表示雇员的Employee类,但类Employee的定义并不完整。请按要求完成下列操作,将类CEmployee的定义补充完成。 (1)定义私有数据成员name、street、c
使用VC6打开考生文件夹下的源程序文件modi3.cpp,其中定义了用于表示雇员的Employee类,但类Employee的定义并不完整。请按要求完成下列操作,将类CEmployee的定义补充完成。 (1)定义私有数据成员name、street、c
admin
2015-05-30
24
问题
使用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********之后添加适当的语句。
注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。
1 #include
2 #include
3 #define MAXLEN 2 0
4 class CEmployee
5 {
6 private:
7 //********1********
8
9 int age ;
10 public:
11 CEmployee (char*newName,
char *newStreet,char *newCt,
char *newZp,int newAge);
12 void alterName(char*newName);
13 void display();
14 bool IsEqual(char*ename);
15 };
16 CEmployee::CEmployee (char
*newName,char *newStreet,char
*newCt,char*newZp,int newAge)
17 {
18 //********2********
19
20 age=newAge;
21 }
22 void CEmployee::alterName(char *newName)
23 {
24 //********3********
25
26 }
27 bool CEmployee::IsEqual (char *ename)
28 {
29 //********4********
30
31 }
32 void CEmployee::display()
33 {
34 cout << name << " " << street<<" ";
35 cout << city << " "<
36 )
37 void mein(void)
38 {
39 CEmployee employee[4]=
4o {
41 CEmployee("李伟","兴荣路213号","兰州","413412",21),
42 CEmployee("张星","南山街157号","贵州","534670",30),
43 CEmployee("赵曦","北大街108号","深圳","41244 0",43),
44 CEmployee("刘兰","南大街330号","北京","670893",17),
45 };
46
47 for(int i=0;i<4;i++)
48 employee
.display();
49 cout<<"\n修改\"张星\"的名字为\"刘新\"\n"<
50 for(int j=0 ; j<4 ; j++)
51 {
52 if(employee[j].IsEqual ("张星"))
53 {
54 empioyee[j].alterName("刘新");
55
employee[j].display();
56 break;
57 }
58 }
59 }
选项
答案
(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;
解析
程序中定义了一个表示雇员的类CEmployee,该类定义了私有数据成员name、street、city、zipcode和age分别用于表示姓名、街道、城市、邮编、年龄,同时定义了四个函数包括构造函数以及三个成员函数,分别实现更改雇员姓名,判断雇员姓名以及显示雇员信息功能。
[解题思路]
(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);990
(4)IsEqual(char*ename)函数是比较name成员变量和参数newName是否相同,可使用字符串比较函数strcmp(),第4个标识下应添加“return strcmp(name,ename)==0;”。
转载请注明原文地址:https://jikaoti.com/ti/0BE0FFFM
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
在C++中,函数原型不能标识______。
设有关系模式R(A,B,C,D,E,P),其函数依赖集为{E→D,C→B,(C,E)→F,B→A},则R最高达到______。
【】是一种特殊的成员函数,户主要用来为对象分配内存空间,对类的数据成员进行初始化并执行对象的其他内部管理操作。
若有如下类定义:classB{voidfunl(){}protected:doublevarl:public:voidfun2(){}};classD:public
下列关于数组的描述正确的是()。
有如下程序:#include<iostream>usingnamespacestd;classsample{private:intx,y;public:sample(inti
数据库系统与文件系统的最主要区别是()。
冒泡排序在最好情况下时间复杂度为【】。
在C++语言中,唯一的一个三目运算符是【】。
关于模板下列说法不正确的是()。
随机试题
出现肺泡呼吸音增强的疾病是
患者,女,20岁。左乳外上方圆形肿块,质地坚韧,表面光滑,活动度较好,边界清,无压痛。应首先考虑的诊断是
肛瘘手术成败的关键是
功能清热化痰,清心定惊的药物是
处方由调剂处方药品的医疗机构妥善保存,保存期满后经()方可销毁。
患者,男,28岁。诊断为缺铁性贫血。口服铁剂治疗,下面哪句话说明患者需要护士给予服药指导
试回答轮廓标工程质量检验评定标准的相关问题。轮廓标工程质量检验评定的实测项目为()。
根据《合同法》,下列合同转让合法生效的是()。
高层建筑物箱形基础施工在后浇带施工缝处,钢筋()。
设f(x)在(1—δ,1+δ)内存在导数,f’(x)严格单调减少,且f(1)=f’(1)=1,则()
最新回复
(
0
)