C++第三次实验
来源:互联网 发布:淘宝网lol账号 编辑:程序博客网 时间:2024/06/13 03:29
一·问题及代码
/** 文件名称: 静态成员应用* 作 者:陈征* 完成日期: 2016 年 4 月 18 日* 版 本 号:v1.0* 对任务及求解方法的描述部分:略* 输入描述: 无* 问题描述: 设计含有静态数据成员和成员函数的Time类。 静态数据成员是类中所有的对象共有的数据, 在下面的设计中,时钟要采用12小时制,还是要使用24小时制 ,显示时,不足两位的数字前是否前导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 pm void add_seconds(int s); //增加n秒钟 void add_minutes(int m); //增加n分钟 void add_hours(int h); //增加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:05 int hour; int minute; int sec;};bool Time::is_24=1;bool Time::from0=1;Time::Time(int h,int m,int s){ hour=h; minute=m; sec=s;}void Time::add_seconds(int s){ sec+=s; if(sec>=60) { minute+=sec/60; sec%=60; if(minute>=60) { hour+=minute/60; minute%=60; if(hour>=24) { hour=hour%24; } } }}void Time::add_minutes(int m){ minute+=m; if(minute>=60) { hour+=minute/60; minute%=60; if(hour>=24) { hour=hour%24; } }}void Time::add_hours(int h){ hour+=h; if(hour>=24) { hour=hour%24; }}void Time::change24(){ is_24=!is_24;}void Time::changefrom0(){ from0=!from0;}void Time::show_time(){ int h=hour; if(is_24) { if(from0) { if(hour<10) { cout<<"0"; } cout<<hour<<":"; if(minute<10) { cout<<"0"; } cout<<minute<<":"; if(sec<10) { cout<<"0"; } cout<<sec; cout<<endl; } } if(!is_24) { if(from0) { if(hour>12) { hour-=12; } if(hour<10) { cout<<"0"; } cout<<hour<<":"; if(minute<10) { cout<<"0"; } cout<<minute<<":"; if(sec<10) { cout<<"0"; } cout<<sec; } cout<<endl; } if(is_24) { if(!from0) { cout<<hour<<":"<<minute<<":"<<sec<<endl; } } if(!is_24) { if(!from0) { if(hour>12) { hour-=12; } cout<<hour<<":"<<minute<<":"<<sec<<endl; } } if(!is_24) { if(h<12) cout<<"am"; else cout<<"pm"; }}int main(){ Time t1(23,14,25); Time t2(8,45,6); cout<<"24小时制,不前导:"<<endl; t1.changefrom0(); t1.show_time(); t2.show_time(); cout<<"十小时后切换是否前导:"<<endl; t1.changefrom0(); t1.add_hours(10); t2.add_hours(10); t1.show_time(); t2.show_time(); cout<<"换一种制式:"<<endl; t1.change24(); t1.show_time(); cout<<endl; t2.show_time(); return 0;}
二·运行结果
<img src="http://img.blog.csdn.net/20160605205736603" alt="" />
三·心得体会
学会使用了静态成员函数
四·知识点总结
注意静态变量是一改全改
0 0
- C语言第三次上机实验
- 第三次C程序设计实验报告
- 第三次C语言上机实验
- c语言程序设计第三次上机实验报告
- 第三次C语言上机实验报告
- c语言程序设计第三次上机实验报告
- 第三次实验
- 第三次实验
- 第三次实验
- 第三次实验
- 第三次实验
- 第三次实验
- 第三次实验
- 第三次实验
- 第三次实验
- C程序设计课程-2012电子信息 第三次上机实验
- C程序设计课程-2012电子信息 第三次上机实验
- 软件工程(C编码实践篇) 第三次作业实验报告
- Lucene学习
- Android初级教程理论知识(第一章快速入门)
- 多线程编程WaitForSingleObject()
- iOS监听设备方向的方法
- ios获取软键盘完成事件
- C++第三次实验
- C++实验7--项目2:最大公约和和最小公倍数
- C++第七次实验——特殊三位数
- 函数 void main 与 int main 的区别
- c++实验7-最大公约和和最小公倍数
- 使用JAXP进行SAX解析(XMLReaderFactory、XMLReader 、SAXParserFactory与SAXParser)
- 改变状态栏状态的方法
- C++ 引用计数技术及智能指针的简单实现
- Hadoop YARN配置参数剖析(1)—RM与NM相关参数