补1,实验6.3

来源:互联网 发布:c语言switch语句例子 编辑:程序博客网 时间:2024/06/15 10:56

项目3:友元类

定义下面两个类的成员函数(为体验友元类,实际上本例并不一定是一个好的设计,将两个类的合并为一个DateTime,日期、时间都处理更好)

#include <iostream>using namespace std;class Date;class Time{public:    Time(int i,int j,int k)    {        hour=i;minute=j;sec=k;    }    void add_a_second(Date &);    void display(Date &);  // 显示时间private:    int hour;    int minute;    int sec;};class Date{public:    Date(int i=0,int j=0,int k=0)    {        month=i;    day=j;  year=k;    }    friend class Time;private:    int month;    int day;    int year;};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;}void Time::add_a_second(Date &d1){    if(sec<59)    {        sec++;    }    else if(sec==59)    {        sec=0;        if(minute<59)        {            minute++;        }        else if(minute==59)        {            minute=0;            if(hour<23)            {                hour++;            }            else if(hour==23)            {                hour=0;                if(d1.day<28)                {                    d1.day++;                }                else if(d1.month==2)                {                    if(d1.day<28)                    d1.day++;                    else                    {                        d1.day=1;                        d1.month++;                    }                }                else if(d1.month==1 && d1.month==3 && d1.month==5 && d1.month==7 && d1.month==8 && d1.month==10)                {                    if(d1.day<31)                    d1.day++;                    else                    {                        d1.day=1;                        d1.month++;                    }                }                else if(d1.month==4 && d1.month==6 && d1.month==9 && d1.month==11)                {                    if(d1.day<30)                    d1.day++;                    else                    {                        d1.day=1;                        d1.month++;                    }                }                else if(d1.month==12)                {                    if(d1.day<31)                    d1.day++;                    else                    {                        d1.day=1;                        d1.month=1;                        d1.year+=1;                    }                }            }        }    }}void Time::display(Date &d1){    cout<<d1.month<<"\\"<<d1.day<<"\\"<<d1.year<<"\t"<<hour<<":"<<minute<<":"<<sec<<endl;}

运行结果1



运行结果2



0 0