首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请使用VC6或使用【答题】菜单打开考生文件夹proj2下的工程proj2。此工程中包含一个源程序文件main.cpp,其中有日期类Date、人员类Person及排序函数sortByAge和主函数main的定义。请在横线处填写适当的代码并删除横线,以实现该程
请使用VC6或使用【答题】菜单打开考生文件夹proj2下的工程proj2。此工程中包含一个源程序文件main.cpp,其中有日期类Date、人员类Person及排序函数sortByAge和主函数main的定义。请在横线处填写适当的代码并删除横线,以实现该程
admin
2021-09-05
43
问题
请使用VC6或使用【答题】菜单打开考生文件夹proj2下的工程proj2。此工程中包含一个源程序文件main.cpp,其中有日期类Date、人员类Person及排序函数sortByAge和主函数main的定义。请在横线处填写适当的代码并删除横线,以实现该程序。该程序的正确输出结果应为:
排序前:
张三男出生日期:1978年4月20日
王五女出生日期:1965年8月3日
杨六女出生日期:1965年9月5日
李四男出生日期:1973年5月30日
排序后:
张三男出生日期:1978年4月20日
李四男出生日期:1973年5月30日
杨六女出生日期:1965年9月5日
王五女出生日期:1965年8月3日
注意:只在横线处填写适当的代码,不要改动程序中的其他内容,也不要删除或移动“//****found****”。
{}include
usingnamespacestd;
classDate{//日期类
intyear,month,day;//年、月、日
public:
Date(intyear,intmonth,intday):
year(year),month(month),day(day){}
intgetYear()const{returnyear;}
intgetMonth()const{return
month;}
intgetDay()const{returnday;}
};
classPerson{//人员类
charname[14];//姓名
boolismale;//性别,为true时表示男性
Datebirthdate;//出生日期
public:
Person(char*name,boolismale,
Datebirthdate):ismale(ismale),
birth_date(birth_date){
//**********found**********
strcpy(this->name,________);
}
constchar*getName()const{returnname;}
boolisMale()const{returnis_male;}
DategetBirthdate()const{returnbirth_date;}
intcompareAge(constPerson&p)
const{//比较两个人的年龄,返回正数、0或负数分别表示大于、等于和小于intn;
n=p.birthdate.getYear()
birthdate.getYear();
if(n!=0)returnn;
//**********found**********
if(n!=0)returnn;
returnP.birth_date.getDay()birthdate.getDay();
}
voidshow(){
cout<
cout<
//**********found**********
<<________//显示性别
(“男”或“女”,双引号内不合空格)
<<"出生日期:"//显示出生日期
<
<
<
}
};
voidsortByAge(Personps[],intsize)
{
//对人员数组按年龄的由小到大的顺序排序
for(inti=0;i
{//采用挑选排序算法
intm=i;
for(intj=i+1;j
if(ps[j].compareAge(ps[m])<0)
m=j;
if(m>i){
//**********found**********
PersonP=________
ps[m]=ps
;
ps
=p;
}
}
}
intmain(){
Personstaff[]={
Person("张三",true,Date(1978,4,20)),
Person("王五",false,Date(1965,8,3)),
Person("杨六",false,Date(1965,9,5)),
Person("李四",true,Date(1973,5,30))
};
constintsize=sizeof(staff)/sizeof(staff[0]);
inti;
cout<
for(i=0;i
。
show();
sortByAge(staff,size);
cout<
for(i=0;i
.
show();
cout<
return0;
}
选项
答案
(1)name (2)n = p.birth_date.getMonth() - birth_date.getMonth(); (3)(is_male ? "男" : "女" ) (4)ps[m];
解析
(1)主要考查考生对strcpy函数的掌握,strcpy函数的功能是复制字符串,其格式为:sercpy(字符串1,字符串2);。
(2)主要考查考生对成员函数的掌握,函数功能是比较两个人的年龄,返回正数、0 或负数分别表示大于、等于和小于。前面语句比较了年份,因此这里应该比较月份。
(3)主要考查考生对成员函数的掌握,程序要求显示性别("男"或"女",双引号内不含空格),因此这里要进行判断,使用三目运算符? :完成语句。
(4)这里是一个变量交换操作,使用中间变量p交换ps[m]和ps
的值。
转载请注明原文地址:https://kaotiyun.com/show/Ez5p777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
设有定义intx;floaty;,则10+x+y值的数据类型是()。
关于函数重载,下列叙述中错误的是()。
软件详细设计产生的图如下:该图是()。
请打开考生文件夹下的解决方案文件proj3,其中包含主程序文件main.cpp和用户定义的头文件Array.h,整个程序包含有XArray类的定义和main主函数的定义。请把主程序文件中的XArray类的成员函数sum()的定义补充完整,补充的内容填写在’
下列有关运算符重载的叙述中,正确的是()。
若要对Data类中重载的加法运算符成员函数进行声明,下列选项中正确的是()。
若已定义了类Vehicle,则下列派生类定义中,错误的是()。
已知数组arr的定义如下:intarr[5]={1,2,3,4,5);下列语句中输出结果不是2的是()。
在下列枚举符号中,用来表示“相对于当前位置”文件定位方式的是()。
下列符号中能够作为C++标识符的是()。
随机试题
砌体结构中,当设计无要求时,钢筋混凝土圈梁的纵向钢筋最小值是()。
治疗心源性哮喘可选用:
方某,女性,49岁。咳逆阵作,面赤咽干痛,痰滞咽喉,咯之难出,咳引胸胁痛,舌苔薄黄少津,脉象弦数。治法宜采用
冰片的含量测定采用
老年人长期使用某种中药后,出现大便溏泻、饮食减少、脘腹痞闷等症,该中药是
甲乙双方在买卖合同中约定,10天后甲将自行车卖给乙,该行为属于附期限的民事法律行为。()
经典会被一代代人重读,这样文化,尤其是作为精髓的文化就有了传承。当然有些也是隔代遗传,甚至经过世纪尘封。有些经典的命运非常孤独,有些好得多。经典是时间的造物。在时间中它又有了自己的历史,一些读者会把自己的生命又加人进来。经典不怎么时髦,经典是安静的,经典等
2017年7月27日,中国移动、中国联通、中国电信三大运营商表示,今年9月1日起将全面实施取消:
结合材料回答问题:材料1中华民族历来有重家风、重家教、守家规的传统,好家风的事例可谓不胜枚举。宋代的司马光,在给儿子司马康的家训——《训俭示康》中说道:“平生衣取蔽寒,食取充腹;亦不敢服垢弊以矫俗干名,但顺吾性而已。众人皆以奢靡为荣,
Itiscommonknowledgethathealthyfoodssuchasfruitsandvegetablescontaincertainnutrientsthatpromotegoodhealth—namel
最新回复
(
0
)