c++第三次作业

来源:互联网 发布:大连知行小学怎么样 编辑:程序博客网 时间:2024/06/06 19:08

一、问题及代码

[cpp] view plain copy
  1. #include<iostream.h>  
  2. class Date; //对Date类的提前引用声明  
  3. class Time  
  4. {  
  5. public:  
  6.     Time(int,int,int);  
  7.     void add_a_second(Date &d);  //增加1秒,1秒后可能会到了下一天,乃到下一月、下一年  
  8.     void display(Date &d);  //显示时间,格式:月/日/年 时:分:秒  
  9. private:  
  10.     int hour;  
  11.     int minute;  
  12.     int sec;  
  13. };  
  14.   
  15.   
  16. class Date  
  17. {  
  18. public:  
  19.     Date(int,int,int);  
  20.     friend class Time; //Time为Date的友元类  
  21. private:  
  22.     int month;  
  23.     int day;  
  24.     int year;  
  25. };  
  26. Time::Time(int h,int m,int s)  
  27. {  
  28.     hour=h;  
  29.     minute=m;  
  30.     sec=s;  
  31. }  
  32. Date::Date(int m,int d,int y)  
  33. {  
  34.     month=m;  
  35.     day=d;  
  36.     year=y;  
  37. }  
  38. int main( )  
  39. {  
  40.     Time t1(23,59,32);  
  41.     Date d1(12,31,2013);   //测试时,再试试Date d1(2,28,2013)会如何  
  42.     for(int i=0; i<=100; i++)  
  43.     {  
  44.         t1.add_a_second(d1);  
  45.         t1.display(d1);  
  46.     }  
  47.     return 0;  
  48. }  
  49. //下面定义两个类中的成员函数,要求不得再增加成员函数  
  50. //注意体会在Time的成员函数中可以调用Date类的私有数据成员     
  51. void Time::add_a_second(Date &d)  
  52. {  
  53.     sec=sec+1;    
  54.     if(sec==60)  
  55.     {  
  56.         sec=0;  
  57.         minute=minute+1;  
  58.     }   
  59.     if(minute==60)  
  60.     {  
  61.         minute=0;  
  62.         hour=hour+1;  
  63.     }   
  64.     if(hour==24)    
  65.     {  
  66.         hour=0;  
  67.         d.day+=1;  
  68.     }  
  69.        if(d.month==1||d.month==3||d.month==5||d.month==7||d.month==8||d.month==10||d.month==12)  
  70.        {  
  71.            if(d.day==32)  
  72.            {  
  73.                d.day=1;  
  74.                d.month+=1;  
  75.            }  
  76.            if(d.month==13)  
  77.            {   
  78.                d.month=1;  
  79.                d.year+=1;  
  80.            }  
  81.              
  82.        }  
  83.        if(d.month==4||d.month==6||d.month==9||d.month==11)  
  84.        {  
  85.            if(d.day==31)  
  86.            {  
  87.                d.day=1;  
  88.                d.month+=1;  
  89.            }  
  90.        }  
  91.        if(d.month==2)  
  92.        {  
  93.            if(d.year/4==0&&d.year/100!=0||d.year/400==0)  
  94.            {  
  95.                if(d.day==30)  
  96.                {  
  97.                    d.day=1;  
  98.                    d.month+=1;  
  99.                }  
  100.            }  
  101.            else  
  102.            {  
  103.                if(d.day==29)  
  104.                {  
  105.                    d.day=1;  
  106.                    d.month+=1;  
  107.                }  
  108.            }  
  109.        }  
  110. }  
  111. void Time::display(Date &d)  
  112. {  
  113.     cout<<d.year<<"/"<<d.month<<"/"<<d.day<<" "<<hour<<":"<<minute<<":"<<sec<<endl;  
  114. }  

二、运行结果:


三、心得体会:

  会好好的学习c++争取更大突破。

四、知识点总结:

  增加一秒有可能会到了下一天,乃到下一月、下一年,而且有二月分为闰年和不润,应熟练掌握。主要实现Time的成员函数中可以调用Date类的私有数据成员 。

对博文提交的程序书写规范很重要,最起码的要求:(1)缩格排版;(2)一句一行;(3)花括号位置;(4)适度的注释。


0 0
原创粉丝点击