程序:
/*
* Copyright(c)2013,
*All right reserved.
*文件名称:test8-2.cpp
*作 者:徐驰
*完成日期:2013-12-13
*版 本 号:v1.0
*
*输入描述:时间类。。。
*问题描述:略
*程序输出:略
*问题分析:略
*算法分析:略
*/
#include<iostream>
using namespace std;
class Data
{
private:
int hour;
int minute;
int sec;
char flag1;
char flag2;
public:
bool is_time();
void set_time(int hh,char a,int mm,char b,int ss);
void show_time();
inline void add_1sec();
inline void add_1min();
inline void add_1hou();
void add_nsec(int n);
void add_nmin(int n);
void add_nhou(int n);
};
void Data::set_time(int hh,char a,int mm,char b,int ss)
{
hour=hh;
minute=mm;
sec=ss;
flag1=a;
flag2=b;
}
bool Data::is_time()
{
if(hour>23||hour<0||minute>59||minute<0||sec<0||sec>59||flag1!=':'||flag2!=':')
return false;
else return true;
}
void Data::show_time()
{
cout<<hour<<":"<<minute<<":"<<sec<<endl;
}
inline void Data::add_1sec()
{
++sec;
if(sec>59)
{
++minute;
sec=0;
}
if(minute>59)
{
++hour;
minute=0;
}
if(hour>23)hour=0;
}
inline void Data::add_1min()
{
++minute;
if(minute>59)
{
++hour;
minute=0;
}
if(hour>23)hour=0;
}
inline void Data::add_1hou()
{
++hour;
if(hour>23)hour=0;
}
void Data::add_nsec(int n)
{
sec+=n;
if(sec>59)
{
minute+=sec/60;
sec%=60;
}
if(minute>59)
{
hour+=minute/60;
minute%=60;
}
if(hour>23)hour=hour%24;
}
void Data::add_nmin(int n)
{
minute+=n;
if(minute>59)
{
hour+=minute/60;
minute%=60;
}
if(hour>23)hour%=24;
}
void Data::add_nhou(int n)
{
hour+=n;
if(hour>23)hour%=24;
}
void main()
{
int a,b,c;
char e,f;
Data time;
do
{
cout<<"请输入时间(hh:mm:ss):";
cin>>a>>e>>b>>f>>c;
time.set_time(a,e,b,f,c);
if(time.is_time()==false)
cout<<"输入错误,请重新输入."<<endl;
}
while(time.is_time()==false);
cout<<"显示时间:"<<endl;
time.show_time();
cout<<"增加一秒钟:"<<endl;
time.add_1sec();
time.show_time();
cout<<"增加一分钟:"<<endl;
time.add_1min();
time.show_time();
cout<<"增加一小时:"<<endl;
time.add_1hou();
time.show_time();
cout<<"增加72秒钟:"<<endl;
time.add_nsec(72);
time.show_time();
cout<<"增加80分钟:"<<endl;
time.add_nmin(80);
time.show_time();
cout<<"增加26小时:"<<endl;
time.add_nhou(26);
time.show_time();
}
结果: