程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 實驗5,實驗

實驗5,實驗

編輯:C++入門知識

實驗5,實驗


Home Web Board ProblemSet Standing Status Statistics   Problem A: 時間類的構造和輸出

Problem A: 時間類的構造和輸出

Time Limit: 3 Sec  Memory Limit: 128 MB
Submit: 1964  Solved: 595
[Submit][Status][Web Board]

Description

封裝一個時間類Time,用於時間處理的相關功能,支持以下操作:   1. Time::Time(int,int,int)構造方法:傳遞時分秒的三個參數構造對象。 2. Time::showTime()方法:輸出“hh:mm:ss”,不足兩位的要前面補0。   你設計一個時間類Time,使得main()函數能夠正確運行。   函數調用格式見append.cc。   append.cc中已給出main()函數。  

 

Input

輸入的第一個整數n,表示有n組測試數據,每組3個整數:hh,mm,ss,分別表示時、分、秒,其值都在合法的時間范圍內。  

 

Output

每組測試數據對應一組輸出“hh:mm:ss”,不足兩位的輸出需要前面補0,格式見sample。  

 

Sample Input

5 0 0 1 0 59 59 1 1 1 23 0 0 23 59 59

Sample Output

00:00:01 00:59:59 01:01:01 23:00:00 23:59:59

HINT

輸出格式用頭文件<iomanip>中流操作算子:

 

setw(w)   :設置數據的輸出寬度為w個字符

 

setfill(c):設置用字符c作為填充字符

 

 

Append Code

append.cc,
[Submit][Status][Web Board]

한국어<   中文  فارسی  English  ไทย
All Copyright Reserved 2010-2011 SDUSTOJ TEAM
GPL2.0 2003-2011 HUSTOJ Project TEAM
Anything about the Problems, Please Contact Admin:admin

 

 

 

 

 

#include<iostream>
#include<iomanip>
using namespace std;
class Time{
    private:
        int h,m,s;
    public:
        Time(int hh,int mm,int ss):h(hh),m(mm),s(ss){}
        void showTime(){cout<<setw(2)<<setfill('0')<<h<<":"<<setw(2)<<setfill('0')<<m<<":"<<setw(2)<<setfill('0')<<s<<endl;}
};

int main()
{
    int cases;
    cin>>cases;
    for(int i = 1; i <= cases; ++i)
    {
        int hour, minute, second;
        cin>>hour>>minute>>second;
        Time t(hour, minute, second);
        t.showTime();
    }
}

 

Home Web Board ProblemSet Standing Status Statistics   Problem B: 時間類的成員讀寫

Problem B: 時間類的成員讀寫

Time Limit: 3 Sec  Memory Limit: 128 MB
Submit: 1785  Solved: 582
[Submit][Status][Web Board]

Description

封裝一個時間類Time,用於時間處理的相關功能,支持以下操作:   1. Time::Time()無參構造方法。 2. 成員讀函數:    Time::hour()  :返回Time的小時數;    Time::minute():返回Time的分鐘數;    Time::second():返回Time的秒數。 3. 成員寫函數:    Time::hour(int)  :傳參修改Time的小時數;    Time::minute(int):傳參修改Time的分鐘數;    Time::second(int):傳參修改Time的秒數。   你設計一個時間類Time,使得main()函數能夠正確運行。   函數調用格式見append.cc。   append.cc中已給出main()函數。  

 

Input

輸入的第一個整數n,表示有n組測試數據,每組3個整數:hh,mm,ss,分別表示時、分、秒,其值都在合法的時間范圍內。  

 

Output

每組測試數據對應一組輸出“hh:mm:ss”,不足兩位的輸出需要前面補0,格式見sample。  

 

Sample Input

5 0 0 1 0 59 59 1 1 1 23 0 0 23 59 59

Sample Output

00:00:01 00:59:59 01:01:01 23:00:00 23:59:59

HINT

輸出格式用頭文件<iomanip>中流操作算子:

 

setw(w)   :設置數據的輸出寬度為w個字符

 

setfill(c):設置用字符c作為填充字符

 

 

Append Code

append.cc,
[Submit][Status][Web Board]

한국어<   中文  فارسی  English  ไทย
All Copyright Reserved 2010-2011 SDUSTOJ TEAM
GPL2.0 2003-2011 HUSTOJ Project TEAM
Anything about the Problems, Please Contact Admin:admin

 

 

 

 

#include<iostream>
#include<iomanip>
using namespace std;
class Time{
private:
    int h,m,s;
public:
    Time(){}
    int hour(){return h;}
    int minute(){return m;}
    int second(){return s;}
    void hour(int hh){h=hh;}
    void minute(int mm){m=mm;}
    void second(int ss){s=ss;}
};

