c++第三次实验

 



  1. /*       
  2. * 文件名称:       
  3. * 作    者:  吴红斌     
  4. * 完成日期:  2016年    6月   15日       
  5. * 版 本 号:v1.0       
  6. * 对任务及求解方法的描述部分: 类和对象     
  7. * 输入描述:        
  8. * 问题描述: 完成Time类,转换输出格式     
  9. * 程序输出: show_time函数    
  10. * 问题分析: show_time函数错误  函数调用出错 
  11. * 算法设计:        
  12. */  
  13. #include <iostream>    
  14. using namespace std;    
  15. class Time  
  16. {    
  17. public:    
  18.     Time(int h=0,int m=0,int s=0);  
  19.     void show_time(); //根据is_24和from0,输出适合形式-20:23:5/8:23:5 pm/08:23:05 pm    
  20.     void add_seconds(int); //增加n秒钟    
  21.     void add_minutes(int); //增加n分钟      
  22.     void add_hours(int); //增加n小时      
  23.     static void change24();  //改变静态成员is_24,在12和24时制之间转换    
  24.     static void changefrom0();   //改变静态成员from0,切换是否前导0    
  25.  private:    
  26.     static bool is_24; //为true时,24小时制,如20:23:5;为flase,12小时制,显示为8:23:5 pm     
  27.     static bool from0; //为true时,前导0,8:23:5显示为08:23:05    
  28.     int hour;    
  29.     int minute;    
  30.     int sec;    
  31. };    
  32. //下面写出静态成员的初始化及各成员函数的定义……  
  33.   
  34. void Time::show_time()  
  35. {  
  36.     if(is_24&&(!from0))  
  37.         cout<<hour<<":"<<minute<<":"<<sec<<endl;  
  38.     else if(is_24&&from0)  
  39.     {  
  40.         if(hour<10)  
  41.             cout<<"0"<<hour<<":";  
  42.         else cout<<hour<<":";  
  43.         if(minute<10)  
  44.             cout<<"0"<<minute<<":";  
  45.         else cout<<minute<<":";  
  46.         if(sec<10)  
  47.             cout<<"0"<<sec;  
  48.         else  
  49.             cout<<sec;  
  50.         cout<<endl;  
  51.     }  
  52.     else if((!is_24)&&(!from0))  
  53.     {  
  54.         if(hour<12)  
  55.             cout<<hour<<":"<<minute<<":"<<sec<<" "<<"am"<<endl;  
  56.         else  
  57.             cout<<hour-12<<":"<<minute<<":"<<sec<<" "<<"pm"<<endl;  
  58.     }  
  59.     else if((!is_24)&&from0)  
  60.     {  
  61.         if(hour>=12)  
  62.             hour-=12;    
  63.         if(hour<10)    
  64.             cout<<"0"<<hour<<":";    
  65.         else   
  66.             cout<<hour<<":";    
  67.         if(minute<10)    
  68.             cout<<"0"<<minute<<":";    
  69.         else   
  70.             cout<<minute<<":";    
  71.         if(sec<10)    
  72.             cout<<"0"<<sec;    
  73.         else   
  74.             cout<<sec;    
  75.         cout<<endl;    
  76.     }  
  77. }  
  78.   
  79. Time::Time(int h,int m,int s)    
  80. {    
  81.     hour=h;  
  82.     minute=m;  
  83.     sec=s;    
  84. }  
  85.   
  86. void Time::add_seconds(int n)//增加n秒钟  
  87. {  
  88.     sec=sec+n;  
  89.     if(sec>=60)  
  90.         minute=minute+sec/60;  
  91.         sec=sec%60;  
  92.     if(minute>=60)  
  93.         hour=hour+minute/60;  
  94.         minute=minute%60;  
  95. }  
  96.   
  97. void Time::add_minutes(int n)//增加n分钟  
  98. {  
  99.     minute=minute+n;  
  100.     if(minute>=60)  
  101.         hour=hour+minute/60;  
  102.         minute=minute%60;  
  103. }  
  104.   
  105. void Time::add_hours(int n)//增加n小时  
  106. {  
  107.     hour=hour+n;  
  108.     if(hour>=24) hour-=24;  
  109. }     
  110.       
  111. void Time::change24()//改变静态成员is_24,在12和24时制之间转换  
  112. {  
  113.     is_24=false;  
  114. }  
  115.       
  116. void Time::changefrom0()//改变静态成员from0,切换是否前导0  
  117. {  
  118.     from0=true;  
  119. }  
  120.   
  121. bool Time::is_24=true;  
  122.   
  123. bool Time::from0=false;  
  124.    
  125. int main()  
  126. {  
  127.     Time t1(23,14,25);  
  128.     Time t2(8,45,6);  
  129.   
  130.     cout<<"24小时制,不前导:"<<endl;  
  131.     cout<<"t1是:";  
  132.     t1.show_time();  
  133.     cout<<"t2是:";  
  134.     t2.show_time();  
  135.   
  136.     t1.add_hours(10);  
  137.     t2.add_hours(10);  
  138.     cout<<"10小时后,切换是否前导:"<<endl;  
  139.     t1.changefrom0();  
  140.     t2.changefrom0();  
  141.     cout<<"t1是:";  
  142.     t1.show_time();  
  143.     cout<<"t2是:";  
  144.     t2.show_time();  
  145.       
  146.     cout<<"换一种制式:"<<endl;  
  147.     cout<<"t1是:";  
  148.     t1.change24();  
  149.     t2.change24();  
  150.     t1.show_time();  
  151.     cout<<"t2是:";  
  152.     t2.show_time();  
  153.       
  154.     return 0;  
  155. }  



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值