C++走向远洋——28(项目三,时间类,2)
来源:互联网 发布:湖南卫视网络在线直播 编辑:程序博客网 时间:2024/04/30 09:19
*/ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:time.cpp * 作者:常轩 * 微信公众号:Worldhello * 完成日期:2016年3月30日 * 版本号:V1.1 * 问题描述:时间类 * 程序输入:12:12:12 * 程序输出:见运行结果 */#include<iostream>using namespace std;class Time { public: void set_time(); void show_time(); void add_a_sec(int n1); void add_a_minute(int n2); void add_a_hour(int n3); private: int sec; int minute; int hour; bool is_time(int,int,int); };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>24||m<0||m>60||s<0||s>60) return false; return true;}inline void Time::add_a_sec(int n1){ if(n1+sec>59) { sec=(n1+sec)%60; minute=(n1+sec)/60+minute; if(minute>59) { hour++; minute=0; } } else { sec=sec+n1; }}inline void Time::add_a_minute(int n2){ if(n2+minute>59) { minute=(n2+minute)%60; hour=(n2+minute)/60+hour; if(hour>23) { hour=hour-24; } } else { minute=minute+n2; }}inline void Time::add_a_hour(int n3){ if(n3+hour>23) { hour=(n3+hour)%24; } else { hour=hour+n3; }}int main() { Time t1; t1.set_time(); t1.add_a_sec(1); t1.add_a_minute(11); t1.add_a_hour(33); t1.show_time(); return 0; }
运行结果:
心得:
应注意超过六十秒,六十分钟,二十四时的情况
0 0
- C++走向远洋——28(项目三,时间类,2)
- C++走向远洋——27(项目三,时间类)
- C++走向远洋——59(项目三、图形面积、抽象类)
- C++走向远洋——64(项目三、数组类模板)
- C++走向远洋——54(项目一2、分数类的重载、取倒数)
- C++走向远洋——57(项目二2、动物这样叫、抽象类)
- C++走向远洋——63(项目二2、两个成员的类模板)
- C++走向远洋——37(工资类,2)
- C++走向远洋——35(友元,时间)
- C++走向远洋——67(项目二、洗牌)
- C++走向远洋——60(项目四、立体类族共有的抽象类)
- C++走向远洋——20(项目一,三角形,类)
- C++走向远洋——21(项目一,三角形,类)
- C++走向远洋——22(项目一,三角形,类)
- C++走向远洋——23(项目一,三角形,类)
- C++走向远洋——25(项目二,游戏类)
- C++走向远洋——(项目二、存储班长信息的学生类、派生)
- C++走向远洋——53(项目一1、分数类的重载、加减乘除、比较)
- YEN算法和删除算法分别实现K可靠最短路径算法
- android线程间通信机制loop
- 观察者模式-拿站放后门,你上线我就知道!
- 用c++编写闰年的判断基础程序
- eclipse或者AS链接手机真机之后,logcat里面日志信息乱跳
- C++走向远洋——28(项目三,时间类,2)
- Android开发模式
- Javascript快速入门
- Android studio推荐插件以及升级后插件丢失问题解决
- LFM推荐的例子和代码
- 6. ZigZag Conversion【E】【10】【leetcode】
- POJ 1679The Unique MST 次小生成树
- LeetCode no. 35
- PHP之创建图像验证码