int main()
{
    Time t;
    int cases;
    cin>>cases;
    for(int i = 1; i <= cases; ++i)
    {
        int hour, minute, second;
        cin>>hour>>minute>>second;
        t.hour(hour);
        t.minute(minute);
        t.second(second);
        cout<<setw(2)<<setfill('0')<<t.hour()<<":";
        cout<<setw(2)<<setfill('0')<<t.minute()<<":";
        cout<<setw(2)<<setfill('0')<<t.second()<<endl;
    }
}

 

Home Web Board ProblemSet Standing Status Statistics   Problem C: 時間類的輸入

Problem C: 時間類的輸入

Time Limit: 3 Sec  Memory Limit: 128 MB
Submit: 1376  Solved: 506
[Submit][Status][Web Board]

Description

封裝一個時間類Time,用於時間處理的相關功能,支持以下操作:   1. Time::Time()無參構造方法。 2. Time::inputTime()方法:按格式從標准輸入讀取數據修改Time對象的時分秒數值。該方法返回修改後的對象。 3. Time::showTime()方法:輸出“hh:mm:ss”,不足兩位的要前面補0。   你設計一個時間類Time,使得main()函數能夠正確運行。   函數調用格式見append.cc。   append.cc中已給出main()函數。  

 

Input

輸入的第一個整數n,表示有n組測試數據,每組3個整數:hh,mm,ss,分別表示時、分、秒,其值都在合法的時間范圍內。  

 

Output

每組測試數據對應一組輸出“hh:mm:ss”,不足兩位的輸出需要前面補0,格式見sample。    

 

Sample Input

5 0 0 1 0 59 59 1 1 1 23 0 0 23 59 59

Sample Output

00:00:01 00:59:59 01:01:01 23:00:00 23:59:59

HINT

輸出格式用頭文件<iomanip>中流操作算子:

 

setw(w)   :設置數據的輸出寬度為w個字符

 

setfill(c):設置用字符c作為填充字符

 

 

Append Code

append.cc,
[Submit][Status][Web Board]

한국어<   中文  فارسی  English  ไทย
All Copyright Reserved 2010-2011 SDUSTOJ TEAM
GPL2.0 2003-2011 HUSTOJ Project TEAM
Anything about the Problems, Please Contact Admin:admin

 

 

 

#include<iostream>
#include<iomanip>
using namespace std;
class Time{
private:
    int h,m,s;
public:
    Time(){}
    Time& inputTime(){cin>>h>>m>>s;return *this;}
    void showTime(){cout<<setw(2)<<setfill('0')<<h<<":"<<setw(2)<<setfill('0')<<m<<":"<<setw(2)<<setfill('0')<<s<<endl;}
};

int main()
{
    Time t;
    int cases;
    cin>>cases;
    for(int i = 1; i <= cases; ++i)
        t.inputTime().showTime();
}

 

Home Web Board ProblemSet Standing Status Statistics   Problem D: 時間類的拷貝和整體讀寫

Problem D: 時間類的拷貝和整體讀寫

Time Limit: 3 Sec  Memory Limit: 128 MB
Submit: 1880  Solved: 491
[Submit][Status][Web Board]

Description

封裝一個時間類Time,用於時間處理的相關功能,支持以下操作:   1. Time::Time()無參構造方法。 2. Time::Time(int,int,int)構造方法:傳遞時分秒的三個參數構造對象。 3. Time::Time(const T&)拷貝構造方法。拷貝構造函數調用時輸出“There was a call to the copy constructor : h,m,s”,“h,m,s”為所構造對象的時分秒數值,無需補0。 4. 對象整體讀寫方法:    Time::setTime(int,int,int)方法:傳遞時分秒三個參數修改Time對象的時分秒數。該方法返回修改後的對象。    Time::setTime(const T&)方法:傳遞一個參數修改Time對象的時分秒數。該方法返回修改後的對象。    Time::getTime()方法:返回對象自身的引用。其實,t.getTime()即t。    僅在Time類中的Time::getTime()方法實在是多余,在組合或者繼承關系時才會有機會用到。 5. Time::showTime()方法:輸出“hh:mm:ss”,不足兩位的要前面補0。   注意:在用Time對象傳遞參數時應傳對象的引用而不是直接傳對象,返回對象時同樣返回引用,以免產生多余的對象拷貝。   你設計一個時間類Time,使得main()函數能夠正確運行。   函數調用格式見append.cc。   append.cc中已給出main()函數。main()函數內容稍微繁復,僅為測試對象的各種調用情況。  

 

