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
- 第3次作业
- 第3次作业
- 第3次作业
- 第3次作业
- c++第3次作业
- C++第3次作业
- C++第3次作业
- C++第3次作业
- C++第3次作业
- C++第3次作业
- c++第3次作业
- c++第3次作业
- C++第3次作业
- C++第3次作业
- c++第3次作业
- C++第3次作业
- C++第3次作业
- c++第3次作业
- 宏观
- 友元类
- 《R语言入门》语言及环境简介
- 02-jsonp学习
- AndroidSDK配置更新
- c++第3次作业
- [线段树] BZOJ 4499 线性函数
- Android多媒体--音视频播放
- 初识C++之封装
- http状态码详解
- 关于i++的``side effects''
- 第7周项目1:成员函数、友元函数和一般函数有区别(2)
- hihocoder1143 斐波拉契数列
- 学习Android从0开始之ActionBar(活动条)