2023.4.17编程一小时打卡
一、问题描述:
设计一款电子钟类,用于显示时、分、秒。
实验要求:
- 含有形参有默认值的默认构造函数;
- 重载 前缀++ 和 后缀—用于调整时间,每次调整均对秒进行调整,若秒满60,则分加1,若分满60则时加1,时满24,则清零重新开始;
- 重载插入运算符 >> 用于输入(设定)时间;
- 重载插入运算符 << 用于输出时间。
二、解题思路:
首先,定义一个时钟类,然后根据实验要求去进行运算符重载,前缀++的定义需要考虑秒到达60后要重置等。然后,根据输入输出要求去实现所需功能。
三、代码实现:
#include<iostream>
#include<string>
using namespace std;
class Clock
{
private:
int hour,minute,second;
public:
Clock(int h=0,int m=0,int s=0):hour(h),minute(m),second(s){}
Clock & operator++();
Clock operator--(int);
friend istream & operator>>(istream &,Clock &);
friend ostream & operator<<(ostream &,Clock &);
};
Clock & Clock::operator++()
{
second++;
if(second>=60)
{
minute++;
second=0;
if(minute>=60)
{
hour=(hour+1)%24;
minute=0;
}
}
return *this;
}
Clock Clock::operator--(int)
{
--second;
if(second<0)
{
second=60+second;
minute--;
if(minute<0)
{
hour--;
minute=60+minute;
if(hour<0)
{
hour=24+hour;
}
}
}
return *this;
}
istream & operator>>(istream &put,Clock &c)
{
put>>c.hour>>c.minute>>c.second;
return put;
}
ostream & operator<<(ostream &out,Clock &c)
{
out<<c.hour<<":"<<c.minute<<":"<<c.second<<endl;
return out;
}
int main()
{
Clock c;
cin>>c;
cout<<c;
++c;
cout<<c;
c--;
cout<<c;
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统