首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请使用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
44
问题
请使用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全国计算机二级
相关试题推荐
简述秦巩固统一的措施、意义。(云南大学2013年历史学综合真题)
以戊戌变法和辛亥革命为例,分析改革与革命对中国现代化的影响。(南京大学2003年中国近现代史真题)
8位电脑专家对4种防病毒软件性能进行1~10的等级评定,1表示非常不好,10表示非常优越,方差分析表总结了评估结果。请补充下表的空白。
初学电脑打字时,练习次数越多,错误就会越少,这属于()
在世界教育史上,第一个提出建立一个统一学校体系的教育家是()。
(2010年真题)我国民间有“嫁出去的女儿,泼出去的水”的说法。请根据《婚姻法》和《继承法》中有关家庭成员之间的权利义务关系的规定,对这种说法进行分析。
(2015年真题)甲系精神病人,有亲属如下:母亲,75周岁,瘫痪在床;弟弟,48周岁,工人;儿子,20周岁,在校大学生;女儿,17周岁,无业。甲的监护人应为()。
设函数f(x)在点x=1的某邻域内有定义,且满足3x≤f(x)≤x2+x+1,则曲线y=f(x)在点x=1处的切线方程为________.
在考生文件夹下的“职员管理”数据库中完成下列基本操作:(1)为“员工信息”表增加一个字段,字段名为“EMAIL”,类型为“字符型”,宽度为“20”。(2)设置“员工信息”表中“性别”字段的有效性规则,性别取“男”或“女”,默认值为“女”。
下列叙述中,正确的是()。
随机试题
基金财产可以用于下列哪种投资?()
贺拉斯最重要的美学著作是______。A.《诗品》B.《诗学》C.《诗艺》D.《美学》
A.骨髓细胞内可见Auer小体B.中性粒细胞碱性磷酸酶积分增高C.Ph’染色体阳性D.糖原染色阳性慢性粒细胞性白血病
患者,女性,32岁,有心脏病病史6年。最近感心悸。体检:心率100次/分,心律不齐,第一心音强弱不等,心尖区可闻及舒张期隆隆样杂音。目前的药物治疗应选用
为了落实司法便民,检察院开设了网上举报、申诉和信息查询系统,法院实现网上预约立案和电子签章,公民对国家机关实行网上监督收效明显。关于网络技术在法治建设中的作用,下列哪一选项是不正确的?()(司考.2010.1.2)
假设开发法中的开发期包括()。
排水管道定线考虑的因素除了地形和用地布局和排水体制外,还应该有()。
某土坝工程级别为2级,采用黏性土填筑,其设计压实度应为()。.
《安全生产法》规定,从业人员发现事故隐患或者其他不安全因素,应当立即向()报告;接到报告的人员应当及时予以处理。
《清明上河图》以写实的手法记录了北宋开封的繁荣景象。下列场景中不可能在画中出
最新回复
(
0
)