第六周项目四——静态成员应用
来源:互联网 发布:开淘宝店铺货源怎么找 编辑:程序博客网 时间:2024/06/08 16:24
#include<iostream>#include<cstdlib>using namespace std;class Time{public://Time(int=0,int=0,int=0);void setTime(int h=0,int m=0,int s=0);void is_Righttime();void show_time( ); //根据is_24和from0,输出适合形式-20:23:5/8:23:5 pm/08:23:05 pmvoid style_time();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,切换是否前导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 second;};bool Time::is_24=false;bool Time::from0=false;void Time::setTime(int h,int m,int s){hour=h;minute=m;second=s;}void Time::change24(){is_24=true;}void Time::changefrom0(){from0=true;}void Time::style_time(){int style;cout<<"请选择输出格式:"<<endl;cout<<"1.12小时制,无前导0 2.24小时制,无前导0"<<endl;cout<<"3.12小时制,有前导0 4.24小时制,有前导0"<<endl;cin>>style;switch(style){case 1:break;case 2:change24();break;case 3:changefrom0();break;case 4:change24();changefrom0();break;default:cout<<"输入有误,请重新输入:"<<endl;cin>>style;}}void Time::add_seconds(int s){ minute+=s/60; while(minute>=60)minute-=60;hour+=1; hour+=s/3600; while(hour>=24)hour-=24; second+=s%60; if(second>59) { minute=minute+1; second-=60; }}void Time::add_minutes(int m){ hour+=m/60; while(hour>=24)hour-=24; minute+=m%60; while(minute>=60)minute-=60;}void Time::add_hours(int h){ hour+=h%24; while(hour>=24)hour-=24;}void Time::show_time(){bool time;if(!is_24&&!from0){if(hour>12){hour-=12;cout<<hour<<":"<<minute<<":"<<second<<"pm"<<endl;}elsecout<<hour<<":"<<minute<<":"<<second<<"am"<<endl;}else if(!is_24&&from0){if(hour>12){time=false;hour-=12;if(hour<10)cout<<"0"<<hour<<":";elsecout<<hour<<":";}else{time=true;cout<<hour<<":";}if(minute<10)cout<<"0"<<minute<<":";elsecout<<minute<<":";if(second<10){if(time) cout<<"0"<<second<<"am"<<endl;elsecout<<"0"<<second<<"pm"<<endl;}else{if(time) cout<<second<<"am"<<endl;elsecout<<second<<"pm"<<endl;}}else if(is_24&&!from0)cout<<hour<<":"<<minute<<":"<<second<<endl;else{if(hour<10)cout<<"0"<<hour<<":";elsecout<<hour<<":";if(minute<10)cout<<"0"<<minute<<":";elsecout<<minute<<":";if(second<10)cout<<"0"<<second<<endl;elsecout<<second<<endl;}}int main(){ int chose,sec,min,hour;Time T; cout<<"请输入时间(HH:MM:SS):"<<endl; T.is_Righttime(); while(1) { cout<<"请选择以下命令:"<<endl; cout<<"1.增加n秒 2.增加n分 "<<endl; cout<<"3.增加n时 0.退出 "<<endl; cin>>chose; switch(chose) { case 0: exit(0); case 1: cout<<"请输入增加的秒数:"<<endl; cin>>sec; T.add_seconds(sec); T.style_time(); T.show_time(); break; case 2: cout<<"请输入增加的分数:"<<endl; cin>>min; T.add_minutes(min); T.style_time(); T.show_time(); break; case 3: cout<<"请输入增加的时数:"<<endl; cin>>hour; T.add_hours(hour); T.style_time(); T.show_time(); break; default: cout<<"输入有误,请重新输入:"<<endl; cin>>chose; } }return 0;}void Time::is_Righttime(){int hour,minute,second;char a,b;while(1){cin>>hour>>a>>minute>>b>>second;if(a!=':'||b!=':')cout<<"格式错误,请重新输入:"<<endl;else if(hour<0||hour>24||minute<0||minute>60||second<0||second>60)cout<<"时间有误,请重新输入:"<<endl;elsesetTime(hour,minute,second);break;}}
/*好长的程序啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊!*/
0 0
- 第六周(项目四)——静态成员应用。
- 第六周项目四——静态成员应用
- 第六周项目四-静态成员应用
- 第六周项目四 静态成员应用
- 第六周项目四-静态成员应用
- 第六周项目四静态成员应用 时间
- 第六周项目四 静态成员的应用
- 第六周项目四静态成员应用(时间类)
- 第六周项目4—静态成员应用
- 第六周——静态成员应用
- 第六周 项目4 静态成员应用
- 第六周-项目4-静态成员应用
- 第六周项目4-静态成员应用
- 第六周项目4-静态成员应用
- 第六周项目4 静态成员应用
- 第六周 项目4-静态成员应用
- 第六周项目4-静态成员应用
- 第六周项目4-静态成员应用
- Android自拍相机应用——图片的镜像翻转
- c# 操作 XML(增 ,删 , 改 , 查)
- 脑波设备mindwave二次开发框架
- Struts2 校验框架学习笔记
- JNI
- 第六周项目四——静态成员应用
- Vijos p1002 过河 (DP+状态压缩)
- 测试用例--评价测试用例好坏的两个标准
- 网站接入流程
- 如何"杀死"一个窗口--WindowKiller
- Linux命令全称
- Android开发之根据Service的生命周期特点后台连接网络下载图片(源代码分享)
- 微信二维码扫描无法下载APK文件
- 判断对称数、回文字符串