您的位置:首页 > 其它

修正后的时间类

2016-04-03 22:20 519 查看
问题及代码:

/*copyright 烟台大学计算机与控制工程学院
*问题及代码:
*文件名称:时间类
*作者:马艳艳
完成日期:2016.4.3
*
*问题描述:通过时间 类完成要求
*输入描述:要增加的时间和时间
程序输出:增加后的时间
提示:这是完善后的。多亏贵人相助啊哈哈*/
#include <iostream>

using namespace std;
class Time
{
public:
Time (int a,int b,int c);
void set_time();
void show_time();
void add_a_sec(int);
void add_a_minute(int);
void add_an_hour(int);
private:
bool is_time(int,int,int);
int hour;
int minute;
int sec;
};
Time::Time(int a,int b,int c)
{
hour=a;
minute=b;
sec=c;
}
void  Time::set_time()
{
char c1,c2;
cout<<"请输入时间(格式hh:mm:ss)"<<endl;
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)
{
if(h<0 || h>60 || m<0 || m>60 || s<0 || s>60)
return false;
else
return true;
}
void Time::add_a_sec(int n)
{

if((sec+n)>=60)
{
sec=(sec+n)%60;
add_a_minute(n/60);

}
else
sec+=n;

}
void  Time::add_a_minute(int n)
{

if((minute+n)>=60)
{
minute=(minute+n)%60;
add_an_hour(n/60);
}
else
minute+=n;

}
void Time::add_an_hour(int n)
{

if((hour+n)>=24)
{
hour=(hour+n)%24;
add_an_hour(n/24);

}
else
hour+=n;

}

int main()
{
Time t1(0,0,0);
int n;
cout<<"请输入要增加的时间n"<<endl;
cin>>n;

t1.set_time();
//t1.show_time();
t1.add_a_sec(n);
t1.add_a_minute(n);
t1.add_an_hour(n);
t1.show_time();
return 0;
}

运行结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: