问答题
使用VC6打开考生文件夹下的源程序文件modi3.cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。完成以下功能: (1)定义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********后添加适当的语句。 注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。#include<iostream.h>class CMyTime{private: //********1********public: CMyTime(int year,int month) { //********2******** } void display() { char yearChar[3]; char monthChar[3]; yearChar[0]=(m_year%100)/10+'0'; yearChar[1]=(m_year%10)+'0'; monthChar[0] =(m_month%100)/10+'0'; monthChar[1] =(m_month%10)+'0'; //********3******** cout<<"Current Time"<<" year: "<<yearChar<<" month:"<<monthChar<<endl; } Void AddMonth(int m) { m month=m month一1+mj //********4******** m month=m month%12+1; } Void AddYeam(int n) { m_year=m_year+n; }};int main(){ CMyTime myTime(2006,11); myTime.AddMonth(5); myTime.display(); myTime.AddYear(1); myTime.display(); return 0;}
【正确答案】正确答案:(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;
【答案解析】解析:(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(O),因此第3个标识下应添加“yearChar[2]=0;monthChar[2]=0;”。 (4)m month和参数之和赋值给m_month,其和可能超过12,如果超过12表示下一年了,因此m_year应该加1,故先判断m_month是否比12大,可取m_month/12和m_year相加,如果m_month没有超过12则m_month/12=0,反之则为1,第4标识下应添加“m_year+=m_month/12;或m_year=m_year+m_month/12;”。