第三周项目三 时间类

01./*    
02.* 程序的版权和版本声明部分    
03.* Copyright (c)2012, 烟台大学计算机学院学生    
04.* All rightsreserved.    
05.* 文件名称: duixiang.cpp    
06.* 作    者:晓晨    
07.* 完成日期:2013年3月14日    
08.* 版本号: v1.0    
09.* 输入描述:无    
10.* 问题描述:无    

#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;
};
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;
  }
inline void Time::add_a_sec()
  {
   ++sec;
   if(sec>59)
    add_a_minute();
  }
inline void Time::add_a_minute()
   {
  ++minute;
  if(minute>59)
   add_an_hour();
  }
inline void Time::add_an_hour()
{ 
 ++hour;
 if(hour>23)
 hour=0;
}
void Time::add_seconds(int n)
{
 sec+=n;
 if(sec>59)
 {
  add_minutes(sec/60);
  sec%=60;
 }
}
void Time::add_minutes(int n)
{
 minute+=n;
 if(minute>59)
 {
  add_hours(minute/60);
  minute%=60;
 }
  }
  void Time::add_hours(int n)
  { 
 hour+=n;
 if(hour>23)
 hour%=24;
  }
  int main()
  {
 Time t1;
 Time &t2=t1;
 t1.set_time();
 cout<<"现在时间是:";
 t2.show_time();
 t1.add_a_sec();  
 cout<<"增加1秒钟后:";
 t1.show_time( );

 t1.add_a_minute();
 cout<<"增加1分钟后:";
 t1.show_time( );

 t1.add_an_hour(); 
 cout<<"增加1小时后:";
 t1.show_time( );

 t1.add_seconds(40); 
 cout<<"增加40秒钟后:";
 t1.show_time( );

 t1.add_minutes(127); 
 cout<<"增加127分钟后:";
 t1.show_time( );

 t1.add_hours(8); 
 cout<<"增加8小时后:";
 t1.show_time( );
 return 0;
}


结果:

体会:

通过这次编程体会到了内置函数的使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值