C++ 习题 输出日期时间--友元函数

来源:互联网 发布:淘宝网充气浴缸 编辑:程序博客网 时间:2024/05/22 06:12

Problem O: C++ 习题 输出日期时间--友元函数

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 477  Solved: 318
[Submit][Status][Web Board]

Description

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

<!--[if !ppt]--><!--[endif]-->

Input

年、月、日和时、分、秒

Output

年、月、日和时、分、秒

Sample Input

2013 12 2314 23 50

Sample Output

2013/12/2314:23:50

HINT

 主函数已给定如下,提交时不需要包含下述主函数



/* C++代码 */

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;

}
 
#include <iostream>#include <string>#include <iomanip>using namespace std;class Product{private:    int num,quantity;    float price;    static int n;    static float discount,sum;public:    Product(){};    Product(int n1,int q, float p)    {        num=n1,quantity=q,price=p;        n+=q;    }    void total()    {        if(quantity>10)        {          sum+=quantity*price*0.95*0.98;        }        else        {            sum+=quantity*price*0.95;        }    }    static float average()    {        return sum/n;    }    static void display()    {        cout<<sum<<endl;        cout<<average()<<endl;;    }};float Product::discount=0.05;float Product::sum=0;int Product::n=0;int main(){    const int NUM =10;    Product Prod[10];    int m,i;    cin>>m;    int num;    int quantity;    float price;    for(i=0; i<m; i++)    {        cin>>num>>quantity>>price;        Product temp(num,quantity,price);        Prod[i]=temp;    }    for(i=0; i<m; i++)        Prod[i].total();    cout<<setiosflags(ios::fixed);    cout<<setprecision(2);    Product::display();    return 0;}

0 0