补作业 第六次实验 项目3

来源:互联网 发布:重庆金蝶软件 编辑:程序博客网 时间:2024/05/02 01:46

一、问题及代码

/** 文件名称:友元类1.cpp* 作    者:赖豪运* 完成日期:2017 年 5 月 7 日* 版 本 号:v1.0* 对任务及求解方法的描述部分:* 输入描述:无* 问题描述:定义下面两个类的成员函数(为体验友元类,实际上本例并不一定是一个好的设计,将两个类的合并为一个DateTime,日期、时间都处理更好)* 程序输出:略* 问题分析:略* 算法设计:略*/#include <iostream>  using namespace std;class Date;class Time{public:Time(int, int, int);void add_a_second(Date &);void display(Date &);private:int hour;int minute;int sec;};class Date{public:Date(int, int, int);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);}cin.get();return 0;} Time::Time(int h, int m, int s){hour = h;minute = m;sec = s;}Date::Date(int m, int d, int y){month = m;day = d;year = y;}void Time::add_a_second(Date &d){if (++sec >= 60) ++minute, sec -= 60;if (minute >= 60) ++hour, minute -= 60;if (hour >= 24) ++d.day, hour -= 24;if (d.day>30) ++d.month, d.day -= 30;if (d.month>12) ++d.year, d.month -= 12;}void Time::display(Date &d){cout << d.month << "/" << d.day << "/" << d.year << " ";cout << hour << ":" << minute << ":" << sec << endl;}
二、运行结果



0 0
原创粉丝点击