第五周项目(2)-时间类(1)【典型错误】
2016-03-31 12:45
225 查看
/*
*copyright (c) 2016,烟台大学计算机学院
*All rights reserved.
*文件名称:hellow.cpp
*作者:田甜
*完成日期:2016年3月31日
*版本号:v1.0
*
*问题描述:构造时间类
*输入描述:输入时、分、秒
*程序输出:修改后的时间
*/
问题及代码:
运行结果:
错误分析:
在调用函数add_a_sec()后已经通过嵌套调用得到了结果0:0:0
后面的两句调用函数add_a_min add_a_hour 反而使min和hour 再次加1造成了错误
/*
*copyright (c) 2016,烟台大学计算机学院
*All rights reserved.
*文件名称:hellow.cpp
*作者:田甜
*完成日期:2016年3月31日
*版本号:v1.0
*
*问题描述:构造时间类
*输入描述:输入时、分、秒
*程序输出:修改后的时间
*/
问题及代码:
#include <iostream> using namespace std; class Time { public: void set_time(); void show_time(); void add_a_sec() { if(isTime(sec,minute,hour)) sec++; if(sec>=60) { add_a_sec(); sec=0; } } void add_a_min() { if(isTime(sec,minute,hour)) minute++; if(minute>=60) { add_a_hour(); minute=0; } } void add_a_hour() { if(isTime(sec,minute,hour)) hour++; if(hour>=24) hour=0; } private: bool isTime(int a,int b,int c); int sec,minute,hour; }; bool Time::isTime(int a,int b,int c) { if(a<0||a>=60||b<0||b>=60||c<0||c>=60) return false; return true; } void Time::set_time() { char c1,c2; cout<<"请输入时间(格式:hh:mm:ss):"; while(1) { cin>>hour>>c1>>minute>>c2>>sec; if(c1!=':'||c2!=':') cout<<"格式错误,重新输入。"<<endl; if(!isTime(hour,minute,sec)) cout<<"时间非法,重新输入。"<<endl; else break; } } void Time::show_time() { cout<<hour<<":"<<minute<<":"<<sec<<endl; } int main() { Time t1; t1.set_time(); t1.add_a_sec(); t1.add_a_min(); t1.add_a_hour(); t1.show_time(); return 0; }
运行结果:
错误分析:
在调用函数add_a_sec()后已经通过嵌套调用得到了结果0:0:0
后面的两句调用函数add_a_min add_a_hour 反而使min和hour 再次加1造成了错误
相关文章推荐
- Android下pm 命令详解
- jquery-autocomplete 参数说明
- Python 2.7 学习笔记 内置语句、函数、标准库
- java服务器发送消息
- 计算证书keyhash sha1
- 技术向:一文读懂卷积神经网络CNN
- debugger调试
- mysql数据库配置文件my.ini
- HDUKnight Moves
- 了解负载均衡 会话保持 session同步
- offsetLeft,Left,clientLeft详解
- PlayerPrefs存储Vector3等结构数据
- VS编译后事件
- MyEclipse OutOfMemory
- UICollectionViewLayout
- YJX_Driver_014_VM+Wlndbg调试驱动
- 微软HoloLens虚拟现实可以开发了。
- android 代理模式创建Activity
- hdu1531 King--单源最短路径&差分约束
- 集合操作出现的ConcurrentModificationException(源码分析)