使用VC++6.0打开考生文件夹下的源程序文件3.cpp,其中定义了用于表示日期的类Date,但类Date的定义并不完整,按要求完成下列操作,将类的定义补充完整。 (1)定义私有成员变量year、month、day,分别表示年、月、日,类型为int

admin2013-11-15  24

问题 使用VC++6.0打开考生文件夹下的源程序文件3.cpp,其中定义了用于表示日期的类Date,但类Date的定义并不完整,按要求完成下列操作,将类的定义补充完整。
    (1)定义私有成员变量year、month、day,分别表示年、月、日,类型为int。请在注释1后添加适当的语句。
    (2)完成构造函数,分别给year、month、day赋值。请在注释2后添加适当的语句。
    (3)完成重载符号“+=”的定义,请在注释3后添加适当的语句。
    (4)完成print打印函数,输出到屏幕和文件的格式相同,请在注释4后添加适当的语句。
    注意:仅在函数指定位置添加语句,请勿改动主函数main与其他函数中的任何内容。
    程序正常运行,输出的结果为2008年11月8日。
    试题程序:
#include
#include
#include
#include
using namespace std;
void WriteFile(int c)
{
ofstream out1;
out1.open("3.txt",ios_base::app);
out1<out1.close();
}
void WriteFile(char*str)
{
ofstream out1;
out1.open("3.txt",ios_base::app);
out1<out1.close();
}
void ClearFile()
{
ofstream out1;
out1.open("3.txt");
out1.close();
}
    class Date
    {
    public:
    Date(int y,int m,int d)
    {
    //* * * * * * * * 1 * * * * * * * *
    }
    void print();
    //* * * * * * * * 2 * * * * * * * *
    {
    month+=m:
    int i=month/12:
    int j=month%12;
    if(j==0)
    {year+=(i-1);
      month=12:
    }
    else
    {
    year+=i:
    month=j;
    }
    return *this;
    }
    private:
//* * * * * * * * 3 * * * * * * * *
};
void Date::print()
{
//* * * * * * * * 4 * * * * * * * *
  WriteFile(year);
  WriteFile("年");
  WriteFile(month);
  WriteFile("月");
  WriteFile(day);
  WriteFile("日");
  }
  int main()
  {
ClearFile();
Date Oly_day(2008,8,8);
Oly_day+=3:
Oly_day.print();
return 0;
}

选项

答案(1)应添加“year=y;month=m;day=d;”。 (2)应添加“Date & operator+=(int m)”。 (3)应添加“int year,month,day;”。 (4)应添加“cout<
解析 本题中第3处要求“定义私有成员变量year、month、day”。在C++程序的private区域中添加变量year、month、day的定义,即在第3处添加“int year,month,day;”。
    第1处要求“完成构造函数,分别给year、month、day赋值”。在程序中“Date(int y,int m,int d)”的构造函数中添加给year、month、day赋值的语句,即在第1处添加“year=y;month=m;day=d;”。第2处要求“完成重载符号‘+=’的定义”。在C++中,运算符重载的定义方法是定义一个重载运算符的函数,格式为函数operator+重载运算符号+,所以这里补全“Date&operator+=(int m)”。
    第4处要求“完成函数print()打印函数”。在C++中的print函数中补全其打印功能,即在第四个标识下添加“cout<
转载请注明原文地址:https://kaotiyun.com/show/zXNp777K
0

最新回复(0)