第三周实验报告任务3(输入一个时间并增加时分秒)

#include <iostream> 
 
using namespace std;  

class Time  
{  
public:  
    void set_time( );  
	
    void show_time( );
	
    inline void add_a_sec();  //增加1秒钟 
	
    inline void add_a_minute(); //增加1分钟  

    inline void add_an_hour(); //增加1小时 
	
    void add_seconds(int n); //增加n秒钟 
	
    void add_minutes(int n); //增加n分钟 
	
    void add_hours(int n); //增加n小时  
      
private:   
    bool is_time ( int, int, int );  

    int hour; 
	
    int minute;  

    int sec;
	
    int hour1;  

    int minute1;
	
    int sec1;  

};  
  
int main( )  
{  
	int x,y,z;

    Time t1;

    Time&t2 = t1;

	t1.set_time();

	t2.show_time ();
	
	cout << "请输入要增加的时分秒:" << endl;  
  
    cin >> x >> y >> z;  
  
    t1.add_seconds ( z );  
  
    t1.add_minutes ( y );  
  
    t1.add_hours ( x );  
  
	t2.show_time ();
	
    
    
    
    return 0;  
}  
  
void Time :: set_time()   
{  
    char c1,c2;  

    cout << "请输入时间 ( 格式 hh:mm:ss ) ";
	
    while(1)  
    {  
        cin >> hour >> c1 >> minute >> c2 >> sec;  
        hour1 = hour;
		
        minute1 = minute;
		
        sec1 = sec;
		
        if (c1 != ':' || c2 != ':') 
			
            cout << "格式不正确,请重新输入" << endl;  

        else if (!is_time(hour,minute,sec))  

            cout << "时间非法,请重新输入" << endl;  
        else   
            break;  
    }  
}  
  
void Time::show_time( )        
{  
    cout << hour << ":" << minute << ":" << sec << endl;  
}  
  
bool Time::is_time ( int h,int m, int s )  
{  
    if (h<0 ||h>24 || m<0 ||m>60 || s<0 ||s>60)  

        return false;  

    return true;  
}  
  
inline void Time::add_a_sec()  //增加1秒钟  
{  
   sec = sec+1;

   if(sec>60||sec==60)
	{
		minute = minute+(sec/60);

		sec = sec%60;
	}
   
}  
  
inline void Time::add_a_minute() //增加1分钟  
{  
    minute = minute+1;

	if(minute>60||minute == 60)
	{
		hour = hour+(minute/60);

		minute = minute%60;
	}


}  
  
inline void Time::add_an_hour() //增加1小时  
{  
    hour = hour+1;
    if (hour>23)
   {
     hour=hour%24;
   }
	
}  


void Time::add_seconds(int n)//增加n秒钟  
{  
    sec = sec+n;

  if(sec>60||sec==60)
	{
		minute = minute + (sec/60);
		sec = sec%60;
	}
   
}  
  
void Time::add_minutes(int n) //增加n分钟  
{  
  minute = minute + n;

if(minute > 60||minute == 60)
	{
		hour = hour + ( minute/60 );

		minute = minute % 60;
	}

 
}  
  
void Time::add_hours(int n) //增加n小时  
{  
    hour = hour + n;
if (hour>23)
   {
     hour=hour%24;
   }

}








评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值