第七周1静态成员应用

来源:互联网 发布:淘宝上能卖保健品吗 编辑:程序博客网 时间:2024/05/20 10:14
/* 
* 程序的版权和版本声明部分 
* Copyright (c)2013, 烟台大学计算机学院学生 
* All rightsreserved. 
* 文件名称:test.cpp                            
* 作    者:王俊                        
* 完成日期: 2013 年 4 月 17日 
* 版 本 号: v1.0       
*/  
#include <iostream>#include <string>using namespace std;int n;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,切换是否前导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:05    int hour;    int minute;    int sec;};//下面写出静态成员的初始化及各成员函数的定义……Time::Time(int h,int m,int s): hour(h), minute(m), sec(s){} void Time:: show_time( )//根据is_24和from0,输出适合形式-20:23:5/8:23:5 pm/08:23:05 pm{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,在12和24时制之间转换{is_24=!is_24; }void Time::changefrom0()  //改变静态成员from0,切换是否前导0{from0=!from0; }bool Time::is_24=true;  bool Time::from0=false; 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<<"10小时后,切换是否前导0:"<<endl;    cout<<"t1是:"<<endl;t1.show_time();     cout<<"t2是:"<<endl;t2.show_time();      t1.change24();cout<<"换一种制式:"<<endl;    cout<<"t1是:"<<endl;t1.show_time();     cout<<"t2是:"<<endl;t2.show_time();      system("pause");      return 0;  }
运行结果:
原创粉丝点击