当前位置:编程学习 > C/C++ >>

3_3时间类

[cpp]  
/* 
* 程序的版权和版本声明部分 
* Copyright (c)2013, 烟台大学计算机学院学生 
* All rightsreserved. 
* 文件名称:score.cpp                            
* 作    者:纪子龙                             
* 完成日期:2013  年3   月 14  日 
* 版本号: v1.0       
* 输入描述:无 
* 问题描述:无 
* 输出:无 
*/  
#include <iostream>  
using namespace std;  
class Time  
{  
public:  
    void set_time( );     
    void show_time( );    
    inline int add_a_sec();  //增加1秒钟  
    inline int add_a_minute() ;//增加1分钟  
    inline int add_an_hour(); //增加1小时  
    int add_seconds(int n); //增加n秒钟  
    int add_minutes(int n); //增加n分钟  
    int add_hours(int n); //增加n小时  
      
private:   
    bool is_time(int, int, int);  
    int hour;  
    int minute;  
    int sec;  
};  
void Time::set_time( )   
{   char c1,c2;  
int adhour,adminute,adsec;  
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;  
}  
cout<<"请输入要增加的的小时数:"<<endl;  
cin>>adhour;  
hour=add_hours(adhour);  
cout<<"请输入要增加的的分钟数:"<<endl;  
cin>>adminute;  
minute=add_minutes(adminute);  
cout<<"请输入要增加的的秒钟数:"<<endl;  
cin>>adsec;  
sec=add_seconds(adsec);  
}  
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 int Time:: add_a_sec()  
{  
    sec=sec+1;  
    if(sec>59)  
    {  
        sec=sec-60;  
        minute=add_a_minute();  
    }  
    return sec;  
}//增加1秒钟  
inline int Time::add_a_minute() //增加1分钟  
{  
    minute=minute+1;  
    if(minute>59)  
    {  
        minute=minute-60;  
        hour=add_an_hour();  
    }  
    return minute;  
}  
inline int Time:: add_an_hour() //增加1小时  
{  
    hour=hour+1;  
    if(hour>23)  
    {  
        hour=hour-24;  
    }  
    return hour;  
}  
int Time:: add_seconds(int n)  
{  
    sec=sec+n;  
    if(sec>59)  
    {  
        sec=sec-60;  
        minute=add_a_minute();  
    }  
    return sec;  
}//增加n秒钟  
int Time:: add_minutes(int n)  
{  
    minute=minute+n;  
    if(minute>59)  
    {  
        minute=minute-60;  
        hour=add_an_hour();  
    }  
    return minute;  
}//增加n分钟  
int Time::add_hours(int n)  
{  
    hour=hour+n;  
    if(hour>23)  
    {  
        hour=hour-24;  
    }  
    return hour;  
}//增加小时  
  
int main( )  
{   Time t1;    
Time &t2=t1;  
t1.set_time( );     
t2.show_time( );  
return 0;  
}  
运行结果:  
补充:软件开发 , C++ ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,