今天老师布置了一道作业题希望大家能帮帮忙!谢了!

时间:2008-06-12 10:13:26   来源:论坛整理  作者:  编辑:chinaitzhe
1、设计一个时间类——CTime,它有三个私有属性:m_Hour,m_Min,m_Sec,分别是时,分,秒。还有一个构造函数。
2、重载 运算符以实现增加一秒的功能。(前缀后缀皆可),重载>>和 < <运算符以实现时间的输入和输出功能。
3、编写主函数对CTime进行测试。
网友回复:呼唤过儿
网友回复:加油,应该不难!
网友回复:
C/C code





Code highlighting produced by Actipro CodeHighlighter (freeware)

http://www.CodeHighlighter.com/





#include<iostream.h> 

#include<string.h> 

#include<math.h> 

class Time 

{ 

public: 

Time():Hour(0),Minute(0),Second(0){} 

Time(int h,int m,int s):Hour(h),Minute(m),Second(s){} 

Time (Time&t):Hour(t.Hour),Minute(t.Minute),Second(t.Second){} 

Time& Add(Time&); 

Time& Sub(Time&); 

friend Time& operator ( Time&, Time&); 

friend Time& operator - (Time&, Time&); 

void operator   ();//自增1秒(按两种结合形式) 

void operator -- ();//自减1秒(按两种结合形式) 

void operator   (int);//自增1秒(按两种结合形式) 

void operator -- (int);//自减1秒(按两种结合形式) 

void Display() 

{cout<<Hour<<":"<<Minute<<":"<<Second<<endl;} 

private: 

int Hour,Minute,Second; 

}; 



Time& operator ( Time&t1, Time&t2) 

{ 

int temp=t1.Hour*3600 t1.Minute*60 t1.Second (t2.Hour*3600 t2.Minute*60 t2.Second); 

t1.Hour=temp/3600; 

t1.Minute=(temp600)/60; 

t1.Second=temp600`; 

return t1; 

} 

Time& operator-( Time&t1, Time&t2) 

{ 



int temp=t1.Hour*3600 t1.Minute*60 t1.Second-(t2.Hour*3600 t2.Minute*60 t2.Second); 

t1.Hour=temp/3600; 

t1.Minute=(temp600)/60; 

t1.Second=temp600`; 

return t1; 

} 

Time& Time::Add(Time&t1) 

{ 

int temp=t1.Hour*3600 t1.Minute*60 t1.Second (Hour*3600 Minute*60 Second); 

Hour=temp/3600; 

Minute=(temp600)/60; 

Second=temp600`; 

return *this; 

} 

Time& Time::Sub(Time&t1) 

{ 



int temp=(Hour*3600 Minute*60 Second)-(t1.Hour*3600 t1.Minute*60 t1.Second); 

Hour=temp/3600; 

Minute=(temp600)/60; 

Second=temp600`; 

return *this; 

} 

void Time::operator   (){Second  ;} 

void Time::operator --(){Second--;} 

void Time::operator   (int){  Second;} 

void Time::operator --(int){--Second;} 





void main() 

{ 

Time t1(1,5,6),t2(5,59,59); 

t1=t1 t2; //测试  

t1.Display(); 

t2.Add(t1); //测试Add 

t2.Display(); 

t2  ; //测试   

t2.Display(); 

t2--; //测试-- 

t2.Display(); 

t2.Sub(t2); //测试Sub 

t2.Display(); 

}




网友回复:赞k2eats!

引用 3 楼 k2eats 的回复:
C/C code
#include <iostream.h>
#include <string.h>
#include <math.h>
class Time
{
public:
Time():Hour(0),Minute(0),Second(0){}
Time(int h,int m,int s):Hour(h),Minute(m),Second(s){}
Time (Time&t):Hour(t.Hour),Minute(t.Minute),Second(t.Second){}
Time& Add(Time&);
Time& Sub(Time&);
friend Time& operator ( Time&, Time&);
friend Time& operator - (Time&, Time&);
void operator…

网友回复:/*
code make by www.ecjtu.org
*/
#include <iostream>
using namespace std;
class CTime
{
public:
CTime(){}
CTime(int hour, int min, int sec) : m_Hour(hour), m_Min(min), m_Sec(sec) {}
CTime& operator ();
CTime operator (int nFlag);
friend istream& operator >> (istream& is, CTime& obj);
friend ostream& operator < < (ostream& os, const CTime& obj);
void countTime(void);//用于进位计时
protected:
private:
int m_Hour;
int m_Min;
int m_Sec;
};

void CTime::countTime(void)
{
if (m_Sec > 60)
{
m_Sec = 1;
m_Min;
}
if (m_Min > 60)
{
m_Min = 1;
m_Hour;
}
if (m_Hour > 24)
{
m_Hour = 0;
}
}
CTime& CTime::operator ()
{
this->m_Sec ;
countTime();
return *this;
}

CTime CTime::operator (int nFlag)
{

CTime temp(*this);
this->m_Sec ;
countTime();
return temp;
}

istream& operator >> (istream& is, CTime& obj)
{
is >> obj.m_Hour >> obj.m_Min >> obj.m_Sec;
return is;
}

ostream& operator < < (ostream& os, const CTime& obj)
{
os < < obj.m_Hour < < "-" < < obj.m_Min < < "-" < < obj.m_Sec;
return os;
}

int main()
{
CTime obj;
cin >> obj;
obj ;
cout < < obj;
}
网友回复:靠,都是一群色狼,
网友回复:你太有才了!
绝对的色狼!!
引用 6 楼 MagiSu 的回复:
靠,都是一群色狼,
关键字:今天,老师,布置,一道,业题,

文章评论

共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面