第三周任务3

来源:互联网 发布:ubuntu mate更改分辨率 编辑:程序博客网 时间:2024/05/16 17:18

  1. /* (程序头部注释开始) 

    * 程序的版权和版本声明部分 

    * Copyright (c) 2011, 烟台大学计算机学院学生  

    * All rights reserved. 

    * 文件名称:   addtime.cpp                           

    * 作    者:   张艳明              

    * 完成日期:   2012 年 03月9日 

    * 版 本 号: 

    * 对任务及求解方法的描述部分 

    * 输入描述:要变化的量 

    * 问题描述:运行时输入时分秒,以加后的形式输出 

    *程序输出:增加之后的时间形式 

    * 程序头部的注


  2. #include <iostream>       
  3. using namespace std;      
  4. class Time    
  5. {    
  6. public:    
  7.     void set_time( );    
  8.     void show_time( );    
  9.     inline void add_a_sec(); //增加1 秒钟        
  10.     inline void add_a_minute(); //增加1 分钟     
  11.     inline void add_an_hour(); //增加1 小时     
  12.     void add_seconds(int); //增加n 秒钟     
  13.     void add_minutes(int); //增加n 分钟     
  14.     void add_hours(int); //增加n 小时     
  15. private:    
  16.     bool is_time(intintint);    
  17.     int hour;    
  18.     int minute;    
  19.     int sec;    
  20. };    
  21.   
  22. int main( )    
  23. {     
  24.     Time t1;    
  25.     Time &t2=t1;      
  26.     t1.set_time( );       
  27.     t1.show_time( );    
  28.     t1.add_a_sec();  //增加1秒钟     
  29.     t1.show_time( );    
  30.     t1.add_a_minute(); //增加1分钟     
  31.     t1.show_time( );    
  32.     t1.add_an_hour(); //增加1小时     
  33.     t1.show_time( );     
  34.     t1.add_seconds(10000);    
  35.     t2.show_time( );      
  36.     return 0;    
  37. }   
  38.    
  39. void Time::set_time( )    
  40. {     
  41.     char c1,c2;       
  42.     cout << "请输入时间(格式hh:mm:ss)" ;       
  43.     while(1)    
  44.     {     
  45.         cin >> hour >> c1 >> minute >> c2 >> sec;    
  46.           
  47.         if (c1 != ':' || c2 != ':')    
  48.             cout << "格式不正确,请重新输入" << endl;    
  49.         else if (!is_time(hour, minute, sec))    
  50.             cout << "时间非法,请重新输入" << endl;    
  51.         else    
  52.             break;    
  53.     }    
  54. }    
  55.   
  56. void Time::show_time( )    
  57. {     
  58.     cout << hour << ":" << minute << ":" << sec << endl;    
  59. }   
  60.   
  61. bool Time::is_time(int h, int m, int s)    
  62. {     
  63.     if (h < 0 || h > 23 || m < 0 || m > 59 || s < 0 || s > 59)    
  64.         return false;     
  65.     return true;    
  66. }    
  67.   
  68. inline void Time::add_a_sec()   
  69. {    
  70.     ++sec;        
  71.     if (!is_time(hour, minute, sec))    
  72.     {    
  73.         sec = 0;    
  74.         add_a_minute();  
  75.     }    
  76.     cout<<"增加一秒钟后时间为:";  
  77. }    
  78.   
  79. inline void Time::add_a_minute()    
  80. {    
  81.     ++minute;    
  82.       
  83.     if (!is_time(hour, minute, sec))    
  84.     {    
  85.         add_an_hour();    
  86.     }    
  87.     cout<<"增加一分钟后时间为:";  
  88. }    
  89.   
  90. inline void Time::add_an_hour()    
  91. {    
  92.     ++hour;      
  93.     if (!is_time(hour, minute, sec))    
  94.     {    
  95.         hour = 0;    
  96.     }    
  97.     cout<<"增加一小时后时间为:";  
  98. }    
  99.   
  100. void Time::add_seconds(int s)    
  101. {    
  102.     s = sec + s;    
  103.     sec = s % 60;     
  104.     add_minutes(s / 60);   
  105.     cout<<"增加10000秒钟后时间为:";  
  106. }    
  107.   
  108. void Time::add_minutes(int m)    
  109. {    
  110.     m = minute + m;    
  111.     minute = m % 60;      
  112.     add_hours(m / 60);    
  113. }  
  114.     
  115. void Time::add_hours(int h)    
  116. {    
  117.     h = hour + h;    
  118.     hour = h % 24;    
  119. }  
原创粉丝点击