第五周上机实践项目——项目3-时间类-(2)
2016-03-26 19:49
363 查看
/* *Copyright (c)2016,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:main.cpp *作 者:郭永恒 *完成日期:2016年3月26日 *版 本 号:v1.0 * *问题描述:在(1)的基础上添加 add_hours() add_minutes() add_seconds()三个成员函数 */ #include <iostream> #include <string> using namespace std; class Time { public: void add_a_sec() {sec++;}//增加一秒钟 void add_a_minute() {minute++;}//增加一分钟 void add_an_hour() {hour++;}//增加一小时 void add_seconds(int s);//增加s秒 void add_minutes(int m);//增加m分钟 void add_hours(int h);//增加h小时 void set_time(); void show_time(); 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; //在原来代码中没有这两行代码,后来发现一旦输入错误就会死循环,就加了这两行 cin.clear();//清除cin流的错误状态 cin.sync();//清空输入缓冲区 } 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; else return true; } void Time::add_seconds(int s) { sec += s; if(sec > 59) { minute += sec/60; sec = sec % 60; } } void Time::add_minutes(int m) { minute += m; if(minute > 60) { hour += minute/60; minute = minute % 60; } } void Time::add_hours(int h) { hour += h; } int main() { Time t1; t1.set_time(); t1.show_time(); t1.add_seconds(10);//增加十秒钟 t1.add_minutes(10);//增加十分钟 t1.add_hours(10);//增加十小时 t1.show_time(); return 0; }
运行结果:
相关文章推荐
- ascii码和数字间的转换
- ftp返回值问题
- 第四周项目4--程序分析(1)
- 第五周项目3:时间类(1)
- linux创建用户命令
- ThinkPHP框架中遇到的若干问题手札2
- linux监控与管理常用命令
- 【杭电-oj】-2393-Higher Math(判断是否为三角形)
- CALayer 类的介绍(创建+属性)
- 如何降低Vue.js项目中Webpack打包文件的大小?
- UVA 10384(p219)----The Wall Pusher
- 326. Power of Three
- 结对项目进展第二周——模块化分析
- Myeclipse怎么导入工程项目
- android表情Gson EditText TextView
- C语言产生随机数
- bower初级入门
- 知识点总结
- 个人阅读书籍记录
- 第四周进度条