Problem B: 時間和日期類(III)

来源:http://www.cnblogs.com/masterchd/archive/2017/04/06/6675375.html
-Advertisement-
Play Games

Problem B: 時間和日期類(III) Description 設計一個日期時間類,用於讀取輸入的數據,按格式輸出日期和時間。 設計日期時間類DateTime由2個成員組成,分別是一個Date類對象和一個Time類對象; 設計DateTime類需支持以下操作: DateTime::DateTi ...


Problem B: 時間和日期類(III)

Time Limit: 4 Sec  Memory Limit: 128 MB
Submit: 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

每組測試數據對應一行輸出。日期的輸出格式為“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

CREATE Time : (0, 0, 0) CREATE Date : (1, 1, 1) CREATE DateTime : (1, 1, 1, 0, 0, 0) 0001-01-01 00:00:00 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

#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;
}
}


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 跨平臺系列彙總:http://www.cnblogs.com/dunitian/p/4822808.html#linux 上次說了安裝VSCode(http://www.cnblogs.com/dunitian/p/6661644.html)和sogou(http://www.cnblogs.com ...
  • 本章內容和大家分享的是Asp.NetCore組件寫法,在netcore中很多東西都以提供組件的方式來使用,比如MVC架構,Session,Cache,資料庫引用等; 這裡我也通過調用驗證碼介面來自定義個組件以此說明如何使用,以及使用時需要註意的場景; Middleware之hello world 對 ...
  • 對於WCF應用來說,傳輸前壓縮請求消息和回覆消息,不但可以降低網路流量,也可以提高網路傳輸的性能 一、消息壓縮方案 二、用於數據壓縮與解壓縮組件 三、用於消息壓縮與解壓的組件 四、用於對請求/回覆消息壓縮和解壓縮的組件 五、將CompressionMessageFormatter用於WCF運行時框架 ...
  • 最近接觸了用c#導出Excel文件的一些操作。 使用NPOI的優勢是,開源,操作靈活,不需要下載OFFICE軟體,速度快,不過聽說,數據量過大的時候,不是很好用,大概那都是幾兆的時候吧,不過目前用於我的需要,基本是夠了。 關於NPOI的基本操作:http://blog.csdn.net/pan_ju ...
  • DevExpress 是一個比較有名的界面控制項套件,提供了一系列優秀的界面控制項。這篇文章將展示如何在擁有源代碼的情況下,對 DevExpress 的程式集進行重新編譯。 系統必備 Windows 7 SP1 以上操作系統 Visual Studio 2010 SP1 .Net Framework 4 ...
  • 平時我們開發中,經常使用Task,後續的.net版本種很多都和Task有關,比如asyn,await有了Task 我們很少就去關註Thread 了。Task 給我們帶來了很多的便利之處。是我們更少的去關註執行的歷程,更多的去關註邏輯。但是有些時候,有些應用。又不得不考慮task 的運行狀況,比如這個 ...
  • JMS(Java Message Service,Java消息服務)是一組Java應用程式介面(Java API),它提供創建、發送、接收、讀取消息的服務。它給消息中間件生產商提供了一個統一API的標準。 ...
  • 1 class egg 2 { 3 public static void main(String[]args) 4 { 5 for(int n=10;n<100000;n++) 6 { 7 if(n%2==1){ 8 if(n%3==0){ 9 ... ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...