使用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)
{
0fstream out1;
out1.open(“modi 3.txt”,ios base::app);
out1<<c<< ‘ ’:
out1.close();
}
void WriteFile(char*str)
{
ofstream out1;
out1.open(“modi3.txt”,ios base::app);
outl<<str;
out1.close();
}
void ClearFiie()
{
ofstream out1;
out1.open(“modi3.txt”);
out1.close();
}
c]ass Date
{
public:
Date(int y,int m,int d)
{
∥********2********
}
void print()const;
∥********3********
{
month+=m;
int i=month/1 2;
int j=month%12;
if(j==0)
{
year+=(i一1);
month=12;
}
else
{
year+=i;
month=j;
}
return*this;
}
private:
∥********1********
};
void Date::print()const
{
∥********4********
WriteFile(year);
WriteFile(“年”);
WriteFile(month);
WriteFile(“月”);
WriteFile(day);
WriteFile(“日”);
}
int msin()
{
ClearFile();
Date Oly—day(2 0 0 8,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<<year<<“年”<<month<<”月”<<day<<”日”<<endl;
【答案解析】在VC环境下打开程序,根据题干给出的几条功能要求,对程序中给出注释下的内容逐个补全或修改。从已给定源程序的main主函数开始入手,可以看出程序通过调用类Date和函数print实现各种输出操作。