时钟类的实现C++

【问题描述】将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;
}


  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Kun.A.A

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值