设计一个时间类Time, 包括时,分,秒等私有数据成员。要求实现时间的基本运算,一个时间加上另一个时间。。
2006-11-30 22:24
1326 查看
#include <iostream.h>
class Time
{
int hour; //时数
int minute; //分数
int second; //秒数
public:
//Time() {}; //构造函数
Time(int h=0,int m=0,int s=0) //重载构造函数
{
hour=h;minute=m;second=s;
}
void sethour(int h) { hour=h;}
void setminute(int m) {minute=m;}
void setsecond(int s) {second=s;}
int gethour() {return hour;}
int getminute() {return minute;}
int getsecond() {return second;}
Time &operator+(Time);
Time &operator-(Time);
void disp()
{
cout << hour << ":" << minute << ":" << second << endl;
}
};
Time &Time::operator +(Time t)
{
int carry,hh,mm,ss;
ss=getsecond()+t.getsecond();
if(ss>60)
{
ss-=60;
carry=1; //秒数大于69,则需进一位
}
else
carry=0;
mm=getminute()+t.getminute()+carry;
if(mm>60)
{
mm-=60;
carry=1; //分数大于69,则需进一位
}
else carry=0;
hh=gethour()+t.gethour()+carry;
if(hh>24)
hh-=24;
//static Time result(hh,mm,ss); //构造一个静态对象result
return *this;//result;
}
Time &Time::operator -(Time t)
{
int borrow,hh,mm,ss;
ss=getsecond()-t.getsecond();
if(ss<0)
{
ss+=60;
borrow=1; //秒数小于0,则需要从分数借一位
}
else
borrow=1;
mm=getminute()-t.getsecond()-borrow;
if(mm<0)
{
mm+=60;
borrow=1; //秒数小于0,则需要从分数借一位
}
else
borrow=0;
hh=gethour()-t.getsecond()-borrow;
if(hh<0)
{
hh+=24;
//static Time result(hh,mm,ss); //构造一个静态对象result
return *this;
}
}
void main()
{
Time now(2,24,39);
Time start(0,17,55);
Time t1=now-start,t2=now+start;
cout << "时间1:";now.disp();
cout << "时间2:";start.disp();
cout << "相差:";t1.disp();
cout << "相加:";t2.disp();
}
class Time
{
int hour; //时数
int minute; //分数
int second; //秒数
public:
//Time() {}; //构造函数
Time(int h=0,int m=0,int s=0) //重载构造函数
{
hour=h;minute=m;second=s;
}
void sethour(int h) { hour=h;}
void setminute(int m) {minute=m;}
void setsecond(int s) {second=s;}
int gethour() {return hour;}
int getminute() {return minute;}
int getsecond() {return second;}
Time &operator+(Time);
Time &operator-(Time);
void disp()
{
cout << hour << ":" << minute << ":" << second << endl;
}
};
Time &Time::operator +(Time t)
{
int carry,hh,mm,ss;
ss=getsecond()+t.getsecond();
if(ss>60)
{
ss-=60;
carry=1; //秒数大于69,则需进一位
}
else
carry=0;
mm=getminute()+t.getminute()+carry;
if(mm>60)
{
mm-=60;
carry=1; //分数大于69,则需进一位
}
else carry=0;
hh=gethour()+t.gethour()+carry;
if(hh>24)
hh-=24;
//static Time result(hh,mm,ss); //构造一个静态对象result
return *this;//result;
}
Time &Time::operator -(Time t)
{
int borrow,hh,mm,ss;
ss=getsecond()-t.getsecond();
if(ss<0)
{
ss+=60;
borrow=1; //秒数小于0,则需要从分数借一位
}
else
borrow=1;
mm=getminute()-t.getsecond()-borrow;
if(mm<0)
{
mm+=60;
borrow=1; //秒数小于0,则需要从分数借一位
}
else
borrow=0;
hh=gethour()-t.getsecond()-borrow;
if(hh<0)
{
hh+=24;
//static Time result(hh,mm,ss); //构造一个静态对象result
return *this;
}
}
void main()
{
Time now(2,24,39);
Time start(0,17,55);
Time t1=now-start,t2=now+start;
cout << "时间1:";now.disp();
cout << "时间2:";start.disp();
cout << "相差:";t1.disp();
cout << "相加:";t2.disp();
}
相关文章推荐
- 设计一个日期类Date,包括年、月、日等私有成员。要求实现日期的基本运算,例如某日期加上天数或减去天数
- 设计一个时间类Time,要求: (1)包含时(hour)、分(minute)和秒(second)私有数据成员。 (2)包含构造函数,重载关于一时间加上另一时间的加法运算符+、重载关于一时间减去另一时间
- 设计一个日期类Date,,要求: (1)包含年(year)、月(month)和日(day)私有数据成员。 (2)包含构造函数,重载关于一日期加上天数的加法运算符+、重载关于一日期减去天数的减加运算符-
- 设计一个日期类Date,,要求: (1)包含年(year)、月(month)和日(day)私有数据成员。 (2)包含构造函数,重载关于一日期加上天数的加法运算符+、重载关于一日期减去天数的减加运算符-
- 需要求3个长方体的体积,写一个基于对象的程序,数据成员包括 length width height 要求用成员函数实现以下功能
- 设计一个学生类,其中包含学号、姓名、成绩等数据成员,创建学生对象并且倒入到文件file.txt,然后由文件读取到另一个学生对象并输出,试编程实现。
- 声明一个时间类,时间类中有3个私有数据成员(Hour,Minute,Second)和两个公有成员函数(SetTime和PrintTime)。
- 设计一个计算器类Claculator,它只有一个用于计数的数据成员count。该计算器的有效计数范围是0~65535,实现计数器的前自增、后自增、前自减、后自减、两个计算器相加减运算
- 【一个批量计算的调度系统的设计与实现】如果需要对成千上万的网络抓包数据文件在规定的时间内进行解析,应该怎么做?
- 11周1--2以Point为基类,派生出一个Circle(圆)类,增加数据成员r(半径),以及求面积的成员函数area,实现其他需要的成员函数,设计main函数完成测试;
- 定义一个描述学生(Student)基本情况的类,数据成员包括姓名(name)、学号(num)、数学成绩(mathScore)、英语成绩(englishScore)、人数(count)、数学总成绩(ma
- [4.21]编写一个程序,已有若干个学生的数据,包括学号、姓名、成绩、要求输出这些学生的数据并计算出学生人数和平均成绩(要求将学生人数和总成绩用静态数据成员表示)。
- 再以Circle类为直接基类,派生出一个Cylinder(圆柱体)类,再增加数据成员h(高),,以及求圆柱表面积的成员函数area和求圆柱体积的成员函数volume,实现需要的成员函数,并设计main
- 定义一个描述学生(Student)基本情况的类,数据成员包括姓名(name)、学号(num)、数学成绩(mathScore)、英语成绩(englishScore)、人数(count)...
- C++中提供了多种基本的数据类型。实际上,这些远不能满足我们的需求,如复数(第10章的例子大多是处理虚数的),再如分数。本任务将设计一个简单的分数类,完成对分数的几个运算。一则巩固基于对象编程的方法,
- 定义一个矩形类(Rectangle),私有数据成员为矩形的长度( len)和宽度(wid),缺省构造函数置len和wid为0,有参构造函数置len和wid为对应形参的值,另外还包括求矩形周长、面积
- 定义一个描述学生(Student)基本情况的类,数据成员包括姓名(name)、学号(num)、数学成绩(mathScore)、英语成绩(englishScore)、人数(count)、数学总成绩(ma
- 编写一个矩形类,私有数据成员为矩形的长( len)和宽(wid),wid设置为0,有参构造函数设置和的值,另外,类还包括矩形的周长、求面积、取矩形的长度、取矩形的长度、取矩形的宽度、修改矩形的长度和宽度为对应的形参值等公用方法。
- 建立一个Point类,包含数据成员x,y,实现需要的成员函数,并设计main函数完成测试
- [5.19]设计一个虚基类base,包含姓名和年龄私有数据成员以及相关的成员函数;由它派生出领导类leader,包含职务和部门私有数据成员以及相关的成员函数;再由base派生出工程师类engieer,