时间类的运算符
2015-06-25 22:07
225 查看
问题及代码:
运行结果:
/*。 *Copyright(c)2014,烟台大学计算机学院 *All right reserved, *文件名:test.cpp *作者:liu_feng_zi_ *完成日期:2015年6月25日 *版本号:v1.0 *问题描述:C++时间类的运算符重载 *输入描述: *程序输出: */ #include <iostream> using namespace std; class Time { public: Time():hour(0),minute(0),second(0) {} Time(int h,int m,int s) { hour=(h>=24||h<0)?0:h; minute=(m>=60||m<0)?0:m; second=(s>=60||s<0)?0:s; } Time operator+(Time &); Time operator+(int &); friend Time operator+(int,Time &); friend ostream& operator << (ostream& output, Time & c); private: int hour; int minute; int second; }; Time Time::operator+(Time &t) { Time tt; tt.second=second+t.second; tt.minute=minute+t.minute; tt.hour=hour+t.hour; if(tt.second>=60) { tt.second-=60; tt.minute++; } if(tt.minute>=60) { tt.minute-=60; tt.hour++; } if(tt.hour>=24) tt.hour-=24; return tt; } Time Time::operator+(int &s) { Time tt; int n; tt.second=second+s; tt.minute=minute; tt.hour=hour; if(tt.second>=60) { n=tt.second/60; tt.second%=60; tt.minute+=n; } if(tt.minute>=60) { n=tt.minute/60; tt.minute%=60; tt.hour+=n; } if(tt.hour>=24) tt.hour%=24; return tt; } Time operator+(int s,Time &t) { Time tt; int n; tt.second=s+t.second; tt.minute=t.minute; tt.hour=t.hour; if(tt.second>=60) { n=tt.second/60; tt.second%=60; tt.minute+=n; } if(tt.minute>=60) { n=tt.minute/60; tt.minute%=60; tt.hour+=n; } if(tt.hour>=24) tt.hour%=24; return tt; } ostream& operator << (ostream& output, Time & c) { output<<c.hour<<":"<<c.minute<<":"<<c.second<<endl; return output; } int main() { //测试Time类对象加Time类对象 int hour,minute,second; cin>>hour>>minute>>second; Time t1(hour,minute,second); cin>>hour>>minute>>second; Time t2(hour,minute,second); Time t3=t1+t2; cout<<"t1+t2="; cout<<t3; //测试时间对象加整数 int i; cin>>hour>>minute>>second; cin>>i; t3=Time(hour,minute,second)+i; cout<<"t1+i="; cout<<t3; //测试整数加时间对象 cin>>i; cin>>hour>>minute>>second; t1=Time(hour,minute,second); t3=i+t1; cout<<"i+t1="; cout<<t3; return 0; }
运行结果:
相关文章推荐
- 手斧Linux – 从LFS到Funtoo (54)
- codeforces #309 553B B. Kyoya and Permutation(斐波那契数)
- 程序员果真有前端后端客户端吗
- 牛腩新闻系统(五)——一些小技巧
- ProgressDialog show()的时候 12-18 11:05:55.356: E/AndroidRuntime(461): android.view.WindowManager$Ba
- iOS开发面试题(更新中...)
- 黑马程序员-IOS学习笔记(二)常用关键字和方法
- 库和框架的区别
- 手斧Linux – 从LFS到Funtoo (53)
- 写的手机安全卫士程序, 当服务器没有开启.程序执行到if(conn.getResponseCode() == 200)即conn.getResponseCode()时没反应了.
- 虚拟机中Centos7搭建本地仓库
- 分页插件之--kaminari
- . Refer to Hibernate 3.6 Migration Guide!
- BNUOJ 27935 我爱背单词 (加强版) (FFT)
- 笔记
- 从首份“电商职场报告”能看出什么
- 轻量级和企业级的区别
- IOS 第三方管理库管理 CocoaPods
- 虚基类——动物
- 代码中获取String.xml中的字符串?