第七周任务一

来源:互联网 发布:淘宝客贷款买家能贷吗 编辑:程序博客网 时间:2024/06/13 06:02
/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生 
* All rights reserved.
* 文件名称:                              
* 作    者: 董宝文                           
* 完成日期:     2012    年     4  月    * 版 本 号:         


* 对任务及求解方法的描述部分
* 输入描述: 
* 问题描述: 
* 程序输出: 
* 程序头部的注释结束
*/
#include<iostream>    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;  };  Time::Time(int a ,int b ,int c)  {      hour = a ;      minute = b;       sec = c;   }    bool Time::is_24 = false  ;  bool Time::from0 = false  ;  void Time::change24()  {       if(is_24 == true)            is_24 = false;       else            is_24 = true;  }  void Time::changefrom0()  {      if(from0 == true)          from0 = false;      else          from0 = true;  }  void Time::add_seconds(int n)  {      sec = sec + n;      while(sec >= 60)      {          sec = sec - 60;          minute ++;      }  }  void Time::add_minutes(int n)  {      minute = minute + n;      while(minute >= 60)      {          minute = minute - 60;          hour ++;      }  }  void Time::add_hours(int n)  {      hour = hour + n;      while(hour >= 24)      {          hour = hour - 24;      }  }  void Time::show_time( )  {      int h = hour;         if(is_24)        {            if (hour > 12)                h = hour - 12;            if(from0)             {                if(h < 10)                     cout << "0";                cout << h <<":" ;                if(minute < 10)                     cout << "0";                 cout << minute<< ":"  ;                if (sec < 10)                     cout << "0";                 cout << sec;                   if(hour > 12)                   cout << " pm";                 else                   cout << " am";            }            else             {            cout << h << ":" << minute << ":" << sec <<endl;                      }      }        else         {            if(from0)             {                if(hour < 10)                     cout << "0";                cout << hour <<":" ;                if(minute < 10)                     cout << "0";                 cout << minute<< ":"  ;                if (sec < 10)                     cout << "0";                 cout << sec;                             }            else           {             cout << hour << ":" << minute << ":" << sec <<endl ;                                 }      }              /*int h ;     if(is_24)         h = hour - 12;     else          h = hour;     if(from0)          {             if(hour < 10)                  cout << "0";             cout << hour <<":" ;             if(minute < 10)                  cout << "0";              cout << minute<< ":"  ;             if (sec < 10)                  cout << "0";              cout << sec;          }     if (hour>12)          cout<<" pm";        else          cout<<" am"; */      }  int main( )     {      Time t1(23,14,25),t2(8,45,6);       cout<<"24时制, 不前导0:"<<endl ;      cout<<"t1是:"<<endl ;      t1.show_time();      cout<<"t2是:"<<endl ;      t2.show_time();      t1.add_hours(10);      t2.add_hours(10);      Time::changefrom0(); //注意此处调用静态成员             cout<<endl <<"10小时后, 切换是否前导0:"<<endl;      cout<<"t1是:"<<endl ;      t1.show_time();      cout<<endl <<"t2是:"<<endl ;      t2.show_time();      t1.change24();                          cout<<endl<<endl  <<"换一种制式:"<<endl;      cout<<"t1是:"<<endl ;      t1.show_time();      cout<<endl <<"t2是:"<<endl ;      t2.show_time();      system("pause");      return 0;  }  
经验积累:算是找到了错误,看了看老师的代码,原来int h的含义如此重要....


原创粉丝点击