第5周项目2—时间类
2016-05-24 22:07
176 查看
/* 02.*烟台大学计算机学院 03.*文件名称:xiangmu2.cpp 04.*作 者:李亚辉 05.*完成日期:2016年5月24日 06.*版 本 号:vc++6.0 07.* 08.*问题描述:编写并调用成员函数,分别使时间进行增加 09.*输入描述: 现在的时间(时、分、秒) 10.*程序输出:经过调用成员函数后的时间 */ #include<iostream> using namespace std; class Time { public: void set_time(); void show_time(); inline void add_a_sec();//增加1秒 inline void add_a_minute();//增加一分钟 inline void add_an_hour();//增加一小时 void add_seconds(int);//增加n秒 void add_minutes(int );//增加n分钟 void add_hours(int );//增加n小时 private: bool is_time(int ,int ,int );//私有的成员函数 int hour; int minute; int sec; }; void Time::set_time() { char c1,c2; cout<<"请输入时间"; 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()//增加1秒钟 { ++sec;//sec+1后在调用 if(sec>59)//是否超过合理范围 { sec=0;//因为增加一秒钟,使分钟发生变化 add_a_minute();//增加一分钟是否会引起小时的变化,在该函数中解决 } } inline void Time:: add_a_minute()//增加一分钟 { ++minute; if(minute>59) { minute=0; add_an_hour(); } } inline void Time::add_an_hour()//增加一小时 { ++hour; if(hour>23) hour=0;//到第2天了 } void Time::add_seconds(int n)//增加n秒 { sec+=n;//直接加上增加的秒数 if(sec>59) { add_minutes(sec/60); sec%=60; } } void Time::add_minutes(int n)//增加n分钟 { minute+=n; if(minute>59) { add_hours(minute/60); minute%=60; } } void Time::add_hours(int n)//增加n小时 { hour+=n; if(hour>23) hour%=24;//此程序不涉及日期 } int main() { Time t1; Time &t2=t1; t1.set_time(); cout<<"现在的时间是:"; t2.show_time(); t1.add_a_sec();//增加1秒钟 cout<<"增加1秒钟后:"; t1.show_time(); t1.add_a_minute();//增加1分钟 cout<<"增加1小时后:"; t2.show_time(); t1.add_an_hour();//增加1小时 cout<<"增加1小时后:"; t1.show_time(); t1.add_an_hour();//增加40秒钟 cout<<"增加40秒后:"; t1.show_time(); t1.add_minutes(127);//增加127分钟 cout<<"增加127分钟后:"; t1.show_time(); t1.add_hours(8);//增加8小时 cout<<"增加8小时后:"; t1.show_time(); return 0; } /*学习心得: 我认为这个项目,最难的是分辨增加一秒或一分后,是否会引起时间和分钟的变化,这个过程在编写时需要自己条理清晰,否则很难做出正确的编写, 同时也说明,变成最重要的是思维模式,是算法,不是他的结构,每一种语言都有他特有的结构模式,然而算法是永恒不变的,总算明白,为什么老师 经常说算法是程序的灵魂,算法确实是一个程序的核心思维,不论这个程序是使用什么语言编写的,他的核心思维就在那里,算法就在那里,比的就是 谁的算法更加精妙,更能提高效率。 */
相关文章推荐
- 冲刺第二阶段第一天
- C++ 输出调试的一些技巧
- PHP MysqlI操作数据库(转)
- 新的个人博客~
- LeetCode-136&137&260.Single Number
- c++实验6
- hdu_4529_郑厂长系列故事——N骑士问题(状压DP)
- hdu_4529_郑厂长系列故事——N骑士问题(状压DP)
- Spark Streaming源码解读之Driver容错安全性
- Oracle数据库——索引、视图、序列和同义词的创建
- 详解JavaEE使用过滤器实现登录(用户自动登录 安全登录 取消自动登录黑用户禁止登录)
- 在C++中使用类模板帮助用户创建类实例
- 230. Kth Smallest Element in a BST
- git服务器搭建
- 前端面试总结
- 归并排序(非递归)
- vertica-dbvis实现failover和负载均衡
- ria service 单元测试
- linux 快速安装mysql
- 基于opencv的身份证识别系统