Problem B: 时间和日期类(III)
2018-06-17 22:53:31来源:未知 阅读 ()
Problem B: 时间和日期类(III)
Time Limit: 4 Sec Memory Limit: 128 MBSubmit: 2889 Solved: 1732
[Submit][Status][Web Board]
Description
设计一个日期时间类,用于读取输入的数据,按格式输出日期和时间。
设计日期时间类DateTime由2个成员组成,分别是一个Date类对象和一个Time类对象;
设计DateTime类需支持以下操作:
DateTime::DateTime()无参构造方法:初始化为1年1月1日、0时0分0秒;
DateTime::DateTime(int,int,int,int,int,int)构造方法:依照参数(顺序为年月日、时分秒)初始化对象;
在上述两个DateTime类的构造函数中输出:“CREATE DateTime : (y, m, d, hh, mm, ss)”,其中y、m、d为初始化对象时的年月日值,h、m、s为初始化对象时的时分秒值。参见输出。
DateTime::DateTime(const Date&,const Time&)构造方法:依照参数传入的日期和时间初始化对象;
在这个DateTime类的构造函数中输出:“CREATE DateTime : (y, m, d) (hh, mm, ss)”,其中y、m、d为初始化对象时的年月日值,h、m、s为初始化对象时的时分秒值。参见输出。
DateTime::showDateTime()方法:按格式输出DateTime对象;
DateTime::setDateTime(int,int,int,int,int,int)方法:依照参数(顺序为年月日、时分秒)修改对象的属性值;
DateTime类包含了两个类:Date类和Time类
设计日期类Date需支持以下操作:
Date::Date()无参构造方法:初始化为1年1月1日
Date::Date(int,int,int)构造方法:传入的参数依次为年月日,用参数将日期初始化。
在Date类的构造函数中输出:“CREATE Date : (y, m, d)”,其中y、m、d为初始化对象时的年月日值。参见输出。
Date::showDate()方法:按格式输出Date对象。
Date::setDate(int,int,int)方法:传入的参数依次为年月日,用参数修改对象的属性值
设计时间类Time需支持以下操作:
Time::Time()无参构造方法:初始化为0时0分0秒
Time::Time(int,int,int)构造方法:传入的参数依次为时分秒,用参数将时间初始化。
在Time类的构造函数中输出:“CREATE Time : (h, m, s)”,其中h、m、s为初始化对象时的时分秒值。参见输出
Time::showTime()方法:按格式输出Time对象。
Time::setTime(int,int,int)方法:传入的参数依次为时分秒,用参数修改对象的属性值
-----------------------------------------------------------------------------
你设计DateTime类、Date类和Time类,使得main()函数能够正确运行。
函数调用格式见append.cc。
append.cc中已给出main()函数
Input
输入的第一个整数n,表示有n组测试数据。
后面的输入每行为一组测试数据。每组测试数据的前3个整数是日期的年月日,后3个整数是时间的时分秒。
Output
Sample Input
Sample Output
HINT
Append Code
#include <iostream> #include <iomanip> using namespace std; int k=0; class Time { friend class DateTime; public: int h,m,s; Time(int a=0,int b=0,int c=0):h(a),m(b),s(c) {} void showTime() { cout<<setw(2)<<setfill('0')<<h<<":"<<setw(2)<<setfill('0')<<m<<":"<<setw(2)<<setfill('0')<<s; } Time setTime(int a,int b,int c) { *this=Time(a,b,c); return *this; } }; class Date { friend class DateTime; public: int year,month,day; Date(int a=1,int b=1,int c=1):year(a),month(b),day(c) {} void showDate() { cout<<setw(4)<<setfill('0')<<year<<"-"<<setw(2)<<setfill('0')<<month<<"-"<<setw(2)<<setfill('0')<<day; } Date setDate(int a,int b,int c) { *this=Date(a,b,c); return *this; } }; class DateTime:public Time,public Date { public: DateTime():Date(1,1,1),Time(0,0,0) { cout<<"CREATE Time : ("<<Time::h<<", "<<Time::m<<", "<<Time::s<<")"<<endl; cout<<"CREATE Date : ("<<Date::year<<", "<<Date::month<<", "<<Date::day<<")"<<endl; cout<<"CREATE DateTime : ("<<Date::year<<", "<<Date::month<<", "<<Date::day<<", "<<Time::h<<", "<<Time::m<<", "<<Time::s<<")"<<endl; } DateTime(const Date &p,const Time &q):Date(p.year,p.month,p.day),Time(q.h,q.m,q.s) {} DateTime(int a,int b,int c,int d,int e,int f):Date(a,b,c),Time(d,e,f) {} void showDateTime() { Date::showDate(); cout<<" "; Time::showTime(); } DateTime &setDateTime(int a,int b,int c,int d,int e,int f) { *this=DateTime(a,b,c,d,e,f); return *this; } }; int main() { DateTime date_time; date_time.showDateTime(); cout << endl; int cases; cin >> cases; for(int ca = 0; ca < cases; ca++) { int year, month, day; cin >> year >> month >> day; int hour, minute, second; cin >> hour >> minute >> second; date_time.setDateTime(year, month, day, hour, minute, second); date_time.showDateTime(); cout << endl; } }
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:3085 相同的后三位
下一篇:1464 装箱问题 2
- 测量C++程序运行时间 2020-04-17
- Emergency Evacuation(最短下车时间)———(思维) 2020-04-11
- linux环境下的时间编程 2020-03-27
- C++常见编程--获取当前系统时间 2020-02-25
- c++-字符串和时间操作 2019-12-24
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash