问答题 使用VC6打开考生文件夹下的源程序文件modi3.cpp,其中定义了用于表示日期的类Date,但类Date的定义并不完整,按要求完成下列操作,将类的定义补充完整。 (1)定义私有成员变量year、month、day,分别表示年、月、 日,类型为int。请在注释//********1********后添加适当的语句。 (2)完成构造函数,分别给year、month、day赋值,请在注释//********2********后添加适当的语句。 (3)完成重载符号“+=”的定义,请在注释//********3********后添加适当的语句。 (4)完成print()打印函数,如2008年8月8日到屏幕和文件modi3.txt格式相同,请在注释∥********4********后添加适当的语句。 注意:仅在函数指定位置添加语句,请勿改动主函数main与其他函数中的任何内容。#include<iostream.h>#include<fstream>#include<iomanip>#include<cmath>using namespace std;void WriteFile(int c){ ofstream out1; out1.open("modi3.txt",ios_base::app); out1<<c<< ' '; out1.Close();}void WriteFile(char* str){ Ofstream out1; out1.open("modi3.txt",ios_base::app); out1<<Str;out1.close();}void ClearFile(){ ofstream out1; out1.open("modi3.txt");out1.Close();}Class Date{public: Date(int y,int m,int d) { //********2******** } void print()const; //********3******** { month+=m; int i=month/12; int j=month%12; if(j=0) { year+=(i-1); month=12; } elase { year+=i; month=j; } return *this; }private: //********1********};void Date::print()const{ //********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)添加语句:int year,month,day; (2)添加语句:year=y;month=m;day=d; (3)添加语句:Date&operator+=(int m) (4)添加语句:cout<
【答案解析】解析:(1)题目1要求“定义私有成员变量year、month、day”。在C++程序的private区域中添加变量year、month、day的定义,即在第1个标识下添加“int year,month,day;”。 (2)题目2要求“完成构造函数,分别给year、month、day赋值”。在程序中“Date(int y,int m,int d)”的构造函数中添加给year、month、day赋值的语句,即在第2个标识下添加“year=y;month=m;day=d;”。 (3)题目3要求“完成重载符号“+=”的定义”。在C++中,运算符重载的定义方法是定义一个重载运算符的函数,格式为函数operator+重载运算符号+,所以这里补全“Date&operator+=(int m)”。 (4)题目4要求“完成函数print()打印函数”。在C++中的print()函数中补全其打印功能,即在第四个标识下添加“cout<