Input

輸入的第一個整數n,表示有n組測試數據,每組3個整數:hh,mm,ss,分別表示時、分、秒,其值都在合法的時間范圍內。  

 

Output

開始部分為由main()函數產生的固定輸出,用於測試對象的某些方法的調用情況。輸出“Test data output :”之後為測試數據對應的輸出:   每組測試數據對應一組輸出“hh:mm:ss”,不足兩位的輸出需要前面補0,格式見sample。  

 

Sample Input

5 0 0 1 0 59 59 1 1 1 23 0 0 23 59 59

Sample Output

Copy constructor test output : There was a call to the copy constructor : 0,0,0 There was a call to the copy constructor : 1,2,3 Test data output : 00:00:01 00:59:59 01:01:01 23:00:00 23:59:59

HINT

輸出格式用頭文件<iomanip>中流操作算子:

 

setw(w)   :設置數據的輸出寬度為w個字符

 

setfill(c):設置用字符c作為填充字符

 

 

Append Code

append.cc,
[Submit][Status][Web Board]

한국어<   中文  فارسی  English  ไทย
All Copyright Reserved 2010-2011 SDUSTOJ TEAM
GPL2.0 2003-2011 HUSTOJ Project TEAM
Anything about the Problems, Please Contact Admin:admin

 

 

#include<iostream>
#include<iomanip>
using namespace std;
class Time{
private:
    int h,m,s;
public:
    Time():h(0),m(0),s(0){}
    Time(int hh,int mm,int ss):h(hh),m(mm),s(ss){}
    Time(const Time &T){h=T.h;m=T.m;s=T.s;cout<<"There was a call to the copy constructor : "<<h<<","<<m<<","<<s<<endl;}
    Time& setTime(int hh,int mm,int ss){h=hh;m=mm;s=ss;return *this;}
    Time& setTime(const Time&T){h=T.h;m=T.m;s=T.s;return *this;}
    Time& getTime(){return *this;}
    void showTime(){cout<<setw(2)<<setfill('0')<<h<<":"<<setw(2)<<setfill('0')<<m<<":"<<setw(2)<<setfill('0')<<s<<endl;}

};

int main()
{
    cout<<"Copy constructor test output :"<<endl;
    Time t;
    Time tt(t);
    Time ttt(1, 2, 3);
    Time tttt(ttt.getTime());
    cout<<"\nTest data output :"<<endl;

    int cases;
    cin>>cases;
    for(int i = 1; i <= cases; ++i)
    {
        if(i % 2 == 0)
        {
            int hour, minute, second;
            cin>>hour>>minute>>second;
            t.setTime(hour, minute, second).showTime();
        }
        if(i % 2 == 1)
        {
            int hour, minute, second;
            cin>>hour>>minute>>second;
            Time tt(hour, minute, second);
            t.setTime(tt).showTime();
        }
    }
}

 

Home Web Board ProblemSet Standing Status Statistics   Problem E: 時間類的錯誤數據處理

Problem E: 時間類的錯誤數據處理

Time Limit: 3 Sec  Memory Limit: 128 MB
Submit: 1889  Solved: 465
[Submit][Status][Web Board]

Description

封裝一個時間類Time,用於時間處理的相關功能,支持以下操作:   1. Time::Time()無參構造方法。 2. Time::Time(int,int,int)構造方法:傳遞時分秒的三個參數構造對象。 3. Time::Time(const T&)拷貝構造方法。 4. 成員讀函數:    Time::hour()  :返回Time的小時數;    Time::minute():返回Time的分鐘數;    Time::second():返回Time的秒數。 5. 成員寫函數:    Time::hour(int)  :傳參修改Time的小時數;    Time::minute(int):傳參修改Time的分鐘數;    Time::second(int):傳參修改Time的秒數。 6. 對象整體讀寫方法:    Time::setTime(int,int,int)方法:傳遞時分秒三個參數修改Time對象的時分秒數。該方法返回修改後的對象。    Time::setTime(const T&)方法:傳遞一個參數修改Time對象的時分秒數。該方法返回修改後的對象。    Time::getTime()方法:返回對象自身的引用。其實,t.getTime()即t。    僅在Time類中的Time::getTime()方法實在是多余,在組合或者繼承關系時才會有機會用到。 7. Time::inputTime()方法:按格式從標准輸入讀取數據修改Time對象的時分秒數值。該方法返回修改後的對象。 8. Time::showTime()方法:輸出“hh:mm:ss”,不足兩位的要前面補0。如果對象不是合法的時間,則輸出“Time error”。   你設計一個時間類Time,使得main()函數能夠正確運行。   函數調用格式見append.cc。   append.cc中已給出main()函數。main()函數內容稍微繁復,僅為測試對象的各種調用情況。  

 

