程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 時間 靜態函數成員 非一般的感覺

時間 靜態函數成員 非一般的感覺

編輯:C++入門知識

[cpp]   /*  * 程序的版權和版本聲明部分  * Copyright (c)2012, 煙台大學計算機學院學生  * All rightsreserved.  * 文件名稱: x.cpp  * 作者:徐本錫  * 完成日期: 2013年  月  日  * 版本號: v1.0  * 輸入描述:    * 問題描述:    * 程序輸出:    */   //我的代碼:   #include <iostream>   #include<iomanip>   #include <string>   using namespace std;   bool t1,t2;   int choose;   class Time{   public:       Time(int=0,int=0,int=0);       void Choose();       void show_time( ); //根據is_24和from0,輸出適合形式-20:23:5/8:23:5 pm/08:23:05 pm       void add_seconds(int n); //增加n秒鐘       void add_minutes(int n); //增加n分鐘         void add_hours(int n); //增加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 =true;   Time::Time(int h,int m,int s)   {       hour=h;minute=m;sec=s;       if(hour>23||minute>59||sec>59)       {           cout<<"時間有誤!";           exit(1);       }   }   void Time::Choose ()   {       int choose;       cout<<"24小時制,前導0,請按1。"<<endl<<"24小時制,不前導0,請按2。"<<endl<<"12小時制,前導0,請按3。"<<endl<<"12小時制,不前導0,請按4。"<<endl;       cin>>choose;       switch(choose)       {       case 1:t1=true;t2=true; break;       case 2:t1=true;t2=false;break;       case 3:t1=false;t2=true;break;       case 4:t1=false;t2=false;break;       }   }   void Time::show_time()   {       if(Time::is_24==t1&&Time::from0==t2)//格式(22:00:00)       {           cout<<setfill('0')<<setiosflags(ios::right);           cout<<setw(2)<<hour<<":"<<setw(2)<<minute<<":"<<setw(2)<<sec;       }       if(Time::is_24==t1&&Time::from0!=t2)//格式(22:0:0)       {           cout<<hour<<":"<<minute<<":"<<sec;       }       if(Time::is_24!=t1&&Time::from0==t2)//格式(08:06:00  am)       {           if(hour<12)           {               cout<<setfill('0')<<setiosflags(ios::right);               cout<<setw(2)<<hour<<":"<<setw(2)<<minute<<":"<<setw(2)<<sec<<" am";           }           if(hour==12)           {               cout<<setfill('0')<<setiosflags(ios::right);               cout<<setw(2)<<hour<<":"<<setw(2)<<minute<<":"<<setw(2)<<sec<<" pm";           }           else           {               hour-=12;               cout<<setfill('0')<<setiosflags(ios::right);               cout<<setw(2)<<hour<<":"<<setw(2)<<minute<<":"<<setw(2)<<sec<<" pm";           }       }       if(Time::is_24!=t1&&Time::from0!=t2)//格式(8:6:0  am)       {           if(hour<12)           {               cout<<hour<<":"<<minute<<":"<<sec<<" am";           }           if(hour==12)           {               cout<<hour<<":"<<minute<<":"<<sec<<" pm";           }           else           {               hour-=12;               cout<<hour<<":"<<minute<<":"<<sec<<" pm";           }       }   }   void Time::add_seconds(int n)//增加n秒鐘   {       sec+=n;       if(sec>=60)       {           add_minutes(sec/60);           sec%=60;       }   }   void Time::add_minutes(int n)//增加n分鐘     {       minute+=n;       if(minute>=60)       {           add_hours(minute/60);           minute%=60;       }   }   void Time::add_hours(int n)//增加n小時     {       hour+=n;       if(hour>=24)           hour%=24;   }   void Time::change24()  //改變靜態成員is_24,在12和24時制之間轉換   {       if(t1==true)       {           t1=false;       }       else           t1=true;   }   void Time::changefrom0()   //改變靜態成員from0,切換是否前導0   {       if(t2==true)       {           t2=false;       }       else           t2=true;   }   int main( ) //運行結果如圖所示   {     Time T;   T.Choose();   T.show_time();   cout<<endl<<"增加1000000秒:"<<endl;   T.add_seconds(1000000);   T.show_time();   cout<<endl<<"前導切換:"<<endl;   T.changefrom0();T.show_time();   cout<<endl<<"時制切換:"<<endl;   T.change24();T.show_time();   return 0;   }    

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