一.问题描述
设计一款电子钟类,用于显示时、分、秒
实验要求:
- 含有形参有默认值的默认构造函数;
- 重载 前缀++ 和 后缀—用于调整时间,每次调整均对秒进行调整,若秒满60,则分加1,若分满60则时加1,时满24,则清零重新开始;
- 重载插入运算符 >> 用于输入(设定)时间;
- 重载插入运算符 << 用于输出时间。
二.设计思路
按照题示编写程序
三.流程图
四.伪代码
1
五.代码实现
1#include<iostream>
using namespace std;
class nclock {
private:
int h, m, s;
public:
nclock():h(0),m(0),s(0){}
nclock operator++(int x) {
nclock res = *this;
this->s++;
if (s == 60) {
s = 0;
m++;
}
if (m == 60) {
m = 0;
h++;
}
if (h == 24) h = 0;
return res;
}
friend nclock operator--(nclock& p) {
p.s--;
if (p.s < 0) {
p.s = 59;
p.m--;
}
if (p.m < 0) {
p.m = 59;
p.h--;
}
if (p.h < 0) p.h = 23;
return p;
}
friend istream& operator >>(istream& in, nclock& a) {
in >> a.h >> a.m >> a.s;
return in;
}
friend ostream& operator <<(ostream& out, nclock& a) {
printf("%02d : %02d : %02d",a.h,a.m,a.s);
return out;
}
};
int main(){
nclock a, b;
cin >> a;
a++;
cout << a << endl;
cin >> b;
--b;
cout << b << endl;
}