Input

輸入的第一個整數n,表示有n組測試數據,每組3個整數:hh,mm,ss,分別表示時、分、秒,其值都在int范圍內。  

 

Output

每組測試數據對應一組輸出“hh:mm:ss”,不足兩位的輸出需要前面補0。如果輸入的時間不合法,則輸出“Time error”。格式見sample。  

 

Sample Input

6 0 0 1 0 59 59 1 1 60 23 0 0 23 59 59 24 1 0

Sample Output

00:00:01 00:59:59 Time error 23:00:00 23:59:59 Time error

HINT

輸出格式用頭文件<iomanip>中流操作算子:

 

setw(w)   :設置數據的輸出寬度為w個字符

 

setfill(c):設置用字符c作為填充字符

 

 

Append Code

append.cc,
[Submit][Status][Web Board]

한국어<   中文  فارسی  English  ไทย
All Copyright Reserved 2010-2011 SDUSTOJ TEAM
GPL2.0 2003-2011 HUSTOJ Project TEAM
Anything about the Problems, Please Contact Admin:admin

 

#include<iostream>
#include<iomanip>
using namespace std;
class Time{
    private:
        int h,m,s;
    public:
        Time():h(0),m(0),s(0){}
        Time(int hh,int mm,int ss):h(hh),m(mm),s(ss){}
        Time(const Time &T){h=T.h;m=T.m;s=T.s;cout<<"There was a call to the copy constructor : "<<h<<","<<m<<","<<s<<endl;}
        int hour(){return h;}
        int minute(){return m;}
        int second(){return s;}
        void hour(int hh){h=hh;}
        void minute(int mm){m=mm;}
        void second(int ss){s=ss;}
        Time& setTime(int hh,int mm,int ss){h=hh;m=mm;s=ss;return *this;}
        Time& setTime(const Time&T){h=T.h;m=T.m;s=T.s;return *this;}
        Time& getTime(){return *this;}
        Time& inputTime(){cin>>h>>m>>s;return *this;}
        void showTime(){if(h*3600+m*60+s>=24*3600||m>59||s>59||h<0||s<0||m<0) cout<<"Time error"<<endl;
                        else cout<<setw(2)<<setfill('0')<<h<<":"<<setw(2)<<m<<":"<<setw(2)<<s<<endl;}
};

int main()
{
    Time t;
    int cases;
    cin>>cases;
    for(int i = 1; i <= cases; ++i)
    {
        if(i % 4 == 0)
        {
            int hour, minute, second;
            cin>>hour>>minute>>second;
            Time tt(hour, minute, second);
            tt.showTime();
        }
        if(i % 4 == 1)
        {
            int hour, minute, second;
            cin>>hour>>minute>>second;
            t.setTime(hour, minute, second).showTime();
        }
        if(i % 4 == 2)
            t.inputTime().showTime();
        if(i % 4 == 3)
        {
            int hour, minute, second;
            cin>>hour>>minute>>second;
            t.hour(hour);
            t.minute(minute);
            t.second(second);
            t.showTime();
        }
    }
}

 

Home Web Board ProblemSet Standing Status Statistics   Problem F: 時間類的常量

Problem F: 時間類的常量

Time Limit: 3 Sec  Memory Limit: 128 MB
Submit: 1424  Solved: 345
[Submit][Status][Web Board]

Description

封裝一個時間類Time,用於時間處理的相關功能,支持以下操作:   1. Time::Time()無參構造方法。 2. Time::Time(int,int,int)構造方法:傳遞時分秒的三個參數構造對象。 3. Time::Time(const T&)拷貝構造方法。 4. 成員讀函數:    Time::hour()  :返回Time的小時數;    Time::minute():返回Time的分鐘數;    Time::second():返回Time的秒數。 5. 成員寫函數:    Time::hour(int)  :傳參修改Time的小時數;    Time::minute(int):傳參修改Time的分鐘數;    Time::second(int):傳參修改Time的秒數。 6. 對象整體讀寫方法:    Time::setTime(int,int,int)方法:傳遞時分秒三個參數修改Time對象的時分秒數。該方法返回修改後的對象。    Time::setTime(const T&)方法:傳遞一個參數修改Time對象的時分秒數。該方法返回修改後的對象。    Time::getTime()方法:返回對象自身的引用。其實,t.getTime()即t。    僅在Time類中的Time::getTime()方法實在是多余,在組合或者繼承關系時才會有機會用到。 7. Time::inputTime()方法:按格式從標准輸入讀取數據修改Time對象的時分秒數值。該方法返回修改後的對象。 8. Time::showTime()方法:輸出“hh:mm:ss”,不足兩位的要前面補0。如果對象不是合法的時間,則輸出“Time error”。   注意:為了保證Time類的常量對象能夠正確的調用Time類的方法,那些不修改對象數據成員的函數都應該是常量成員函數,在返回對象自身的引用時也應返回常量引用。   你設計一個時間類Time,使得main()函數能夠正確運行。   函數調用格式見append.cc。   append.cc中已給出main()函數。main()函數內容稍微繁復,僅為測試對象的各種調用情況。  

 

