问题 问答题

编程题(20分)【题目】试定义一个时间类time,具体要求如下:(1)私有数据成员。int h,m,s:分别表示时、分和秒。char *str_t:存放时间的字符串,格式为"hh:mm:ss",即"时:分:秒"。(2)公有成员函数。time(int hh=0,int mm=0,int ss=0):构造函数,利用参数hh、mm和ss分别初始化成员h、m和s,并为字符串str_t分配9个字节的动态存储空间。要检查参数hh、mm和ss的合法性,即0≤hh<24,0≤mm<60,0≤ss<60,如果不合法,则采用相应的缺省参数值。~time():析构函数,撤销str_t所占用的动态存储空间。void convert():利用全局函数itoa()将成员h、m和s转换为字符串"hh:mm:ss"的形式,并存储在str_t中。void set_t(int hh,int mm,int ss):利用参数hh、mm和ss分别设置成员h、m和s的值,同时调用成员函数convert()设置成员str_t。注意检查参数的合法性。void print():输出字符串str_t,按输出示例中的格式输出时间。(3)char *itoa(int n):全局函数,将整数n转换为字符串形式并返回。只考虑n至多为两位数的情形:当n为一位数时,如n=2,将n转换为"02"的形式;当n为两位数时,如n=59,将n转换为"59"的形式。(4)在主函数中对该类进行测试。输出示例:00:00:0012:05:30【要求】源程序文件名必须为myfb.cpp,并放在T盘根目录下,供阅卷用。

答案

参考答案:

#inelude     #include     class time{       int h,m,s;       char *str_t;    public:    -       time(int hh=0,int mm=0,int ss=0)        :h(hh>=0 && hh=0 && mm=0 &&ss=0 && mm=0 && ss<    F0 ss:0);     *str_t=’\0’:     convert();    }    void time::convert()    {      char *tmp;      tmp=itoa(h);      strcat(str t,tmp);      strcat(str_t,":");      tmp=itoa(m);      strcat(str_t,tmp);      strcat(str_t,":");      tmp=itoa(s);      strcat(str_t,tmp);      delete []tmp;   }   void main()   {    time tA;    tA.convert();    tA.print();    tA.set_t(AA,E,C0);    tA.print();   }

名词解释
单项选择题