第2周项目3时间类
来源:互联网 发布:工业机器人编程 编辑:程序博客网 时间:2024/05/22 00:39
编号及代码/*完成日期:3月15*作者:范星月*问题描述:在原类基础上增加内置成员函数,并在增加三个成员函数,在类内声明,类外定义*问题输入:输入时间*问题输出:按要求输出时间*/#include <iostream>using namespace std;class Time{public: void set_time(); void show_time(); inline void add_a_sec(); inline void add_a_minute(); inline void add_a_hour(); void add_seconds(int n); void add_minutes(int n); void add_hours(int n);private: bool is_time(int ,int ,int ); int sec; int minute; int hour;};void Time::set_time(){ char c1,c2; cout<<"请输入时间(格式hh:mm:ss):"<<endl; while (1) { cin>>hour>>c1>>minute>>c2>>sec; if(c1!=':'||c2!=':') cout<<"格式不正确,请重新输入"<<endl; else if(!is_time(hour,minute,sec)) cout<<"时间非法,请重新输入"<<endl; else break; }}void Time::show_time(){ cout<<hour<<":"<<minute<<":"<<sec<<endl;}bool Time::is_time(int h,int m,int s){ if(h<0||h>23||m<0||m>59||s<0||s>59) return false; return true;}void Time::add_a_sec(){ sec++; if(sec>59) { sec=0; add_a_minute(); }}void Time::add_a_minute(){ minute++; if(minute>59) { minute=0; add_a_hour(); }}void Time::add_a_hour(){ hour++; if(hour>23) hour=0;}void Time::add_seconds(int n){ sec+=n; if(sec>59) { add_minutes(sec/60); sec%=60; }}void Time::add_minutes(int n){ minute+=n; if(minute>60) { add_hours(minute/60); minute%=60; }}void Time::add_hours(int n){ hour+=n; if(hour>23) add_hours(hour%24);}int main(){ Time t1; t1.set_time(); cout<<"现在时间是:"<<endl; t1.show_time(); t1.add_a_sec(); cout<<"增加一秒钟后的时间是:"<<endl; t1.show_time(); t1.add_a_minute(); cout<<"增加一分钟后的时间是:"<<endl; t1.show_time(); t1.add_a_hour(); cout<<"增加一小时后的时间是:"<<endl; t1.show_time(); t1.add_seconds(1); cout<<"增加n秒钟后的时间是:"<<endl; t1.show_time(); t1.add_minutes(1); cout<<"增加n分钟后的时间是:"<<endl; t1.show_time(); t1.add_hours(1); cout<<"增加n小时后的时间是:"<<endl; t1.show_time(); return 0;}
运行结果:
学习总结:结果的变化是在上一个的基础上,类是对象的抽象,对象是类的具体实例,内置函数,定义,调用,取整,取余,在秒数可能超过60的时候,调用增加分数的成员函数,使时间合法
0 0
- 第2周项目3时间类
- 第2周项目3时间类
- 第2周项目3-时间类
- 第2周项目3-时间类
- 第5周项目3-时间类
- 第5周项目3-时间类
- 第5周项目3-时间类
- 第2周项目时间类
- 第12周项目2-时间类
- 第2周 项目3—时间类(2)
- 第2周项目3-时间类(2)
- 第2周 项目3—时间类(1)
- 第2周项目3-时间类(1)
- 大一第二学期第2周【项目3:时间类】
- 第2周项目3——时间类
- 第5周-项目3-时间类(2)
- 第5周项目3—时间类(2)
- 第5周项目3-时间类(2)
- Leetcode: Repeated DNA Sequence
- Android Fragment实用方法及交互实例
- Hibernate与JDBC的区别
- 前端好用的插件集合
- 带缓冲IO与不带缓冲IO
- 第2周项目3时间类
- VBA 学习笔记 (任务完成,准备告一段落)
- 图片适配
- Unity学习 第一课==备忘录
- hdoj 1106 排序——脑洞产物 两种做法
- 反破解技巧,请叫我搬运工
- cocos2dx设计模式之单例模式
- 链式前向星
- HDU 2037今年暑假不AC