熟悉题型——代码完善(输出日期时间--友元函数)

熟悉题型——代码完善(输出日期时间--友元函数)

时间: 1ms        内存:128M

描述:

设计一个日期类和时间类,编写display函数用于显示日期和时间。要求:display函数作为类外的普通函数,分别在Time和Date类中将display声明为友元函数。在主函数中调用display函数,display函数分别引用Time和Date两个类的对象的私有数据,输出年、月、日和时、分、秒。

已经给出部分代码,请完善Data类

#include<iostream>  
using namespace std;  
class Time;
/***********************************

将你要补充的代码补充到该位置

***********************************/
class Time  
{  
public:  
    Time(int,int,int);  
    friend void display(Date &,Time &);  
private :  
    int hour;  
    int minute;  
    int sec;  
};  
Time::Time(int h,int m,int s)  
{  
    hour=h;  
    minute=m;  
    sec=s;  
}  
void display(Date & d,Time & t)  
{  
    cout<<d.year<<"/"<<d.month<<"/"<<d.day<<endl;  
    cout<<t.hour<<":"<<t.minute<<":"<<t.sec<<endl;  
}  
   
int main()
{
    int year,month,day;
    cin>>year>>month>>day;
    Date d1(year,month,day);
    int hour,minute,second;
    cin>>hour>>minute>>second;
    Time t1(hour,minute,second);
    display(d1,t1);
    return 0;
}

输入:

年、月、日和时、分、秒

输出:

年、月、日和时、分、秒

示例输入:

2013 12 23
14 23 50

示例输出:

2013/12/23
14:23:50

提示:

参考答案(内存最优[1092]):


#include<stdio.h>
int main()
{
    int a,b,c,q,w,e;
    scanf("%d%d%d",&a,&b,&c);
    scanf("%d%d%d",&q,&w,&e);
    printf("%d/%d/%d\n",a,b,c);
    printf("%d:%d:%d\n",q,w,e);
    return 0;
}

参考答案(时间最优[0]):


#include<iostream>   
using namespace std;   
class Time; class Date   
{   
public:   
    Date(int,int,int);   
    friend void display(Date &,Time &);   
private:   
    int month;   
    int day;   
    int year;   
      
};   
Date::Date(int m,int d,int y)   
{   
    month=m;   
    day=d;   
    year=y;   
}  
class Time   
{   
public:   
    Time(int,int,int);   
    friend void display(Date &,Time &);   
private :   
    int hour;   
    int minute;   
    int sec;   
};   
Time::Time(int h,int m,int s)   
{   
    hour=h;   
    minute=m;   
    sec=s;   
}   
void display(Date & d,Time & t)   
{   
    cout<<d.month<<"/"<<d.day<<"/"<<d.year<<endl;   
    cout<<t.hour<<":"<<t.minute<<":"<<t.sec<<endl;   
}   
    
int main() 
{ 
    void display(const Date &,const Time &); 
    int year,month,day; 
    cin>>year>>month>>day; 
    Date d1(year,month,day); 
    int hour,minute,second; 
    cin>>hour>>minute>>second; 
    Time t1(hour,minute,second); 
    display(d1,t1); 
    return 0; 
} 

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注