第5周项目3-时间类(2)
2016-04-05 20:42
288 查看
/* *Copyright(C) 2016,计算机与控制工程学院 *All rights reserved. *文件名:test.cpp *作者:张志新 *完成日期:2016年4月1日 *版本号:v1.0 * *问题描述: *(2)再增加三个成员函数,要求在类内声明,类外定义。 *add_seconds(int) //增加n秒钟 *add_minutes(int) //增加n分钟 *add_hours(int) //增加n小时 *提示: *要考虑增加后超出取值范围的情形; *增加n秒后,秒数可能会超过60,调整秒数,并可以调用增加分钟数的成员函数,使时间合法;同理,增加分钟数也 */ #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_an_hour(); inline void add_sec(int n); inline void add_minute(int n); inline void add_hour(int n); private: bool is_time(int, int, int); int hour; int minute; int sec; }; void Time::set_time( ) { char c1,c2; cout<<"请输入时间(格式hh:mm:ss)"; 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>24 || m<0 ||m>60 || s<0 ||s>60) return false; return true; } void Time::add_a_sec() { ++sec; if(sec>=60) { minute++; sec=0; } } void Time::add_a_minute() { ++minute; if(minute>=60) { hour++; minute=0; } } void Time::add_an_hour() { ++hour; if(hour>24) { hour=hour-24; } } void Time::add_sec(int n) { sec+=n; if(sec>=60) { minute+=sec/60; sec=sec%60; } } void Time::add_minute(int n) { minute+=n; if(minute>=60) { hour+=minute/60; minute=minute%60; } } void Time::add_hour(int n) { hour+=n; if(hour>24) { hour=hour-24; } } int main( ) { Time t1; t1.set_time( ); t1.add_a_sec(); t1.show_time( );//加一秒钟 t1.add_a_minute();//加一分钟 t1.show_time( ); t1.add_an_hour();//加一个小时 t1.show_time( ); t1.add_sec(60); t1.show_time( ); t1.add_minute(6); t1.show_time( ); t1.add_hour(2); t1.show_time( ); return 0; }
相关文章推荐
- Python与Selenium初试
- 二维动态数组
- Android从网上下载图片
- Activity入门(一)
- 【BZOJ 2434】【NOI 2011】阿狸的打字机 fail树
- FZU 2216 The Longest Straight 模拟
- java中已经排序的列表中插入新值
- Tiny4412 led之build JNI实现
- Windows系统(二)--操作系统原理
- 第6周项目4:静态成员应用
- WINAPI Http、Https 服务器操作(一)
- 从上往下打印二叉树
- java中双向链表的增、删、查操作
- Linux解决删除文件后空间没有释放问题_端口占用问题
- IOS9以上系统请求http报错
- 价值观作业
- 高斯判别分析与高斯混合分布之庖丁解牛(第一集)
- Java数据泛型正确的初始化方法
- Python MySQL操作
- MyEclipse快捷键大全