使用VC6打开考生文件夹下的源程序文件modi3.cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。完成以下功能: (I)定义CMyTime的私有成员函数m_year、m_month 类型为int,请在注释//********

admin2018-10-23  20

问题 使用VC6打开考生文件夹下的源程序文件modi3.cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。完成以下功能:
    (I)定义CMyTime的私有成员函数m_year、m_month  类型为int,请在注释//********1********后添加适当的语句。
    (2)补充完成CMyTime的构造函数,完成对m_year、m_month  的赋值,请在注释//********2********后添加适当的语句。
    (3)完成print()的输出,请在注释//********3********后添加适当的语句。输出格式如下:
    Current Time year:xx month:xx
    注意:xx表示两位0~9的数字,如Current Time year:08 month:04。
    (4)完成对month的增加函数AddMonth(int m),请在注释//********4********后添加适当的语句。
    注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。
1  #include<iostream.h>
2  class CMyTime
3  {
4  private:
5    //********1********
6
7  public:
8    CMyTime(int year,int month)
9    {
10    //********2********
11
12    }
13    void display()
14    {
15    char yearChar[3];
16   char monthChar[3];
17    yearChar[0]=(m_year%100)/10+’0’;
18    yearChar[1]=(m_year%10)+’0’;
19    monthChar[0]=(m_month%10 )/10+’0’’;
20    monthChar[1]=(m_month%10)+’0’;
21    //********3********
22
23    cout<<’’Current Time¨<<¨  year: ’’<<yearChar<<¨  month:’’<<monthChar<<end1;
24    }
25    void AddMonth(int m)
26    {
27    m_month=m_month-1+m;
28    //********4********
29
30    m_month=m_month%12+1;
31    }
32    void AddYear(int n)
33    {
34    m_year=m_year+n;
35    }
36  };
37  int main()
38  {
39    CMyTime myTime(2006,11);
40    myTime.AddMonth(5);
41    myTime.display();
42    myTime.AddYear(1);
43    myTime.display();
44    return 0;
45  }

选项

答案(1)添加语句:int m_year,m_month; (2)添加语句:m_year:year;m_month=month; (3)添加语句:yearChar[2]=0;monthChar[2]=0; (4)添加语句:m_year+=m_month/12;或m_year=m_year+m_month/12;

解析 程序中定义了类CMyTime,含有m_year和m_month两个成员变量,成员函数display()显示成员变量的值,AddMonth(int m)和AddYear(int n)函数分别改变m_month和m_year个成员变量的值。
    (1)第1个标识下添加CMyTime的私有成员变量m_year、m_month的声明,因此第1个标识下应添加“int m_year,m_month;
    (2)第2个标识下完成类成员构造函数变量的初始化,即将参数分别赋值给m_year和m_month,因此第2个标识下应添加“m_year=year;m_month=month;”。
    (3)第3个标识下准备输出yearChar数组和monthChar数组,字符数组的最后一个字符应该为NULL(0),因此第3个标识下应添加“yearChar[2]=0;monthChar[2]=0;”。
    (4)m_month和参数之和赋值给m_month,其和可能超过12,如果超过12表示下一年了,因此m_year应该加1,故先判断m_month是否比12大,可取m_onth/12和m_year相加,如果m_month没有超过12则m_month/12=0,反之则为1,第4标识下应添加“m_year+=m_month/12;或m_year=m_year+m_month/12;”。
转载请注明原文地址:https://kaotiyun.com/show/XwAp777K
0

随机试题
最新回复(0)