请修改时间类的输入函数,若输入的数据正确,则修改时间,否则时间不变。
#include <iostream>
#include <iomanip>
using namespace std;
/* 你提交的代码将被嵌在这里 */
int main()
{
int h, m, s;
cin >> h >> m >> s;
MYTIME a(h, m, s);
a.Input();
a.Output();
cout << endl;
return 0;
}
输入样例1
8 30 45
28:-1:97
输出样例1
Create 08:30:45
08:30:45
Destroy 08:30:45
输入样例2
8 30 45
15:46:32
输出样例2
Create 08:30:45
15:46:32
Destroy 15:46:32
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
答案
class MYTIME {
private:
int second = 0;
int hour = 0;
int minute = 0;
public:
MYTIME(int h = 0, int m = 0, int s = 0)
{
hour = h;
minute = m;
second = s;
cout << "Create " << setfill('0') << setw(2) << hour << ':'
<< setfill('0') << setw(2) << minute << ':'
<< setfill('0') << setw(2) << second << endl;
}
~MYTIME()
{
cout << "Destroy" << ' ' << setfill('0') << setw(2) << hour << ':'
<< setfill('0') << setw(2) << minute << ':'
<< setfill('0') << setw(2) << second << endl;
}
void Input()
{
int h1 = hour;
int m1 = minute;
int s1 = second;
char sign = ':';
cin >> hour >> sign >> minute >> sign >> second;
if (hour < 0 || hour > 23 || minute < 0 || minute > 59 || second < 0 || second > 59)
{
hour = h1;
minute = m1;
second = s1;
}
}
void Output()
{
cout << setfill('0') << setw(2) << hour << ':'
<< setfill('0') << setw(2) << minute << ':'
<< setfill('0') << setw(2) << second;
}
};