c++第3次作业

来源:互联网 发布:中小学网络安全教育 编辑:程序博客网 时间:2024/05/16 12:33

一、

#include <iostream>#include<cmath>using namespace std;class CPoint{public:    CPoint(double xx=0,double yy=0):xx(xx),yy(yy){}    void print();    friend double Distance(CPoint &pointa,CPoint &pointb);    double distance1(CPoint a);    double getxx() {return xx;}    double getyy() {return yy;}private:    double xx;    double yy;};void CPoint::print(){    cout<<"("<<xx<<","<<yy<<")"<<endl;}double Distance(CPoint &pointa,CPoint &pointb){    double dx=pointa.xx-pointb.xx;    double dy=pointa.yy-pointb.yy;    return sqrt(dx*dx+dy*dy);}double CPoint::distance1(CPoint a){    double dx=a.xx-xx;    double dy=a.yy-yy;    return sqrt(dx*dx+dy*dy);}double distance2(CPoint a,CPoint b){    double dx=a.getxx()-b.getxx();    double dy=a.getyy()-b.getyy();    return sqrt(dx*dx+dy*dy);}int main(){    CPoint p1(2.0,4.0),p2(3.0,2.0);    p1.print();    p2.print();    cout<<"友元函数调用:"<<endl;    double d=Distance(p1,p2);    cout<<d<<endl;    cout<<"成员函数调用:"<<endl;    double d1=p1.distance1(p2);    cout<<d1<<endl;    cout<<"调用一般函数:"<<endl;    double d2=distance2(p1,p2);    cout<<d2<<endl;}


二、

#include <iostream>using namespace std;class Date;class Date{public:    Date(int,int,int);    friend class Time; //Time为Date的友元类private:    int month;    int day;    int year;};Date::Date(int m,int d,int y){    month=m;    day=d;    year=y;}//对Date类的提前引用声明class Time{public:    Time(int,int,int);    void add_a_second(Date &);  //增加1秒,1秒后可能会到了下一天,乃到下一月、下一年    void display(Date &);  //显示时间,格式:月/日/年 时:分:秒private:    int hour;    int minute;    int sec;};Time::Time(int h,int m,int s){    hour=h;    minute=m;    sec=s;}void Time::add_a_second(Date &d){    sec=sec+1;    if(sec>=60)    {        sec=0;        minute+=1;    }    if(minute>=60)    {        minute=0;        hour+=1;    }    if(hour>=24)    {        hour=0;        d.day+=1;        if(d.month==1||d.month==3||d.month==5||d.month==7||d.month==8||d.month==10||d.month==12)        {            if(d.day>=31)            {                d.day=1;                d.month+=1;                if(d.month>=12)                {                    d.month=1;                    d.year+=1;                }            }        }        if(d.month==11||d.month==4||d.month==6||d.month==9)        {            if(d.day>=30)            {                d.day=1;                d.month+=1;                if(d.month>=12)                {                    d.month=1;                    d.year+=1;                }            }        }        if(d.month==2)        {            if(d.year%4==0)            {                if(d.day>=29)                {                    d.day=1;                    d.month+=1;                    if(d.month>=12)                    {                        d.month=1;                        d.year+=1;                    }                }            }            else                if(d.day>=28)                {                    d.day=1;                    d.month+=1;                    if(d.month>=12)                    {                        d.month=1;                        d.year+=1;                    }                }        }    }}void Time::display(Date &d){    cout<<"格式:"<<d.year<<"年"<<d.month<<"月"<<d.day<<"日"<<hour<<"时"<<minute<<"分"<<sec<<"秒"<<endl;}int main( ){    Time t1(23,59,32);    Date d1(12,31,2013);   //测试时,再试试Date d1(2,28,2013)会如何    for(int i=0; i<=100; i++)    {        t1.add_a_second(d1);        t1.display(d1);    }    return 0;}


                                             
0 0
原创粉丝点击