首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
使用VC6打开考生文件夹下的源程序文件modi3.cpp,其中定义了用于表示雇员的Employee类,但类Employee的定义并不完整。请按要求完成下列操作,将类CEmployee的定义补充完成。 (1)定义私有数据成员name、street、c
使用VC6打开考生文件夹下的源程序文件modi3.cpp,其中定义了用于表示雇员的Employee类,但类Employee的定义并不完整。请按要求完成下列操作,将类CEmployee的定义补充完成。 (1)定义私有数据成员name、street、c
admin
2019-06-05
52
问题
使用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<iostream.h>
2 #include<string.h>
3 #define MAXLEN 20
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 CEmpIoyee::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 << ’’ ’’<<zipcode<<’’ ’’<<age<<end1;
36 }
37 void main(void)
38 {
39 CEmployee employee[4]=
40 {
41 CEmployee(’’李伟’’,’’兴荣路213号’’,’’兰州’’,’’413412’’,21),
42 CEmployee(’’张星’’,’’南山街157号’’,’’贵州’’,’’534670’’,30),
43 CEmployee(’’赵曦’’,’’北大街108号’’,’’深圳’’,’’412440’’,43),
44 CEmployee(’’刘兰’’,’’南大街330号’’,’’北京’’,’’670893’’,17),
45 };
46 for(int i=0;i<4,i++)
47 employee
.display(),
49 cout<<’’\n修改\’’张星\’’的名字为\’’刘新\’’\n’’<<end1;
50 for(int j=0;j<4;j++)
51 {
52 if(employee[j].IsEqual(’’张星’’))
53 {
54 employee[j].alterName(’’刘新’’);
55 employee[j].display();
56 break;
57 }
58 }
59 }
选项
答案
(1)添加语句:char name[MAXLEN],street [MAXLEN], city[MAXLZN],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个标识下应添加“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是否相同,可使用字符串比较函数strcmp(),第4个标识下应添加“returnstrcmp(name,ename)==0;”。
转载请注明原文地址:https://kaotiyun.com/show/nm8p777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
在公有派生时,派生类中定义的成员函数只能访问原基类的()。A)私有成员、保护成员和公有成员B)保护成员和私有成员C)公有成员和保护成员D)公有成员和私有成员
下列工具中,不属于结构化分析的常用工具的是()。A)PAD图B)数据字典C)判定树D)数据流图
下列哪种数据模型可以用树形结构来表示实体之间联系()。A)网状模型B)数据模型C)关系模型D)层次模型
执行下列语句后,变量n的值是______。intn=0;for(inti=1;i<=3;i++)for(intj=1;j<<=i;j++)n++;
数据流的类型有______和事务型。
A、 B、 C、 D、 C软件的生命周期可分为软件定义、软件开发及软件运行维护三个阶段。其中软件定义阶段的主要工作有可行性研究与计划制订和需求分析等;软件开发阶段的主要工作有概要设计、详细设计和测试等;软件运
当派生类从一个基类保护继承时,基类中的一些成员在派生类中成为保护成员,这些成员在基类中原有的访问属性是()。A)任何B)公有或保护C)保护或私有D)私有
C++中的模板分为函数模板和______。
随机试题
求函数f(χ)=cos2χ+sinχ(0≤χ≤π)的极值。
病人侧卧位时,腰穿脑脊液的压力超过多少提示颅内压增高
A.久益气利水B.温阳利水C.滋阴利水D.行气利水E.清热利水猪苓汤的功用是
心室收缩时颈静脉有搏动,可见于()
A.氧化反应B.重排反应C.卤代反应D.甲基化反应E.乙基化反应第Ⅰ相生物转化代谢中发生的反应是()。
法与共产党的政策在表现形式上不同,表现在()
请根据自已的经验,谈谈教学前反思、教学中反思和教学后反思各需要反思些什么。
违法行为在一年内没有被发现的,不再给予行政处罚。()
下列属于南京国民政府司法院及其大法官会议享有的职权是()。
江泽民指出:只要我们党始终成为中国先进生产力的发展要求、中国先进文化的前进方向、中国最广大人民的根本利益的忠实代表,我党就能永远立于不败之地,永远得到全国各族人民的衷心拥护并带领人民不断前进。“三个代表”重要思想的正式提出是在()。
最新回复
(
0
)