首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请使用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
37
问题
请使用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://kaotiyun.com/show/aBBD777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
在美国,赞成“六——三——三学制”,肯定了综合中学的地位,而且提出了“人人的中等教育”的文件是
法律效力与法律实效有联系,但不是同一概念,下列哪一或哪些选项体现了两者的区别?()
清朝乾隆年间,四川重庆府某甲“因戏而误杀旁人”,被判处绞监候。依据清代的会审制度,对某甲戏杀案的处理,适用的程序是
西周时期为保证适用法律的谨慎,防止错杀无辜,对犯罪事实有疑的案件,在司法审判中要经过()程序。
恩格斯说:“一个民族想要站在科学的最高峰,就一刻也不能没有理论思维。”当代科学技术的迅猛发展,产生了一系列新的科学理论研究方法,如控制方法、系统方法、模型化方法等。现代科学思维方法与辩证思维方法的关系是
爱因斯坦狭义相对论已经证明,当宇宙中物体运动速度接近于光速时,人们在地球上可以测出:沿着物体运动方向的长度就会缩短,在它上面的时间流逝就会减慢,即“尺缩钟慢”。这一现象说明
若f(0,0)=0,当(x,y)≠(0,0)时,f(x,y)为如下四式之一,则f(x,y)在点(0,0)处连续的是().
下述关于数据库系统的叙述中,正确的是()。
下列程序的功能是统计字符串中“array”的个数,在程序的空白处应填入的正确选项是()。publicclassFindKeyWords{publicstaticvoidmain(sring[]args){stingtext
设c1和c2是类MyClass的对象,若将前缀运算符"--"和运算符"/"作为类MyClass的友元函数重载,则表达式--c1/c2等价于
随机试题
下列哪一种先天性心脏病可能出现水冲脉及枪击音
甲、乙、丙三人参加射击项目,已知甲的命中率为1/4,乙的命中率为1/2,丙的命中率为1/3,若甲、乙、丙三人各射击一次,则恰有一人命中的概率为()。
Manystudentsfindtheexperienceofattendinguniversitylecturestobeaconfusingandfrustratingexperience.Thelecturersp
下列当事人提起的诉讼,哪些属于行政诉讼受案范围?
【背景资料】某施工单位承包了南方某二级公路D合同段路基施工,其中K8+200~K8+320为沿河路基,设计为浆砌块石路肩挡土墙(见图1),挡土墙最大高度为11.2m,设计高程211.33m,设计洪水位202.10m,常水位198.90m。施工单位
F公司采用平行结转分步法计算产品成本。实际发生生产费用在各种产品之间的分配方法是:材料费用按定额材料费用比例分配;生产工人薪酬和制造费用按实际生产工时分配。月末完工产品与在产品之间生产费用的分配方法是:材料费用按定额材料费用比例分配;生产工人薪酬和制造费用
低热量食物是指含淀粉、糖类等碳水化合物类较少的食物。通过食用低热量食品,可以有效控制能量的摄入量,避免多余能量在体内以脂肪形式储存下来。如果体重已经较重的人改为食用低热量食品,则可在保持饱腹感的同时达到减肥效果。另外,有许多人认为,低热量食物对糖尿病患者也
设f(x)在[0,1]上具有连续导数,且f(0)+f(1)=0。证明
-1/2
•Readtheatriclebelowabouttheneedofemployees.•ChoosethecorrectwordtofilleachgapfrOmA.BorContheopposit
最新回复
(
0
)