第7周项目一-静态成员应用 时间类

来源:互联网 发布:麻将辅助软件通用 编辑:程序博客网 时间:2024/05/18 09:16
/* * 程序的版权和版本声明部分 * Copyright (c)2013, 烟台大学计算机学院学生 * All rightsreserved. * 文件名称:test.cpp                            * 作    者:徐凯旋                         * 完成日期: 2013 年 4 月 13 日 * 版 本 号: 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 pmvoid 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,切换是否前导0private: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:05int 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;  }

 

运行结果:

原创粉丝点击