第七周实验报告(一)

来源:互联网 发布:淘宝网薄款女士羽绒服 编辑:程序博客网 时间:2024/05/29 18:12

含有静态数据成员和成员函数的TIME类:类中所有的对象共有的数据

 

#include <iostream>

using namespace std;

class Time{public:

 Time(int h ,int m ,int s); 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,切换是否前导0

private:

 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;

};//下面写出静态成员的初始化及各成员函数的定义

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;}

Time::Time(int h,int m,int s){ hour = h; minute = m; sec = s;}

void Time::show_time(){ if(is_24) {  if(from0)  {   if(hour<=9)   {    cout<<"0"<<hour<<":";   }   else   {    cout<<hour<<":";   }   if(minute<=9)   {    cout<<"0"<<minute<<":";   }   else   {    cout<<minute<<":";   }   if(sec<=9)   {    cout<<"0"<<sec<<endl;   }   else     cout<<sec<<endl;  }  else  {   cout<<hour<<":"<<minute<<":"<<sec<<endl;  } } else {        if(hour>12)        {                   hour-=12;  cout<<hour<<":"<<minute<<":"<<sec<<"pm"<<endl;    }  else  cout<<hour<<":"<<minute<<":"<<sec<<"am"<<endl;    }}void Time::add_hours(int a){ if((hour+a)>24) {                   hour=hour+a;                   hour=hour-24;        }    else    hour+=a;}

void Time::add_minutes(int a){             if((minute+a)>60)     {                  hour+=1;                  if(hour>24)                  {                             hour-=24;                  }                  minute-=60;     }     else     minute+=a;}

void Time::add_seconds(int a){ if((sec+a)>60) {                  minute+=1;              if(minute>60)     {                  hour+=1;                  minute-=60;     }     }               else               sec+=a; }void Time::change24(){ if(is_24 == true) {  is_24 = false; } else  is_24 = true;}

void Time::changefrom0(){ if(from0==true) { from0 = false; } else  from0 = true;}bool Time::is_24=true;bool Time::from0=true;

 

 

 

给bool型赋值需要在类外定义。(修改版)