/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称: 增加1秒
* 作 者: 李超
* 完成日期: 2012 年 3 月 7 日
* 版 本 号: 01.03.03
* 对任务及求解方法的描述部分
* 输入描述:
* 问题描述: 输入一个时间,输出并增加1秒
* 程序输出:
* 程序头部的注释结束
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称: 增加1秒
* 作 者: 李超
* 完成日期: 2012 年 3 月 7 日
* 版 本 号: 01.03.03
* 对任务及求解方法的描述部分
* 输入描述:
* 问题描述: 输入一个时间,输出并增加1秒
* 程序输出:
* 程序头部的注释结束
*/
#include <iostream>
using namespace std;
void add_seconds(int); //增加n秒钟
void add_minutes(int); //增加n分钟
void add_hours(int); //增加n小时
class Time
{
public:
inline void add_a_sec();//增加1秒钟
inline void add_a_minute(); //增加1分钟
inline void add_an_hour(); //增加1小时
void set_time();
void show_time();
int hour;
int minute;
int sec;
private:
bool is_time(int , int , int );
};
Time t1;
Time &t2 = t1;
int main()
{
t1.add_a_sec();
cout <<"增加一分" <<endl;
t1.add_a_minute();
cout <<"增加一小时" <<endl;
t1.add_an_hour();
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)
{
if(h < 0 || h > 24 || m < 0 || m > 60 ||s < 0 || s > 60)
return false;
return true;
}
void Time::add_a_sec()//增加1秒钟
{
t1.set_time();
cout <<"增加一秒" <<endl;
t1.sec ++;
if(!is_time(hour, minute, sec))
{
t1.sec -= 60;
t1.minute ++;
if(!is_time(hour, minute, sec))
{
t1.minute -= 60;
t1.hour ++;
if(!is_time(hour, minute, sec))
t1.hour -=24;
}
}
t2.show_time();
}
void Time::add_a_minute() //增加1分钟
{
t1.minute += 1;
if(!is_time(hour, minute, sec))
{
t1.minute -= 60;
t1.hour ++;
if(!is_time(hour, minute, sec))
t1.hour -=24;
}
t2.show_time ();
}
void Time::add_an_hour() //增加1小时
{
t1.hour += 1;
if(!is_time(hour, minute, sec))
t1.hour -=24;
t2.show_time ();
}