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

admin2019-05-22  29

问题 使用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
    2  #include
    3  #include
    4    #include
    5    using namespace std;
    6    void WriteFile(int c)
    7    {
    8    ofstream out1 ;
    9    outl.open("modi3.txt",iosbase::app);
    10    outl  <<  c<<  ’  ’;
    11    outi.close();
    12   }
    13   void WriteFi le(char*str)
    14   {
    15    ofstream outl;
    16     outl.open("modi3.txt",los_base::app);
    17    outl<    18    outl.close();
    19    }
    20   void ClearFile()
    21    {
    22    ofstream outl ;
    23    outl.open(”modi3.txt”);
    24    outl.close();
    25    }
    26    class Date
    27    {
    28    public:
    12    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 mein()
    69  {
    70    ClearFile();
    71   Date Oly_day(2008,8,8);
    72    Oly_day+=3 ;
    73    OIy_day.print();
    74    return 0;
    75  }

选项

答案(1)添加语句:int year,month,da.y; (2)添加语句:year=y; month=m; da.y=d; (3)添加语句:Date & operator+=(int m) (4)添加语句:cout<
解析 在VC环境下打开程序,根据题干给出的几条功能要求,对程序中给出注释下的内容逐个补全或修改。从已给定源程序的main主函数开始入手,可以看出程序通过调用类Date和函数print实现各种输出操作。
    [解题思路]
    (1)题目1要求“定义私有成员变量year、month、day”。在C++程序的pfivate区域中添加变量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<
转载请注明原文地址:https://jikaoti.com/ti/pkA0FFFM
0

随机试题
最新回复(0)