早教吧作业答案频道 -->其他-->
编写Date类,其中包含年月日,使用运算符重载,使之支持前置++和后置++。
题目详情
编写Date类,其中包含年月日,使用运算符重载,使之支持前置++和后置++。
▼优质解答
答案和解析
我写了一个时间类的加减运算符重载,看看吧,希望对你有帮助。
#include
using namespace std;
class Time{
private:
int hour;
int minute;
int second;
public:
Time()
{}
Time(int m_hour,int m_minute,int m_second){
hour=m_hour;
minute=m_minute;
second=m_second;
}
//构造函数 的重载
void Time1(int m_hour,int m_minute,int m_second){
hour=m_hour;
minute=m_minute;
second=m_second;
}
Time operator+(const Time &t1) const;
Time operator-(const Time &t1) const;
void ShowTime();
};
//加法的重载
Time Time::operator +(const Time &t1) const{
Time t4;
t4.second=second+t1.second;
t4.minute=minute+t1.minute;
t4.hour=hour+t1.hour;
if(t4.second>59){
t4.second=t4.second-60;
t4.minute=t4.minute+1;
}
if(t4.minute>59){
t4.minute=t4.minute-60;
t4.hour=t4.hour+1;
}
if(t4.hour>23){
t4.hour=t4.hour-23;
}
return t4;
}
//减法的重载
Time Time::operator -(const Time &t1) const{
Time t4;
t4.second=second-t1.second;
t4.minute=minute-t1.minute;
t4.hour=hour-t1.hour;
if(t4.second<0){
t4.second=t4.second+60;
t4.minute=t4.minute-1;
}
if(t4.minute<0){
t4.minute=t4.minute+60;
t4.hour=t4.hour-1;
}
if(t4.hour<0){
t4.hour=t4.hour+23;
}
return t4;
}
void Time::ShowTime(){
cout< }
void main()
{
Time t1,t2,t3;
int h1,m1,s1;
int h2,m2,s2;
bool operation;
bool ifexit=false;
while(!ifexit){
cout< cin>>h1;
cout< cin>>m1;
cout< cin>>s1;
t1.Time1(h1,m1,s1);
cout< t1.ShowTime();
cout< cin>>h2;
cout< cin>>m2;
cout< cin>>s2;
t2.Time1(h2,m2,s2);
cout< t2.ShowTime();
cout< cout< cout< cout< cout< cin>>operation;
if (operation){
t3=t1+t2;
cout< t3.ShowTime();
}
else{
t3=t1-t2;
cout< t3.ShowTime();
}
cout< cout< cout< cout< cout< cin>>ifexit;
}
}
#include
using namespace std;
class Time{
private:
int hour;
int minute;
int second;
public:
Time()
{}
Time(int m_hour,int m_minute,int m_second){
hour=m_hour;
minute=m_minute;
second=m_second;
}
//构造函数 的重载
void Time1(int m_hour,int m_minute,int m_second){
hour=m_hour;
minute=m_minute;
second=m_second;
}
Time operator+(const Time &t1) const;
Time operator-(const Time &t1) const;
void ShowTime();
};
//加法的重载
Time Time::operator +(const Time &t1) const{
Time t4;
t4.second=second+t1.second;
t4.minute=minute+t1.minute;
t4.hour=hour+t1.hour;
if(t4.second>59){
t4.second=t4.second-60;
t4.minute=t4.minute+1;
}
if(t4.minute>59){
t4.minute=t4.minute-60;
t4.hour=t4.hour+1;
}
if(t4.hour>23){
t4.hour=t4.hour-23;
}
return t4;
}
//减法的重载
Time Time::operator -(const Time &t1) const{
Time t4;
t4.second=second-t1.second;
t4.minute=minute-t1.minute;
t4.hour=hour-t1.hour;
if(t4.second<0){
t4.second=t4.second+60;
t4.minute=t4.minute-1;
}
if(t4.minute<0){
t4.minute=t4.minute+60;
t4.hour=t4.hour-1;
}
if(t4.hour<0){
t4.hour=t4.hour+23;
}
return t4;
}
void Time::ShowTime(){
cout<
void main()
{
Time t1,t2,t3;
int h1,m1,s1;
int h2,m2,s2;
bool operation;
bool ifexit=false;
while(!ifexit){
cout< cin>>h1;
cout< cin>>m1;
cout< cin>>s1;
t1.Time1(h1,m1,s1);
cout< t1.ShowTime();
cout< cin>>h2;
cout< cin>>m2;
cout< cin>>s2;
t2.Time1(h2,m2,s2);
cout< t2.ShowTime();
cout< cout< cout< cout< cout< cin>>operation;
if (operation){
t3=t1+t2;
cout< t3.ShowTime();
}
else{
t3=t1-t2;
cout< t3.ShowTime();
}
cout< cout< cout< cout< cout< cin>>ifexit;
}
}
看了编写Date类,其中包含年月日...的网友还看了以下:
运用重置核算法确定的重置成本可以是( ) A.复原重置成本 B.更新重置成本 C.复原重置或更 2020-05-19 …
采用重置成本法评估二手车时,一般使用的是()。A.折旧成本B.更新重置成本C.复原重置成本D.税后成 2020-05-31 …
小海龟logo写出用重复命令画圆(一个边长为10 的正三十六边形) 2020-06-27 …
一个称重显示控制器XK3190-C8怎么接三个传感器?我要测四个位置的压力,为了准确测量,每个位置 2020-07-09 …
实验室制取乙烯时,由于温度过高而使混合溶液炭化,导致反应产生SO2和CO2等杂质气体,试用下图所给 2020-07-13 …
如图甲所示,是用重物做自由落体运动来“验证机械能守恒定律”的实验装置.(1)为了减小实验误差,下列 2020-07-22 …
大气污染与治理技术问题燃烧装置用重油做燃料,其燃用油成分如下:C88.3%H9.5%S6%水0.5% 2020-11-21 …
如图所示的甲,乙两套滑轮装置,每个滑轮的质量均相等,绳重和摩擦忽略不计.用甲装置把重为100N重物G 2020-11-29 …
气体的实验室制取是初中非常重要的一组实验,结合如图甲实验装置图回答有关问题:(1)写出用字母标示的仪 2020-12-19 …
气体的实验室制取是初中非常重要的一组实验,结合如图甲实验装置图回答有关问题:(1)写出用字母标示的仪 2020-12-19 …