静态函数,静态数据成员运用

来源:互联网 发布:淘宝假货店铺名单2017 编辑:程序博客网 时间:2024/05/17 22:09
/* * Copyright (c) 2013, 烟台大学计算机学院                     * All rights reserved.                     * 文件名称:test.cpp                     * 作者:邱学伟                    * 完成日期:2013 年 4 月 15 日                     * 版本号: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,切换是否前导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: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(){int h;h=(is_24)?hour:hour%12;if(hour<10 && from0)cout<<"0";cout<<hour<<':';if(minute<10 && from0)cout<<'0';cout<<minute<<':';if(sec<10 && from0)cout<<'0';cout<<sec;if(!is_24)cout<<(hour<12)?"am":"pm";cout<<endl;}//增加n秒钟void Time::add_seconds(int n){sec+=n;if(sec>=60){add_minutes(sec/60);sec%=60;}}//增加n分钟void Time::add_minutes(int n){minute+=n;if(minute>=60){add_hours(minute/60);minute%=60;}}//增加n小时void Time::add_hours(int n){hour+=n;if(hour>=24)hour%=24;}//使用静态函数引用静态变量void Time::change24(){is_24=!is_24;}void Time::changefrom0(){from0=!from0;}int main( ) //运行结果如图所示{Time t1(23,24,45),t2(1,45,18);cout<<"  24小时制,不前导0  "<<endl;cout<<" t1是:"<<endl;t1.show_time();cout<<" t2是:"<<endl;t2.show_time();t1.add_hours(10);t2.add_hours(10);    cout<<" 增加10小时 观察是否前导0"<<endl;Time::changefrom0();cout<<" t1是:"<<endl;t1.show_time();cout<<" t2是:"<<endl;t2.show_time();t1.change24();t2.change24();cout<<"换一种形式为:"<<endl;cout<<" t1是:"<<endl;t1.show_time();cout<<" t2是:"<<endl;t2.show_time();return 0;}

	
				
		
原创粉丝点击