第四周实验报告(二)

来源:互联网 发布:eplan2.3 授权软件 编辑:程序博客网 时间:2024/04/29 20:25

#include<iostream>
using namespace std;                                                      
class Time     
{     
public:     
void set_time( );        
    void show_time( );
inline void add_a_sec();        
    inline void add_a_minute();       
    inline void add_an_hour();
    void add_seconds(int);      
    void add_minutes(int);       
    void add_hours(int);       

private:      

    bool is_time(int, int, int);
int hour;     
    int minute;     
    int sec;   
};    
int main( )       
{       
    int ss,mm,hh; 
    Time t1;     
    t1.set_time( );          
    t1.show_time( );       
    t1.add_a_sec();         
    cout<<"时间增加一秒后的为:";       
    t1.show_time( );       
    t1.add_a_minute();        
    cout<<"时间增加一分钟后的为:";       
    t1.show_time( );       
    t1.add_an_hour();       
    cout<<"时间增加一小时后的为:";       
    t1.show_time( );       
    cout<<"输入要增加的秒数:";        
    cin>>ss;       
    t1.add_seconds(ss);       
    cout<<"增加"<<ss<<"秒后的时间为:";       
    t1.show_time( );       
    cout<<"输入要增加的分数:";        
    cin>>mm;        
    t1.add_minutes(mm);       
    cout<<"增加"<<mm<<"分钟后的时间为:";       
    t1.show_time( );        
    cout<<"输入要增加的时数:";        
    cin>>hh;        
    t1.add_hours(hh);       
    cout<<"增加"<<hh<<"小时后的时间为:";       
    t1.show_time( );       
    system("PAUSE");       
    return 0;       
}   

void Time::set_time( )        
{       
    char c1,c2;       
    cout<<"请输入时间(格式hh:mm:ss)";       
    while(1)       
    {       
        cin>>hour>>c1>>minute>>c2>>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)
{
bool prime;
prime=true;
if (h<0 ||h>24 || m<0 ||m>60 || s<0 ||s>60)
{
  prime=false;
}
return prime;
}       

inline void Time::add_a_sec()           
{     
    add_seconds(1);
}       

inline void Time::add_a_minute()          
{    
    add_minutes(1);   

}       

inline void Time::add_an_hour()         
{       
    add_hours(1);   

}       

void Time::add_seconds(int ss)         
{             
    sec=sec+ss;  
    if(sec>60)     
    {  
  sec=sec%60;
  minute=minute+sec/60;
}     
    if(minute>60)     
    {      
        minute=minute%60;     
        hour=hour+minute/60;         
    }
if(hour>23)
{     
        hour=hour-23-1;     
    }
}       

void Time::add_minutes(int mm)          
{            
    minute=minute+mm;       
    if(minute>60)     
    {   
        hour=hour+minute/60;    
        minute=minute%60;     
 
    }                                       
    if(hour>23)     
    {     
        hour=hour-23-1;     
    }
}       

void Time::add_hours(int hh)          
{         
    hour=hour+hh;     
    if(hour>23)     
    {     
        hour=hour-23-1;     
    }
}  

原创粉丝点击