静态成员

来源:互联网 发布:rtu是什么数据 编辑:程序博客网 时间:2024/06/06 19:10

问题及代码:

/* *copyright(c) 2014,烟台大学计算机学院 *All rights reserved *文件名称:test.cpp *作者:杨昊 *版本:v6.0 *时间;2016年4月10日 * *问题描述:静态成员 *输入描述:无 *程序输出:*/#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;     int u; }; 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 v;     u=0;     if(is_24)         v=hour;     else     {         u=2;         if(hour>=12)             u=1;         v=hour%12;     }     if(from0)     {         if(v<10)             cout<<"0";         cout<<v<<":";          if(minute<10)             cout<<"0";         cout<<minute<<":";          if(sec<10)             cout<<"0";         cout<<sec;         if(u==2)             cout<<" am"<<endl;         else if(u==1)             cout<<" pm"<<endl;         else             cout<<"\n";     }     else         cout<<v<<":"<<minute<<":"<<sec<<endl; } void Time::add_seconds(int t) {     sec=sec+t;     if(sec>59)     {         int q=sec/60;         add_minutes(q);         sec=sec%60;     } } void Time::add_minutes(int t) {     minute=minute+t;      if(minute>59)     {         int q=minute/60;         add_hours(q);         minute=minute%60;     } } void Time::add_hours(int t) {     hour=hour+t;     if(hour>23)     {     hour=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; }
结果及总结:

0 0
原创粉丝点击