第九周实验报告1
来源:互联网 发布:新型网络搜索引擎 编辑:程序博客网 时间:2024/04/30 08:21
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称: class time
* 作 者: 于昊
* 完成日期: 2012 年 04月 16 日
* 版 本 号: 1.0
* 对任务及求解方法的描述部分
* 输入描述:
* 问题描述:
* 程序输出:
* 问题分析:
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称: class time
* 作 者: 于昊
* 完成日期: 2012 年 04月 16 日
* 版 本 号: 1.0
* 对任务及求解方法的描述部分
* 输入描述:
* 问题描述:
* 程序输出:
* 问题分析:
* 算法设计:…
#include <iostream> using namespace std; class CTime { private: unsigned short int hour; // 时 unsigned short int minute; // 分 unsigned short int second; // 秒 public: CTime(int h = 0, int m = 0, int s = 0):hour(h), minute(m), second(s){ } void setTime(int h, int m, int s); void display(); //比较运算符(二目)的重载 bool operator > (CTime &t); bool operator < (CTime &t); bool operator >= (CTime &t); bool operator <= (CTime &t); bool operator == (CTime &t); bool operator != (CTime &t); //二目运算符的重载 CTime operator + (CTime &c);//返回c所规定的时、分、秒后的时间,例t1(8,20,25),t2(11,20,50),t1+t2为:41:15 CTime operator - (CTime &c);//对照+理解 CTime operator + (int s);//返回s秒后的时间 CTime operator - (int s);//返回s秒前的时间 //一目运算符的重载 CTime operator ++ (int);//后置++,下一秒 CTime operator ++ ();//前置++,下一秒 CTime operator -- (int);//后置--,前一秒 CTime operator -- ();//前置--,前一秒 //赋值运算符的重载 CTime operator += (CTime &c); CTime operator -= (CTime &c); CTime operator += (int s);//返回s秒后的时间 CTime operator -= (int s);//返回s秒前的时间//重载流插入运算符“>>”friend istream& operator >> ( istream& , CTime&);//重载流输出运算符"<<"friend ostream& operator << ( ostream& , CTime&);}; //下面实现所有的运算符重载代码。 //为简化编程,请注意通过调用已有函数,利用好各函数之间的关系 istream& operator >> ( istream& input,CTime &c ){input>>c.hour >>c.minute >>c.second ;return input;}ostream& operator << ( ostream& output,CTime &c ){output<<c.hour <<c.minute <<c.second ;return output;}void CTime::setTime(int h, int m, int s) { hour = h; minute = m; second = s; } void CTime::display() { cout << hour << ":" << minute << ":" << second << endl; } bool CTime::operator > (CTime &t)//转换为秒,在进行比较。 { if(hour * 3600 + minute * 60 + second > t.hour * 3600 + t.minute * 60 + t.second) { return true; } else { return false; } } bool CTime::operator < (CTime &t) { if(hour * 3600 + minute * 60 + second < t.hour * 3600 + t.minute * 60 + t.second) { return true; } else { return false; } } bool CTime::operator >= (CTime &t) { if(hour * 3600 + minute * 60 + second >= t.hour * 3600 + t.minute * 60 + t.second) { return true; } else { return false; } } bool CTime::operator <= (CTime &t) { if(hour * 3600 + minute * 60 + second <= t.hour * 3600 + t.minute * 60 + t.second) { return true; } else { return false; } } bool CTime::operator == (CTime &t)//小时,分钟,秒数都相同 { if(hour == t.hour && minute == t.minute && second == t.second) { return true; } else { return false; } } bool CTime::operator != (CTime &t)//小时,分钟,秒数有一个不同即可 { if(hour != t.hour || minute != t.minute || second != t.second) { return true; } else { return false; } } CTime CTime::operator + (CTime &c) { CTime c2; int time; //现将两个时间转化为秒,再依次求出小时,分,秒即可。 time = (hour * 3600 + minute * 60 + second) + (c.hour * 3600 + c.minute * 60 + c.second); c2.hour = time / 3600; time = time % 3600; c2.minute = time / 60; time = time % 60; c2.second = time; return c2; } CTime CTime::operator - (CTime &c) { CTime c2; int time; //现将两个时间转化为秒,再依次求出小时,分,秒即可。 time = (hour * 3600 + minute * 60 + second) - (c.hour * 3600 + c.minute * 60 + c.second); c2.hour = time / 3600; time = time % 3600; c2.minute = time / 60; time = time % 60; c2.second = time; return c2; } CTime CTime::operator + (int s) { int time; time = hour * 3600 + minute * 60 + second + s; hour = time / 3600; time = time % 3600; minute = time / 60; time = time % 60; second = time; return (*this); } CTime CTime::operator - (int s) { int time; time = hour * 3600 + minute * 60 + second; time = time - s; hour = time / 3600; time = time % 3600; minute = time / 60; time = time % 60; second = time; return (*this); } CTime CTime::operator ++ (int) //后置 { CTime temp = (*this); int time; time = hour * 3600 + minute * 60 + second + 1; hour = time / 3600; time = time % 3600; minute = time / 60; time = time % 60; second = time; return temp;//返回自加前的对象 } CTime CTime::operator ++ ()//前置 { int time; time = hour * 3600 + minute * 60 + second +1; hour = time / 3600; time = time % 3600; minute = time / 60; time = time % 60; second = time; return (*this);//返回自加后的当前对象 } CTime CTime::operator -- (int)//后置 { CTime temp = (*this); int time; time = hour * 3600 + minute * 60 + second - 1; hour = time / 3600; time = time % 3600; minute = time / 60; time = time % 60; second = time; return temp;//返回自减前的对象 } CTime CTime::operator -- ()//前置 { int time; time = hour * 3600 + minute * 60 + second - 1; hour = time / 3600; time = time % 3600; minute = time / 60; time = time % 60; second = time; return (*this);//返回自减后的当前对象 } CTime CTime::operator += (CTime &c) { CTime c2; c2 = (*this) + c;//调用重载运算符,第一个+号 return c2; } CTime CTime::operator -= (CTime &c) { CTime c2; c2 = (*this) - c;//调用重载运算符,第一个-号 return c2; } CTime CTime::operator += (int s) { CTime c2; c2 = (*this) + s;//调用重载运算符,第2个+号 return c2; } CTime CTime::operator -= (int s) { CTime c2; c2 = (*this) - s;//调用重载运算符,第2个-号 return c2; } void main() { CTime t1(8,20,25), t2(11,20,50), t; cout << "t1为:"; t1.display(); cout << "t2为:"; t2.display(); cout << "下面比较两个时间大小:\n" ; if (t1 > t2) cout << "t1 > t2" << endl; if (t1 < t2) cout << "t1 < t2" <<endl; if (t1 == t2) cout <<"t1 = t2" <<endl; if (t1 != t2) cout << "t1 ≠ t2" << endl; if (t1 >= t2) cout << "t1 ≥ t2" << endl; if (t1 <= t2) cout << "t1 ≤ t2" << endl; cout<<endl; t = t1 + t2; cout << "t1 + t2 ="; t.display(); t = t2 - t1; cout << "t2 - t1 ="; t.display(); t = t1; t = t + 40; cout << "t1 + 40s ="; t.display(); t = t2; t = t - 10; cout << "t2 - 10s ="; t.display(); t = t1++; cout << "t1++ ="; t.display(); t = --t2; cout << "--t2 ="; t.display(); t = t1; t += t2; cout << "t1 += t2 , t1 = "; t.display(); t = t2; t -= 5; cout << "t2 -= 5, t2 = "; t.display(); system("pause"); }
- 第九周实验报告1
- 第九周实验报告1
- 第九周实验报告1
- 第九周实验报告1
- 第九周实验报告1
- 第九周实验报告1
- 第九周实验报告1
- 第九周实验报告1
- 第九周实验报告1
- 第九周实验报告
- 第九周实验报告
- 第九周实验报告任务1
- 《第九周实验报告任务1》
- 第九周实验报告(1)
- 第九周实验报告(1)
- 第九周实验报告(1)
- 第九周实验报告(任务1)
- C++ 第九周实验报告
- 第九周实验报告2
- VPN
- 宏定义之“#”
- 4秒100万条数据导入SQL数据库
- [php笔记]session
- 第九周实验报告1
- cglib动态代理介绍
- jquery实现弹出层的动画效果,相对定位
- 数据库中临时表、表变量和CTE使用优劣对比
- 二叉树的遍历
- jsp到数据库乱码问题
- 25 个让 Java 程序员更高效的 Eclipse 插件
- .NET 正则表达式
- 防止jQuery ajax Load使用缓存的方法