6-4 静态成员应用
来源:互联网 发布:淘宝里咸鱼怎么找 编辑:程序博客网 时间:2024/05/21 09:38
/** 作 者: 霍雨佳* 完成日期:2014 年4月1日* 版 本 号:v1.0* 问题描述:设计含有静态数据成员和成员函数的Time类。静态数据成员是类中所有的对象共有的数据* 样例输入:* 样例输出:* 问题分析:时钟要采用12小时制,还是要使用24小时制,显示时,不足两位的数字前是否前导0,都是“影响全局”的设置,* 适合作为类中的静态数据成员。*/#include <iostream>using namespace std;class Time{public: Time(int h=0,int m=0,int s=0):hour(h),minute(m),sec(s) {}; void show_time( ); //根据is_24和from0,输出适合形式-20:23:5/8:23:5 pm/08:23:05 pm void add_seconds(); //增加n秒钟 void add_minutes(); //增加n分钟 void add_hours(); //增加n小时 static void change24(bool m) //改变静态成员is_24,在12和24时制之间转换 { is_24=m; } static void changefrom0(bool n) //改变静态成员from0,切换是否前导0 { from0=n; }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;};bool Time::is_24=true;bool Time::from0=true;void Time::show_time( ) //根据is_24和from0,输出适合形式-20:23:5/8:23:5 pm/08:23:05 pm{ if(Time::is_24) { cout<<"24小时制"<<" "; cout<<hour<<":"<<minute<<":"<<sec<<endl;//24小时制 } else if(Time::from0)//前导0 { cout<<"12小时制且前导0:"<<" "; if(hour<10) cout<<"0"<<hour; else cout<<hour<<":"; if(minute<10) cout<<":0"<<minute; else cout<<minute<<":"; if(sec<10) cout<<":0"<<sec<<endl; else cout<<":"<<sec<<endl;; } else { cout<<"12小时制"<<" "; if(hour>12) { hour=hour-12; cout<<hour<<":"<<minute<<":"<<sec<<" pm"<<endl; } else { cout<<hour<<":"<<minute<<":"<<sec<<" am"<<endl;//12小时制 } }}void Time::add_seconds() //增加n秒钟{ int h=0,m=0,s=0,i,j,l,b; /*s=sec; m=minute; h=hour;*/ cout<<"请输入要增加的秒数"; cin>>b; s=s+b; cout<<"增加"<<b<<"秒钟后时间为:"<<endl; for(i=0; s>=60; i++) { if(s<60) { s+=1; } else { s=s-60; if((m+1)<60) { m+=1; } else { for(j=0; m>=60; j++) { m=m-60; if((h+1)<24) h+=1; else for(l=0; h>=24; l++) { h=h-24; } } } } } hour=h; minute=m; sec=s;}void Time::add_minutes() //增加n分钟{ int h,m,s,i,j,b; s=sec; m=minute; h=hour; cout<<"请输入要增加的分钟数"; cin>>b; m+=b; cout<<"增加"<<b<<"分钟后时间为:"<<endl; if(m<60) { m=m; } else { for(i=1; m>=60; i++) { m=m-60; if((h+1)<24) h+=1; else for(j=0; h>=24; j++) { h=h-24; } } } hour=h; minute=m; sec=s;}void Time::add_hours() //增加n小时{ int h,m,s,l,i; s=sec; m=minute; h=hour; cout<<"请输入要增加的小时"; cin>>l; h=h+l; cout<<"增加"<<l<<"小时后时间为:"<<endl; if(h<24) h=h; else { for(i=1; h>=24; i++) { h=h-24; } } hour=h; minute=m; sec=s;}int main(){ Time t; t.change24(true); t.show_time( ); t.add_seconds(); //增加n秒钟 t.change24(false); t.show_time( ); t.add_minutes(); //增加n分钟 t.change24(true); t.show_time( ); t.add_hours(); //增加n小时 t.change24(false); t.changefrom0(false); t.show_time( ); return 0;}
运行结果:
要好好研究下静态变量了……
0 0
- 6-4 静态成员应用
- 项目4-静态成员应用
- C++第6周(春)项目4 静态成员应用
- 第6周项目4-静态成员应用
- 第6周项目4:静态成员应用
- 第6周-项目4-静态成员应用
- 第6周项目4-静态成员应用
- 第6周项目4-静态成员应用
- 第6周项目4-静态成员应用
- 第6周项目4--静态成员的应用
- 第6周项目4-静态成员应用
- 2013-4-12.2~静态成员应用
- 第六周 项目4 静态成员应用
- 六周 项目4 静态成员应用
- 项目4--静态成员应用 时间
- 第六周-项目4-静态成员应用
- 第五周项目4 静态成员应用
- 第五周 【项目4-静态成员应用】
- 2014年4月份日常记录表(2014.4.1—4.30,30天)
- android 获取程序路径
- 第六周项目2-对象作为数据成员
- rails连接Mysql的数据库
- 事实上事实上事实上
- 6-4 静态成员应用
- Struts2教程3:struts.xml常用配置解析
- Shell学习之文件的描述符和重定向
- MFC中实现位图的透明显示
- 学拳录.第8势 斜行
- 64位虚拟机之BIOS设置问题
- Linux压缩文件的读取
- Struts2教程4:使用validate方法验证数据
- 中介者模式