一、问题描述:
设计一款电子钟类,用于显示时、分、秒。
实验要求:
- 含有形参有默认值的默认构造函数;
- 重载 前缀++ 和 后缀—用于调整时间,每次调整均对秒进行调整,若秒满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;
}
标签:17,Clock,int,60,second,2023.4,operator,打卡,minute From: https://www.cnblogs.com/lixinyao20223933/p/17327510.html