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

admin2019-06-05  38

问题 使用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与其他函数中的任何内容。
1  #include<iostream.h>
2  #include<fstream>
3  #include<iomanip>
4  #include<cmath>
5  using namespace std;
6  void WriteFile(int c)
7  {
8  ofstream out1;
9  out1.open(’’modi3.txt’’,ios_base::app);
10  out1<<c<<  ’ ’;
11  out1.close();
12  }
13  void WriteFile(char* str)
14  {
15    ofstream out1;
16  out1.open(’’modi3.txt’’,ios_base::app);
17   out1<<str;
18  out1.close();
19  }
20  void ClearFile()
21  {
22    ofstream outl;
23    out1.open(’’modi3.txt’’);
24  out1.close();
25  }
26  class Date
27  {
28  public:
29    Date(int y,int m,int d)
30    {
31    //********2********
32
33    }
34    void print() const;
35    //********3********
36
37    {
38    month+=m;
39    int i=month/12;
40    int j=month%12;
41    if(j==0)
42    {
43    year+=(i-1);
44    month=12;
45    }
46    else
47    {
48    year+=i;
49    month=j;
50    }
51    return *this;
52    }
53  private:
54    //********1********
55
56  };
57  void Date::print() const
58  {
59   //********4********
60
61    WriteFile(year);
62    WriteFile(’’年’’);
63    WriteFile(month);
64    WriteFile(’’月’’);
65    WriteFile(day);
66    WriteFile(’’日’’);
67  }
68  int main()
69  {
70    ClearFile();
71    Date Oly_day(2008,8,8);
72    Oly_day+=3;
73    Oly_day.print();
74    return 0;
78  }

选项

答案(1)添加语句:int year,month,day; (2)添加语句:year=y;month=m;day=d; (3)添加语句:Date & operator+=(int m) (4)添加语句: cout<<year<<’’年’’<<month<<’’月’’<<day<<’’日’’<<end1;

解析 在VC环境下打开程序,根据题干给出的几条功能要求,对程序中给出注释下的内容逐个补全或修改。从已给定源程序的main主函数开始入手,可以看出程序通过调用类Date和函数print实现各种输出操作。
    (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<<year<<’’年’’<<month<<’’月’’<<day<<’’日’’<<end1;”。
转载请注明原文地址:https://jikaoti.com/ti/HgA0FFFM
0

最新回复(0)