第1周项目5-时间类(2)
来源:互联网 发布:像素画软件 编辑:程序博客网 时间:2024/05/17 23:36
/**copyright (c)2014,烟台大学计算机学院*All rights reserved*文件名称:project.cpp*作者:孙春红*完成日期:2015年3月18日*版本号:v1.0**问题描述:阅读运行程序后,按要求扩充类的功能。(1)请在原类基础上,在类内增加下列成员函数(将是内置成员函数)add_a_sec() //增加1秒钟add_a_minute() //增加1分钟add_an_hour() //增加1小时在main()数中,调用新增加的成员函数,以测试扩充后的功能。(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(); 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<<"请输入时间(格式hh:mmvoid add_seconds(格式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;}inline void Time::add_a_sec(){ ++sec; if (sec>59) add_a_minute();}inline void Time::add_a_minute(){ ++minute; if (minute>59) add_an_hour();}inline void Time::add_an_hour(){ ++hour; if (hour>23) { hour=0; }}void Time::add_seconds(int n){ sec+=n; if (sec>59) { sec%=60; add_minutes(sec/60); }}void Time::add_minutes(int n){ minute+=n; if (minute>59) { minute%=60; add_hours(minute/60); }}void Time::add_hours(int n){ hour+=n; if (hour>23) { hour%=24; }}int main( ){ Time t1; t1.set_time( ); t1.show_time( ); t1.add_a_sec(); cout<<"增加一秒后:"<<endl; t1.show_time(); t1.add_a_minute(); cout<<"增加一分钟后:"<<endl; t1.show_time(); t1.add_an_hour(); cout<<"增加一小时后:"<<endl; t1.show_time(); t1.add_seconds(50); cout<<"增加n秒钟后:"<<endl; t1.show_time(); t1.add_minutes(120); cout<<"增加n分钟后:" <<endl; t1.show_time(); t1.add_hours(19); cout<<"增加n小时后:"<<endl; t1.show_time(); return 0;}
运行结果:
知识点总结:
运用面向对象的程序设计,运用类和对象在原有的程序上扩充其功能。
0 0
- 第1周项目5-时间类(2)
- 第5周-项目3-时间类(2)
- 第5周项目3—时间类(2)
- 第5周项目3-时间类(2)
- 第5周项目3(2)时间类
- 第5周项目3-时间类 (2)
- 第5周项目3:时间类(1)
- 第5周项目3 时间类(1)
- 第5周项目3-时间类(1)
- 第5周项目3(1)时间类
- 第2周 项目3—时间类(1)
- 第2周项目3-时间类(1)
- 第2周项目初见对象--时间类(1)
- 第5周项目3-时间类
- 第5周项目3-时间类
- 第5周项目3-时间类
- 第2周项目3时间类
- 第2周项目3时间类
- Windows和Linux下的字节对齐
- MATLAB神经网络编程(二)——线性神经网络
- html的编写
- [C++杂记] C++如何管理内存区
- 手机/移动前端开发需要注意的20个要点
- 第1周项目5-时间类(2)
- C++中的string 类 简单介绍
- 竞态编程相关接口
- listview当选中某一个item时设置背景色其他的不变
- Linux下用ICMP协议,进行路由多端口尝试探测
- 第二周 项目二 长方柱类
- Linux下的 fork 函数
- 从最简单的实例学习ARM指令集
- 项目4-图书馆的书