【问题描述】将Clock结构体代码改写成Clock类代码。
说明:时钟结构体保存了时hour、分minute、秒second成员,add函数实现2个时间的相加,display函数实现时间的输出。
要求:(1)小时的时间范围限制在大于等于0;(2)分的时间范围为0~59分;(3)秒的时间范围为0~59秒。
【Clock结构体】
#include <iostream>
using namespace std;
struct Clock
{
int hour;
int minute;
int second;
};
Clock init(int h=0,int m=0,int s=0)
{
Clock cobj;
cobj.hour=h;
cobj.minute=m;
cobj.second=s;
return cobj;
}
void display(Clock cobj)
{
cout<<cobj.hour<<" : "<<cobj.minute<<" : "<<cobj.second<<endl;
}
Clock add(Clock cobj1, Clock cobj2)
{
int m=0;
int h=0;
Clock cobj3;
cobj3.second = cobj1.second + cobj2.second;
if(cobj3.second >= 60)
{
m = cobj3.second / 60;
cobj3.second %= 60 ;
}
cobj3.minute = cobj1.minute + cobj2.minute + m;
if(cobj3.minute>=60)
{
h = cobj3.minute/60;
cobj3.minute %= 60;
}
cobj3.hour = cobj1.hour +cobj2.hour +h;
return cobj3;
}
int main()
{
Clock c1,c2,c3;
c1=init(1,35,20);
c2=init(3,45,55);
c3=add(c1,c2);
display(c3);
return 0;
}
#include <iostream>
using namespace std;
class Clock
{
public:
Clock(int h=0,int m=0,int s=0):hour(h),minute(m),second(s)
{
}
void display()
{
cout<<hour<<" : "<<minute<<" : "<<second<<endl;
}
Clock add(Clock cob1)
{
int m=0;
int h=0;
Clock cobj3;
cobj3.second = second + cob1.second;
if(cobj3.second >= 60)
{
m = cobj3.second / 60;
cobj3.second %= 60 ;
}
cobj3.minute = minute + cob1.minute + m;
if(cobj3.minute>=60)
{
h = cobj3.minute/60;
cobj3.minute %= 60;
}
cobj3.hour = hour + cob1.hour +h;
return cobj3;
}
private:
int hour;
int minute;
int second;
};
int main()
{
Clock c1(1,35,20),c2(3,45,55),c3;
c3=c1.add(c2);
c3.display();
return 0;
}