首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
使用VC6打开考生文件夹下的源程序文件modi3.cpp,其中定义了用于表示雇员的Employee类,但类Employee的定义并不完整。请按要求完成下列操作,将类CEmployee的定义补充完成。 (1)定义私有数据成员name、street、c
使用VC6打开考生文件夹下的源程序文件modi3.cpp,其中定义了用于表示雇员的Employee类,但类Employee的定义并不完整。请按要求完成下列操作,将类CEmployee的定义补充完成。 (1)定义私有数据成员name、street、c
admin
2015-05-30
39
问题
使用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://kaotiyun.com/show/pPNp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
关于对象成员的构造函数的调用顺序,说法正确的是______。
下列关于运算符重载的描述中,正确的是()。
当需要将一个函数boolisnumber(charc)声明为内联函数时,则此内联函数的函数原型为()。
下面叙述错误的是()。
以下程序的输出结果是()。#include<iostream.h>main(){intm=5;if(m++>5)cout<<m;elsecout<<m--;}
下列关于类和对象的叙述中,错误的是()。
面向对象的模型中,最基本的概念是对象和【】。
有如下的对类“X”的说明,其中______是错误的。classX{
软件文档是软件工程实施中的重要部分,它不仅是软件开发各阶段的重要依据,而且影响软件的______。
针对数组定义intdata[10];,下列表述中错误的是______。
随机试题
南北朝时出现在历史记载中,到唐代变得相当强大,与唐代和平交流居多,且主要居住在今西藏地区的民族是______。
下列属于管制性行政指导的是()
某机电产品国际招标项目,招标人在招标文件中规定投标人可以是中国企业也可以是外国的企业,但货物的原产地必须出自中国。有A、B、C、D、E五家企业参加投标。其中C企业对招标文件中货物原产地的要求有异议,并于开标日3天前以书面形式向招标人提出。A
根据计算机软件保护条例的规定,软件著作权人享有下列哪些权利?
出现大量裸体人物形象,受印度、希腊影响较重的石窟是()。
差别定价
请在【答题】菜单下选择【进入考生文件夹】命令,并按照题目要求完成下面的操作。注意:以下的文件必须都保存在考生文件夹下。在考生文件夹下打开文档“Word.docx”,按照要求完成下列操作并以该文件名“Word.docx”保存文档。
在下列字符中,其ASCⅡ码值最小的一个是
Thegovernmentprovidesemploymentandtrainingservicesforworkersand______forthosewhoaretemporarilyoutofwork.
A、180yuan.B、280yuan.C、380yuan.D、480yuan.B对话中,女士询问男士中国结的价格,男士回答说280元,女士又询问男士能否降低价格,男士回答说这个价格足够低了,物有所值。由此可见,女士应该支付男士280元。
最新回复
(
0
)