实验6:Problem C: 时间和日期类(I)
Description
设计一个时间类和一个日期类,用于读取输入的数据,按格式输出日期和时间。
设计日期类Date需支持以下操作:
Date::Date(int,int,int)构造方法:传入的参数依次为年月日,用参数将日期初始化。
Date::showDate()按格式输出Date对象。
设计时间类Time需支持以下操作:
Time::Time(int,int,int)构造方法:传入的参数依次为时分秒,用参数将时间初始化。
Time::showTime()按格式输出Time对象。
-----------------------------------------------------------------------------
你设计Date类和Time类,使得main()函数能够正确运行。
函数调用格式见append.cc。
append.cc中已给出main()函数。
Input
输入的第一个整数n,表示有n组测试数据。
后面的输入每行为一组测试数据。每组测试数据的前3个整数是日期的年月日,后3个整数是时间的时分秒。
Output
每组测试数据对应一行输出。日期的输出格式为“yyyy-mm-dd”,时间的输出格式为“hh:mm:ss”,中间用一个空格分开。
Sample Input
3
1982 10 1 0 0 0
2000 2 28 23 59 59
2014 7 2 13 30 01
Sample Output
1982-10-01 00:00:00
2000-02-28 23:59:59
2014-07-02 13:30:01
HINT
输出格式用头文件<iomanip>中流操作算子:
setw(w) :设置数据的输出宽度为w个字符
setfill(c):设置用字符c作为填充字符
Append Code
1 #include<iostream> 2 #include<iomanip> 3 using namespace std; 4 class Date{ 5 private: 6 int y,m,d; 7 public: 8 Date(int yy,int mm,int dd):y(yy),m(mm),d(dd){} 9 void showDate(){cout<<setw(2)<<setfill('0')<<y<<"-"<<setw(2)<<setfill('0')<<m<<"-"<<setw(2)<<setfill('0')<<d;} 10 }; 11 class Time{ 12 private: 13 int h,m,s; 14 public: 15 Time(int hh,int mm,int ss):h(hh),m(mm),s(ss){} 16 void showTime(){cout<<setw(2)<<setfill('0')<<h<<":"<<setw(2)<<setfill('0')<<m<<":"<<setw(2)<<setfill('0')<<s;} 17 }; 18 int main() 19 { 20 int cases; 21 cin >> cases; 22 for(int ca = 0; ca < cases; ca++) 23 { 24 int year, month, day; 25 cin >> year >> month >> day; 26 Date date(year, month, day); 27 date.showDate(); 28 cout << " "; 29 int hour, minute, second; 30 cin >> hour >> minute >> second; 31 Time time(hour, minute, second); 32 time.showTime(); 33 cout << endl; 34 } 35 }
向代码最深处出发~!