c++第三次实验

来源:互联网 发布:php 查找字符串位置 编辑:程序博客网 时间:2024/06/07 06:41

一、问题及代码

/*    * 文件名称:1.cpp    * 作    者:薛赫鹏   * 完成日期:2016 年 4 月 22日    * 版 本 号:v1.0    * 对任务及求解方法的描述部分:   * 输入描述:无    * 问题描述:要求用静态数据成员; * 程序输出:略    * 问题分析:略   * 算法设计:略    */        #include <iostream>    using namespace std;    class Time  {    public:        Time(int h=0,int m=0,int s=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,切换是否前导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;    };    //下面写出静态成员的初始化及各成员函数的定义……        void Time::show_time()  {      int h;      if (is_24)          h=hour;      else          h=hour%12;      if (from0&&h<10)          cout<<"0";          cout<<h<<":";      if (from0&&minute<10)          cout<<"0";          cout<<minute<<":";      if (from0&&sec<10)          cout<<"0";          cout<<sec;      if (!is_24)          cout<<((hour>12)?" pm":" am")<<endl;      else cout<<endl;      return;  }     Time::Time(int h,int m,int s)    {        hour=h;      minute=m;      sec=s;    }    void Time::add_seconds(int n)//增加n秒钟  {      sec=sec+n;      if(sec>=60)          minute=minute+sec/60;          sec=sec%60;      if(minute>=60)          hour=hour+minute/60;          minute=minute%60;  }    void Time::add_minutes(int n)//增加n分钟  {      minute=minute+n;      if(minute>=60)          hour=hour+minute/60;          minute=minute%60;  }    void Time::add_hours(int n)//增加n小时  {      hour=hour+n;      if(hour>=24) hour-=24;  }           void Time::change24()//改变静态成员is_24,在12和24时制之间转换  {      is_24=false;  }        void Time::changefrom0()//改变静态成员from0,切换是否前导0  {      from0=true;  }    bool Time::is_24=true;    bool Time::from0=false;     int main()  {      Time t1(23,14,25);      Time 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);      cout<<"10小时后,切换是否前导:"<<endl;      t1.changefrom0();      t2.changefrom0();      cout<<"  t1是:";      t1.show_time();      cout<<"  t2是:";      t2.show_time();            cout<<"换一种制式:"<<endl;      cout<<"  t1是:";      t1.change24();      t2.change24();      t1.show_time();      cout<<"  t2是:";      t2.show_time();            return 0;  }  
二、运行结果:


三、心得体会:

学会了静态成员的应用

四、知识点总结:

是否需要改变static静态成员,影响全局

0 0
原创粉丝点击