第7周任务1:静态成员应用

来源:互联网 发布:淘宝来图印花定制内裤 编辑:程序博客网 时间:2024/05/20 14:19
/*     * 程序的版权和版本声明部分     * Copyright (c)2013, 烟台大学计算机学院学生     * All rightsreserved.     * 文件名称: c.cpp     * 作者:李慧慧     * 完成日期: 2013年 4 月16 日     * 版本号: v1.0     * 输入描述:     * 问题描述: 静态数据成员和成员函数的应用     * 程序输出:     */   #include<iostream>using namespace std;class Time{public:Time(int=0,int=0,int=0);void show_time( ); //根据is_24 和from0,输出适合形式-20: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,在12 和24 时制之间转换static void changefrom0(); //改变静态成员from0,切换是否前导0private:static bool is_24; //为true 时,24 小时制,如20:23:5;为flase,12 小时制,显示为8:23:5 pmstatic bool from0; //为true 时,前导0,8:23:5 显示为08:23:05int 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( )//根据is_24 和from0,输出适合形式-20:23:5/8:23:5 pm/08:23:05 pm{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(hour<12)cout<<"   am";elsecout<<"   pm";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,在12 和24 时制之间转换{ is_24=!is_24;}void Time::changefrom0() //改变静态成员from0,切换是否前导0{ from0=!from0; }int main( ) //运行结果如图所示{ Time t1(14,35,56),t2(4,45,6);cout<<"24时制,不前导0。"<<endl;cout<<"t1是:";t1.show_time();cout<<"t2是:";t2.show_time();Time::changefrom0();cout<<"10小时后,切换是否前导0。"<<endl;t1.add_hours(10);t2.add_hours(10);cout<<"t1是:";t1.show_time();      cout<<"t2是:";      t2.show_time();cout<<"换一种制式:"<<endl;t1.change24();cout<<"t1是:";      t1.show_time();      cout<<"t2是:";      t2.show_time();      return 0;}


运行结果:

 

原创粉丝点击