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

admin2018-10-23  35

问题 使用VC6打开考生文件夹下的源程序文件modi3.cpp,其中定义了用于表示日期的类Date,但类Date的定义并不完整。请按要求完成下列操作,将类Date的定义补充完成。
    (1)定义私有数据成员year、month和day,分别用于表示年、月和日,它们都是int型的数据。请在注释//********1********之后添加适当的语句。
    (2)完成默认构造函数Date的定义,使Date对象的默认值为:year=1,month=1,day=1,请在注释//********2********之后添加适当的语句。
    (3)完成重载构造函数Date(int y,int m,int d)的定义,把数据成员year、month和day分别初始化为参数y、m和d的值,请在注释//********3********之后添加适当的语句。
    (4)完成成员函数print()的类外定义,使其以“年一月一日”的格式将Date对象的值输出到屏幕上,例如:2008-8-8。请在注释//********4********之后添加适当的语句。
    注意:仅在函数指定位置添加语句,请勿改动主函数main与其他函数中的任何内容。
1  #include<iostream.h>
2  class Date {
3  public:
4  //********2********
5
6   Date(int y,int m,int d)
7   {
8  //********3********
9
10  }
11  void print() const;
12  private:
13    //data member
14    //********1********
15
15   };
17  void Date::print()const
18  {
19    //********4********
20
21  }
22  int msin(){
23   Date nationa1_day(1949,i0,1);
24    nationa1_day.print();
25    return 0;
26  }

选项

答案(1)添加语句:int year,month,day; (2)添加语句:Date(){year=1;month=1;day=1;} (3)添加语句:year=y;month=m;day=d; (4)添加语句:cout<<year<<’’-’’<<month<<’’-’’<<day<<end1;

解析 在VC环境下打开程序,根据题干给出的几条功能要求,对程序中给出注释下的内容逐个补全或修改。从已给定源程序的main主函数开始入手,可以看出程序通过调用类Date和函数print实现各种输出操作。
    (1)题目1要求“定义私有数据成员year、month和day,分别用于表示年,月和日,它们都是int型的数据”。在C++程序的private区域中添加变量year、month、day的定义,即在第1个标识下添加“int year,month,day;”。
    (2)题目2要求“完成默认构造函数Date的定义,使Date对象的默认值为:year=1,moath=1,day=1”。在C++中,构造函数是一种特殊的成员函数,它的名字与类同名。在Date构造函数体内,根据题目要求,设置变量默认值“year=1,month=1,day=1”,即:“Date(){year=1;month=1;day=1;}”。
    (3)题目3要求“完成重载构造函数Date(int y,intm,int d)的定义,把数据成员year、month和day分别初始化为参数y、m和d的值。”在构造函数:Date(inty,int m,int d)函数体内,即标识3下,添加赋值语句,将y,m,d赋值给year,month,day,即“year=y;month=m;day=d;”。
    (4)题目4要求“完成成员函数print()的类外定义,使其以“年一月一日”的格式将Date对象的值输出到屏幕上”。在程序中的void Date::print()const函数体内,标识4下,添加输出语句。根据cout输出格式,实现题目中的输出要求,即“cout<<year<<"-’’<<mOnth<<’’-’’<<day<<end1;”。
转载请注明原文地址:https://jikaoti.com/ti/gPt0FFFM
0

最新回复(0)