使用VC6打开考生文件夹下的源程序文件modi3.cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。 (1)定义私有数据成员year、month、day,分别用于年、月、日,它们都是int型的数据,请在注释∥********error*

admin2021-02-22  31

问题 使用VC6打开考生文件夹下的源程序文件modi3.cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。
(1)定义私有数据成员year、month、day,分别用于年、月、日,它们都是int型的数据,请在注释∥********error********后添加适当的语句。
(2)完成判断数据成员date2是否是闰年函数intDate::IsLeapYear0定义,返回数据成员date2是否是闰年的值,是则返回1,否则返回0。请在注释∥********2********后添加适当的语句。
(3)设置SetData0的默认时间为:2004.12.1,请在注释∥********3********后添加适当的语句。
(4)完成主函数main(),完成输出date2 is a leapyear,请在注释∥********4********后添加适当的语句。
提示:公元纪年的年数可以被四整除,即为闰年;被100整除而不能被400整除为平年;被100整除也可被400整除的为闰年。
注意:增加或修改代码的位置已经用符号表示出来。请不要修改其他的程序代码。
    1    #include
    2  using namespace std;
    3    C1ass Date
    4    {
    5 public:
    6    ∥********3********
    7    void  SetDate(int  y,int
    m,int n);
    8    int IsLeapYear();
    9    VOid Print()
    10    {cout<    <<  "." <    Ii private:
    12    ∥********1********
    13
    14    };
    15  void Date::SetDate(int  y,int
    m,intd)
    16  {
    17    year=y;
    18    month=m;
    19 day=d;
    20    }
    21  int Date::IsLeapYear()
    22    {
    23    ∥********2********
    24    return
    2s    }
    26  int mein()
    27    {
    28 Date datel,date2 ;
    2 9 datel.SetDate();
    3 0 date2.SetDate(2 0 04,12,1);
    3 1    cout<<“datel:”;
    32 datel.Print();
    33    cout<<“date2:”;
    34 date2.Print();
    35    ∥********4********
    3 6    cout  <<  “date2  iS”<<(“”:
    ”not”)<<“a leapyear.”<    37    return 0;
    3 8  }

选项

答案(1)int year,month,day; (2)将“return”补充完整为:return(year%400== 0)l l(year%4==0&&year%100 1=0); (3)将“void SetDate(int Y,int m,int n);” 补充完整为: void SetDate(int y=2 0 04,int m=12,int n=1); (4)将“cout<< “date2 is”<<(*’:"not。’)<<”a leapyear.fI<
解析 本题中程序的功能是判断2004年是否为闰年。其中成员函数SetDate设置日期,IsLeapYear函数判断是否为闰年。在VC环境下打开程序,根据题干给出的几条功能要求,对程序中给出注释下的内容逐个补全或修改。从已定源程序的main主函数开始入手,可以看出程序通过调用类Date和和其成员函数实现各种功能。
解题思路
(1)题目1要求“定义私有数据成员year、month、day,分别用于年、月、日,它们都是int型的数据”。在程序中的Date类中的priate区域添加数据成员year、month、day的定义即可,其中它们的类型根据题目要求定义为int型。即在第1个标识下添加“int year,month,day;”0
(2)题目2要求“完成判断数据成员date2是否是闰年函数int Date::IsLeapYear0的定义”。公元纪年的年数可以被100整除而不能被400整除为平年;被100整除也可被400整除的为闰年。用程序语言表达为“(year%400~0)ll(year%4=0&&year%100 !=0)”,即在第2个标识补充的返回值语句为“return(year%0400=0)‖(year%4=0&&year%100!=0);”。
(3)题目3要求“设置SetData()的默认时间为:2004-12-1”。程序中类Date的成员函数定义为“void SetDate(int y,int m,int n);”,设置默认时间为:2004—12-1,就是设置SetDate函数中的变量值分别为2004,12,1。即成员函数的定义语句修改为“void SetDate(int y=2004,intm=12,int n=1);”。
(4)题目4要求“完成主函数main(),完成输出date2 isa leapyear”。标识4下的语句“cout<<“date2 is“<<(“”:“not”)<<“a leapyear.”<
转载请注明原文地址:https://jikaoti.com/ti/aZh0FFFM
0

最新回复(0)