第七周项目一
来源:互联网 发布:java split . 编辑:程序博客网 时间:2024/05/01 10:38
* /* Copyright (c) 2011, 烟台大学计算机学院 * All rights reserved.* 作 者: 孙培培* 完成日期:2013 年 4月15日* 版 本 号:v1.0 * 输入描述:* 问题描述:*/
//【项目1-静态成员应用】设计含有静态数据成员和成员函数的Time类:静态数据成员类中所有的对象共有的数据#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 pm static bool from0; //为true时,前导0,8:23:5显示为08:23:05int hour;int minute;int sec;};//下面写出静态成员的初始化及各成员函数的定义……void Time::change24() //改变静态成员is_24,在12和24时制之间转换{ is_24=!is_24;}void Time::changefrom0() //改变静态成员from0,切换是否前导0{ from0=!from0;}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 i=(is_24)?hour:(hour%24); if(from0 && i<10) cout<<'0'; cout<<i<<':'; if(from0 && minute<10) cout<<'0'; cout<<minute<<':'; if(from0 && sec<10) cout<<'0'; cout<<sec; if(!is_24) if(hour>12) cout<<"pm"; else cout<<"am"; cout<<endl; }void Time::add_seconds(int n)//增加n秒钟{cout<<"增加"<<n<<"秒钟后的时间为: ";sec+=n;if(sec>=60){add_minutes(sec/60); //增加sec/60分钟sec%=60; //秒数应该是sec%=60 }return;}void Time::add_minutes(int n) //增加n分钟 {cout<<"增加"<<n<<"分钟后的时间为: ";minute+=n;if(minute>=60){add_hours(minute/60); //增加minute/60小时minute%=60; //此时秒数应该是minute%=60}return;}void Time::add_hours(int n) //增加n小时{cout<<"增加"<<n<<"小时后的时间为: ";hour+=n; //增加n小时if(hour>=24) //此时小时数应该是hour%=24{hour%=24; }return;}bool Time::is_24=true;bool Time::from0=false;int main( ) //运行结果如图所示{ Time t1(22,25,45),t2(9,10,55);cout<<"24进制,不前导0:"<<endl;cout<<"t1:"; t1.show_time();cout<<"t2:";t2.show_time();t1.add_hours(5);cout<<"t1:"; t1.show_time();cout<<"t2:";t2.show_time(); t2.add_hours(5);cout<<"t1:"; t1.show_time();cout<<"t2:";t2.show_time(); cout<<"五小时后切换是否前导0"; Time::changefrom0();cout<<"t1:"; t1.show_time();cout<<"t2:";t2.show_time();cout<<"更换时间显示格式后:"<<endl; t1.change24(); t2.change24(); cout<<"t1:"; t1.show_time();cout<<"t2:";t2.show_time();t1.add_minutes(50);cout<<"t1:"; t1.show_time(); t2.add_seconds(60);cout<<"t2:";t2.show_time();return 0; }