补3

xiaoxiao2021-02-28  109

一、问题及代码

/* *文件名称:项目三 *作 者:武鹏翔 *完成日期:2017.5.7 *版 本 号:v6.0 *对任务及求解方法描述部分: *输入描述: *问题描述: *程序输出: *问题分析: *算法设计: */ #include<iostream> using namespace std; class Date { public: Date(int m,int d,int y):month(m),day(d),year(y){} ; friend class Time; private: int month; int day; int year; }; class Time { public: Time(int h,int m,int s):hour(h),minute(m),sec(s) {}; void add_a_second(Date &); void display(Date &); private: int hour; int minute; int sec; }; void Time::add_a_second(Date &d) { sec++; if(sec>59) { sec=0; minute++; } if(minute>59) { minute=0; hour++; } if(hour>23) { hour=0; if( d.day==28 && ((d.year@0==0)||((d.year%4==0)&&(d.year0!=0)))&& d.month==2) { d.day=1; d.month++; } else if((d.day==29)&&d.month==2) { d.day=1; d.month++; } else if( (d.day==30)&&(d.month==4) || d.month==6||d.month==9||d.month==11) { d.day=1; d.month++; } else if(d.day==31) { d.day=1; d.month++; } else { d.day++; } if(d.month>12) { d.month=1; d.year++; } } } void Time::display(Date &d) { cout<<d.month<<"/"<<d.day<<"/"<<d.year<<" "<<hour<<":"<<minute<<":"<<sec<<endl; } int main( ) { Time t1(23,59,32); Date d1(2,28,2013); for(int i=0; i<=100; i++) { t1.add_a_second(d1); t1.display(d1); } return 0; }

二、运行结果

时间为:2,28,2013

时间为:12,31,2013

             

三、心得体会

对于友元函数中一些变量的调用还是不太熟悉,以及在IF语句的影响范围即逻辑上还需要理解。

四、知识点归纳

友元函数对于变量的调用要用格式(.变量),前面要申明友元函数。

转载请注明原文地址: https://www.6miu.com/read-83239.html

最新回复(0)