项目一(静态成员用于时间类)

来源:互联网 发布:股票实时行情软件 编辑:程序博客网 时间:2024/05/17 11:35

上机目的:时间类的处理;

main.cpp

#include<iostream>#include"Time.h"using namespace std;int main( )   {Time t1(23,54,53),t2(11,58,59); 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();t2.change24();cout<<"换一种制式:"<<endl;cout<<"t1是:";t1.show_time();cout<<"t2是:";t2.show_time();system("pause");return 0;}

Time.cpp

#include<iostream>#include "Time.h"using namespace std;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=(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;if(!is_24){cout<<((hour>12)?"  pm":"  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;}

Time.h
#pragma onceclass Time{public:Time(int=0,int=0,int=0);void show_time( ); //根据is_24和from0,输出适合形式的时间: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,在和时制之间转换static void changefrom0();   //改变静态成员from0,转换是否前导private:static bool is_24; //为true时,小时制,如:23:5;为flase,小时制,显示为:23:5 pmstatic bool from0; //为true时,前导,:23:5显示为:23:05int hour;int minute;int sec;};
运行结果:


原创粉丝点击