首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请使用VC6或使用【答题】菜单打开考生文件夹proj3下的工程proj3,其中包含了日期类Date、人员类Person及排序函数sortByAge和主函数main的定义。其中Person的成员函数eomp~eAge的功能是:将当前Person对象和参数Pe
请使用VC6或使用【答题】菜单打开考生文件夹proj3下的工程proj3,其中包含了日期类Date、人员类Person及排序函数sortByAge和主函数main的定义。其中Person的成员函数eomp~eAge的功能是:将当前Person对象和参数Pe
admin
2015-06-27
59
问题
请使用VC6或使用【答题】菜单打开考生文件夹proj3下的工程proj3,其中包含了日期类Date、人员类Person及排序函数sortByAge和主函数main的定义。其中Person的成员函数eomp~eAge的功能是:将当前Person对象和参数Person对象进行比较,若前者的年龄大于后者的年龄,则返回一个正数;若前者的年龄小于后者的年龄,则返回一个负数;若年龄相同则返回0。注意,出生日期越大,年龄越小。请编写成员函数compareAge。在main函数中给出了一组测试数据,此时程序的正确输出结果应为:
按年龄排序
排序前:
张三男出生日期:1978年4月20日
王五女出生日期:1965年6月3日
杨六女出生日期:1965年9月5日
李四男出生日期:1973年5月30日
排序后:
张三男出生日期:1978年4月20日
李四男出生日期:1973年5月30日
杨六女出生日期:1965年9月5日
王五女出生日期:1965年6月3日
要求:
补充编制的内容写在“//**********333**********”与“//**********666**********”之间,不得修改程序的其他部分。
注意:程序最后将结果输出到文件out.dat中。输出函数WriteToFile已经编译为obj文件,并且在本程序中调用。
//Person.h
#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);
constchar*getName()const(re
turnname;}
boolisMale()const{returnismale;}
DategetBirthdate()const{returnbirthdate;}
intcompareAge(constPerson&p)const;
voidshow()const;
};
voidsortByAge(Personps[],intsize);
voidwriteToFile(char*);
}
voidPerson::show()const{
cout<
cout<
<<(ismale?"男":"女")//显示性别(“男”或“女”)
<<"出生日期:"//显示出生日期
<
<
<
}
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){
Personp=ps[m],
ps[m]=ps
;
ps
=p;
}
}
}
intmain(){
Personstaff[]={
Person("张三",true,Date(1978,4,20)),
Person("王五",false,Date(1965,6,3)),
Person("杨六",false,Date(1965,9,5)),
Person("李四",true,Date(1973,5,30))
};
constintsize=sizeof(staff)/sizeof(staff[0]);
inti;
cout<<"按年龄排序n<
for(i=0;i
.show();
sortByAge(staff,size);
cout<
for(i=0;i
.
show();
cout<
writeToFile("");
return0;
}
选项
答案
int n = 0; n = p.birth_date.getYear() - birth_date.getYear(); if (n != 0) return n; n = p.birth_date.getMonth() - birth_date.getMonth(); if (n != 0) return n; return p.birth_date.getDay() - birth_date.getDay();
解析
compareAge函数的功能是比较年龄大小并排序。先比较年,再比较月,最后是比较日。
转载请注明原文地址:https://www.kaotiyun.com/show/aBBD777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
简述清初统一多民族国家的巩固。(黑龙江大学2013年历史学基础(中国史)真题)
日本历史上的哪个时期与中世纪西欧相似?从政治制度、经济制度、社会结构等方面比较。(厦门大学2014年历史学基础真题)
已知经济体中现金C=3200亿元,银行存款D=1万亿元,超额准备金ER=600亿元,法定准备金率r=0.2。[对外经济贸易大学2014研]计算法定准备金(RR),准备金(R)和基础货币(B)。
我国《宪法》第26条第1款规定:国家保护和改善生活环境和生态环境,防治污染和其他公害。下列哪一选项是正确的?()
对于宪法的归属,甲、乙、丙三个同学有不同看法。甲认为:宪法是一个法律部门,它属于部门法。乙认为:宪法是法的渊源,它属于法的渊源之一。丙认为:宪法是一个规范性法律文件,它属于规范性法律文件的范围。请运用法理学的知识对这些观点加以分析。
结合我国社会主义法治建设的实际,论述全面推进依法治国的重大意义及基本要求。
中国古代重实体轻程序传统终结的标志是哪一部法律的出台()
下列叙述中不属于三层B/S结构数据库应用系统特点和操作特征的是()。
有如下类的定义。横线处的语句是()。classMyClass{public:MyClass(inta=0,intb=0){X=a:Y=b:}voidChan
随机试题
联轴器装配的主要技术要求是应保证两轴的( )要求。
英国把财产划分为_______、_______。
A、呼吸道传播B、口-口接触传播C、粪一口传播D、血液传播E、虫媒传播丙型病毒性肝炎:()
A.DAB.ABVDC.VPD.M2E.VAP
甲有一块玉石,以1000元的价格与乙签订了买卖合同,但没有交付。丙听说甲有一块玉石要售出后,赶紧与甲联系,愿意出2000元购买,甲将玉石卖给丙,并实际交付给丙。乙闻讯遂要求甲赔偿损失,甲不允,乙遂以甲为被告诉之法院。则:()
适用于高温或有强烈太阳辐射地区,属于塑性体防水材料的是()。[2008年真题]
间歇性精神病人在精神正常时有违法行为的,()行政处罚。
早上7点两组农民开始存麦田里收割麦子,其中甲组20人,乙组15人。8点半,甲组分出10人捆麦子;10点,甲组将本组所有已割的麦子捆好后,全部帮乙组捆麦子;如果乙组农民一直在割麦子,且假设每个农民的工作效率相同,则乙组捆好所有已割麦子的时间是:
VLAN在现代组网技术中占有重要地位,同一个VLAN中的两个主机()。
Forthispart,youareallowed30minutestowriteashortessaybasedonthepicturebelow.Youshouldstartyouessaywithab
最新回复
(
0
)