Input

輸入的第一個整數n,表示有n組測試數據,每組3個整數:hh,mm,ss,分別表示時、分、秒,其值都在int范圍內。  

 

Output

開始部分為由main()函數產生的固定輸出,用於測試對象的某些方法的調用情況。輸出“Test data output :”之後為測試數據對應的輸出:   每組測試數據對應一組輸出“hh:mm:ss”,不足兩位的輸出需要前面補0。如果輸入的時間不合法,則輸出“Time error”。格式見sample。  

 

Sample Input

6 0 0 1 0 59 59 1 1 60 23 0 0 23 59 59 24 1 0

Sample Output

Constant test output : 00:00:00 01:02:03 Time error Test data output : 00:00:01 00:59:59 Time error 23:00:00 23:59:59 Time error

HINT

輸出格式用頭文件<iomanip>中流操作算子:

 

setw(w)   :設置數據的輸出寬度為w個字符

 

setfill(c):設置用字符c作為填充字符

 

 

 

 

Append Code

append.cc,
[Submit][Status][Web Board]

한국어<   中文  فارسی  English  ไทย
All Copyright Reserved 2010-2011 SDUSTOJ TEAM
GPL2.0 2003-2011 HUSTOJ Project TEAM
Anything about the Problems, Please Contact Admin:admin

#include<iostream>
#include<iomanip>
using namespace std;
class Time{
private:
    int h,m,s;
public:
        Time():h(0),m(0),s(0){}
        Time(int hh,int mm,int ss):h(hh),m(mm),s(ss){}
        Time(const Time &T){h=T.h;m=T.m;s=T.s;cout<<"There was a call to the copy constructor : "<<h<<","<<m<<","<<s<<endl;}
        int hour()const{return h;}
        int minute()const{return m;}
        int second()const{return s;}
        void hour(int hh){h=hh;}
        void minute(int mm){m=mm;}
        void second(int ss){s=ss;}
        Time& setTime(int hh,int mm,int ss){h=hh;m=mm;s=ss;return *this;}
        Time& setTime(const Time&T){h=T.h;m=T.m;s=T.s;return *this;}
        const Time& getTime()const{return *this;}
        Time& inputTime(){cin>>h>>m>>s;return *this;}
        void showTime()const{if(h*3600+m*60+s>=24*3600||m>59||s>59||h<0||s<0||m<0) cout<<"Time error"<<endl;
                        else cout<<setw(2)<<setfill('0')<<h<<":"<<setw(2)<<m<<":"<<setw(2)<<s<<endl;}
};

int main()
{
    cout<<"Constant test output :"<<endl;
    const Time c;
    const Time cc(1, 2, 3);
    const Time ccc(23, 60, 60);
    cout<<setw(2)<<setfill('0')<<c.hour()<<":";
    cout<<setw(2)<<setfill('0')<<c.minute()<<":";
    cout<<setw(2)<<setfill('0')<<c.second()<<endl;
    cc.getTime().showTime();
    ccc.showTime();

    cout<<"\nTest data output :"<<endl;
    Time t;
    int cases;
    cin>>cases;
    for(int i = 1; i <= cases; ++i)
    {
        if(i % 4 == 0)
        {
            int hour, minute, second;
            cin>>hour>>minute>>second;
            Time tt(hour, minute, second);
            tt.showTime();
        }
        if(i % 4 == 1)
        {
            int hour, minute, second;
            cin>>hour>>minute>>second;
            t.setTime(hour, minute, second).showTime();
        }
        if(i % 4 == 2)
            t.inputTime().showTime();
        if(i % 4 == 3)
        {
            int hour, minute, second;
            cin>>hour>>minute>>second;
            t.hour(hour);
            t.minute(minute);
            t.second(second);
            t.showTime();
        }
    }
}

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved