zoukankan      html  css  js  c++  java
  • C++走向远洋——33(静态成员的应用)

    */
     * Copyright (c) 2016,烟台大学计算机与控制工程学院
     * All rights reserved.
     * 文件名:time.cpp
     * 作者:常轩
     * 微信公众号:Worldhello
     * 完成日期:2016年3月23日
     * 版本号:V1.0
     * 问题描述:静态成员应用
     * 程序输入:无
     * 程序输出:见运行结果
     */
    
    #include <iostream>  
    using namespace std;  
    class Time  
    {  
    public:  
        Time(int=0,int=0,int=0);  
        void show_time( ); //根据is_24和from0,输出适合形式的时间: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,在和时制之间转换  
        static void changefrom0();   //改变静态成员from0,转换是否前导  
    private:  
        static bool is_24; //为true时,小时制,如:23:5;为flase,小时制,显示为:23:5 pm  
        static bool from0; //为true时,前导,:23:5显示为: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){}  
      
    void Time::show_time( )       
    {  
        int h;
        if(is_24)   
          h=hour;  
        else   
          h=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;  
        if(!is_24)   
              
            if (hour>12)  
              cout<<" pm";  
            else  
              cout<<" am";  
        cout<<endl;  
    }  
      
    void Time::add_seconds(int n) //增加n秒钟   
    {    
        sec+=n;          
        if (sec>59)       
        {    
            add_minutes(sec/60);      
            sec%=60;          
        }    
    }    
      
    void Time::add_minutes(int n) //增加n分钟   
    {    
        minute+=n;    
        if (minute>59)     
        {    
            add_hours(minute/60);    
            minute%=60;    
        }    
    }    
      
    void Time::add_hours(int n) //增加n小时   
    {    
        hour+=n;    
        if (hour>23)    
            hour%=24;         
    }    
      
    void Time::change24()  
    {  
        is_24=!is_24;  
    }  
    void Time::changefrom0()  
    {  
        from0=!from0;  
    }  
      
    int main( )     
    {  
        Time t1(23,14,25),t2(8,45,6);   
        cout<<"24时制, 不前导:"<<endl;  
        cout<<"    t1是:";  
        t1.show_time();  
        cout<<"    t2是:";  
        t2.show_time();  
        t1.add_hours(10);  
        t2.add_hours(10);  
        Time::changefrom0(); //注意此处调用静态成员  
        cout<<"10小时后, 切换是否前导:"<<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();  
        return 0;  
    }  

    心得:

        无

  • 相关阅读:
    Linux ps命令
    SecureCRT注册机使用方法
    微信消息的处理和应答
    微信公众号开发--开发服务器接入微信服务器
    RESTful架构
    OAuth2.0详解
    HTTP头详解
    Cookie/Session机制详解
    学习tornado:安全
    python tornado框架实现CRUD
  • 原文地址:https://www.cnblogs.com/chxuan/p/8232247.html
Copyright © 2011-2022 走看看