程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 2013第七周上機任務[項目1-靜態成員應用時間類]

2013第七周上機任務[項目1-靜態成員應用時間類]

編輯:C++入門知識

[cpp]
/* 
* 程序的版權和版本聲明部分 
* Copyright (c)2013, 煙台大學計算機學院學生 
* All rightsreserved. 
* 文件名稱:test.cpp                            
* 作    者:   樊露露                         
* 完成日期: 2013 年4 月 15 日 
* 版本號: v1.0       
* 輸入描述: 
* 問題描述: 
* 輸出: 
*/   
#include <iostream>  
#include <string>  
using namespace std; 
class Time{ 
public: 
    Time(int=0,int=0,int=0); 
    void show_time( ); //根據is_24和from0,輸出適合形式-20:23:5/8:23:5 pm/08:23:05 pm  
    void add_seconds(int); //增加n秒鐘  
    void add_minutes(int); //增加n分鐘    
    void add_hours(int); //增加n小時    
    static void change24();  //改變靜態成員is_24,在12和24時制之間轉換  
    static void changefrom0();   //改變靜態成員from0,切換是否前導0  
private: 
    static bool is_24; //為true時,24小時制,如20:23:5;為flase,12小時制,顯示為8:23:5 pm   
    static bool from0; //為true時,前導0,8:23:5顯示為08:23:05  
    int hour; 
    int minute; 
    int sec; 
}; 
//下面寫出靜態成員的初始化及各成員函數的定義……  
bool Time::is_24=true;   
bool Time::from0=false;  
 
Time::Time(int h,int m,int s): hour(h), minute(m), sec(s){}   
int main() //運行結果如圖所示  
{  
    Time t1(23,14,25),t2(8,45,6);    
    cout<<"24時制, 不前導0:"<<endl;   
    cout<<"    t1是:";   
    t1.show_time();   
    cout<<"    t2是:";   
    t2.show_time();   
    t1.add_hours(10);   
    t2.add_hours(10);   
    Time::changefrom0(); //注意此處調用靜態成員     
    cout<<"10小時後, 切換是否前導0:"<<endl;   
    cout<<    "t1是:";   
    t1.show_time();   
    cout<<    "t2是:";   
    t2.show_time();   
    t1.change24();   
    cout<<"換一種制式:"<<endl;   
    cout<<"    t1是:";   
    t1.show_time();   
    cout<<"    t2是:";   
    t2.show_time();   
    system("pause");   
    return 0;   

void Time::show_time( ) 

    int h=(is_24)?hour:hour%12;  
    if (h<10 && from0) cout<<'0'; 
    cout<<h<<':';  
    if(minute<10 && from0) cout<<'0';   
    cout<<minute<<':';     
    //輸出 秒     
    if(sec<10&&from0) cout<<'0';   
    cout<<sec;      
    //輸出pm或am     
    if(is_24==false)     
        if (hour>12)    
            cout<<" pm";    
        else    
            cout<<" am";    
        cout<<endl;   

void Time::add_seconds(int n) 
{     
    sec+=n;   
    if(sec>59){   
        add_minutes(sec/60);       
        sec%=60;             
    }     

void Time::add_minutes(int n) 

    minute+=n;   
    if(minute>59){   
        add_hours(minute/60);       
        minute%=60;             
    }    

void Time::add_hours(int n) 

    hour+=n;   
    if(hour>23){   
         
        hour%=24;             
    }   

void Time::change24() 

    is_24=!is_24;  

void Time::changefrom0() 

    from0=!from0;   

/*
* 程序的版權和版本聲明部分
* Copyright (c)2013, 煙台大學計算機學院學生
* All rightsreserved.
* 文件名稱:test.cpp                           
* 作    者:   樊露露                        
* 完成日期: 2013 年4 月 15 日
* 版本號: v1.0      
* 輸入描述:
* 問題描述:
* 輸出:
*/ 
#include <iostream>
#include <string>
using namespace std;
class Time{
public:
 Time(int=0,int=0,int=0);
 void show_time( ); //根據is_24和from0,輸出適合形式-20:23:5/8:23:5 pm/08:23:05 pm
 void add_seconds(int); //增加n秒鐘
 void add_minutes(int); //增加n分鐘 
 void add_hours(int); //增加n小時 
 static void change24();  //改變靜態成員is_24,在12和24時制之間轉換
 static void changefrom0();   //改變靜態成員from0,切換是否前導0
private:
 static bool is_24; //為true時,24小時制,如20:23:5;為flase,12小時制,顯示為8:23:5 pm
 static bool from0; //為true時,前導0,8:23:5顯示為08:23:05
 int hour;
 int minute;
 int sec;
};
//下面寫出靜態成員的初始化及各成員函數的定義……
bool Time::is_24=true; 
bool Time::from0=false;

Time::Time(int h,int m,int s): hour(h), minute(m), sec(s){} 
int main() //運行結果如圖所示
{
    Time t1(23,14,25),t2(8,45,6);  
    cout<<"24時制, 不前導0:"<<endl; 
    cout<<"    t1是:"; 
    t1.show_time(); 
    cout<<"    t2是:"; 
    t2.show_time(); 
    t1.add_hours(10); 
    t2.add_hours(10); 
    Time::changefrom0(); //注意此處調用靜態成員  
    cout<<"10小時後, 切換是否前導0:"<<endl; 
    cout<<    "t1是:"; 
    t1.show_time(); 
    cout<<    "t2是:"; 
    t2.show_time(); 
    t1.change24(); 
    cout<<"換一種制式:"<<endl; 
    cout<<"    t1是:"; 
    t1.show_time(); 
    cout<<"    t2是:"; 
    t2.show_time(); 
    system("pause"); 
    return 0; 
}
void Time::show_time( )
{
 int h=(is_24)?hour:hour%12;
 if (h<10 && from0) cout<<'0';
    cout<<h<<':';
 if(minute<10 && from0) cout<<'0'; 
 cout<<minute<<':';   
 //輸出 秒  
    if(sec<10&&from0) cout<<'0'; 
    cout<<sec;    
 //輸出pm或am  
 if(is_24==false)    
        if (hour>12)  
   cout<<" pm";  
        else  
   cout<<" am";  
  cout<<endl; 
}
void Time::add_seconds(int n)
{   
 sec+=n; 
    if(sec>59){ 
  add_minutes(sec/60);     
  sec%=60;           
    }   
}
void Time::add_minutes(int n)
{
    minute+=n; 
    if(minute>59){ 
  add_hours(minute/60);     
        minute%=60;           
    }   
}
void Time::add_hours(int n)
{
 hour+=n; 
    if(hour>23){ 
  
        hour%=24;           
    } 
}
void Time::change24()
{
 is_24=!is_24;
}
void Time::changefrom0()
{
    from0=!from0; 
}


\

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