请使用菜单命令或直接用VC6打开考生文件夹下的工程proj3,其中声明了‘Date类,它是一个用于表示日期的类。成员函数isLessThan用以比较两个日期的大小:当第一个日期早于第二个日期时,返回true,否则返回false。请补充完整函数isLessT

admin2016-06-12  35

问题 请使用菜单命令或直接用VC6打开考生文件夹下的工程proj3,其中声明了‘Date类,它是一个用于表示日期的类。成员函数isLessThan用以比较两个日期的大小:当第一个日期早于第二个日期时,返回true,否则返回false。请补充完整函数isLessThan。在main函数中给出了一组测试数据,此情况下程序的输出应该是:
2007—06—21<2007—07—03
2007一06—21>=2007—06—19
2007—06—21<2010一01一01
注意:只需在函数isLessThan的//**********333**********和//**********666**********之间填入若干语句,不要改动程序中的其他内容。
#include”Date.h”
int main(){
Date datel(2007,6,21),date2(2007,7,
3),date3(2007,6,19),date4(2010,1,1);
datel.show();
datel.isLessThan(date2)?cout
  <<"  <  ”:cout<<¨  >=  ",
date2.show();cout<datel.show();
datel.isLessThan(date3)?cout
  <<¨  <  ¨  :cout<<”  >=  ¨;
date3.show();cout<datel.show();
datel.isLessThan(date4)?cout
  <<¨  <  ¨  :cout<<¨  >=  ";
date4.show();cout<writeToFile(”c:\test\.’);//不用考
虑此语句的作用
return 0;
  }
  //proj 3、Date.cpp
  #include”Date.h”
  void Date::show(ostream&os)f
os<(’0。)<<)
bool Date::isLessThan(Date date)
const f
//********** 333**********
//**********666**********
}
//proj3|Date.h
#include
#include
using namespace std;
class Date{
int year;
int month;
int day;
public:
Date(int Y,int m,int d):year
(Y),month(m),day(d){)
int getYear()const{return year;)
int getMonth()const{return month;)
int getDay()const{return day;)
void show(ostream&os=cout)j
bool operator==(Date date)const{
return year==date.year&&month
=date.month&&day==date.day;
}
bool isLessThan(Date date)const;
};
void writeToFile(const char*path);
}

选项

答案bool less=false; if(year
解析 本题考查的是Date类,其中涉及布尔变量、成员函数的使用、逻辑运算符和关系运算符的使用。
【解题思路】
主要考查考生对成员函数、关系运算符和逻辑运算符的掌握,成员函数isLessThan是将该对象本身与参数date进行比较,返回是否小于的布尔值。为了比较isLessThan的调用对象与date的大小,需要依次比较year、month、day三个整数,由于date的year、month、day都是私有成员,所以不能在islessThan中直接使用date的私有成员,而是应该使用date的共有成员函数来返回这些值,再将本身的成员与返回值比较,同时,为了比较时间大小,应该首先将year进行比较,接着是month,最后是day,并将比较结果暂存布尔变量less中,最后返回。
转载请注明原文地址:https://kaotiyun.com/show/BiNp777K
0

最新回复(0)