c++第3次作业
2016-04-12 19:58
381 查看
一、
#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; }
相关文章推荐
- C++第三次作业
- 初识C++之函数重载、重写、重定义的区别
- <<Effective C++>读书笔记(四)
- nyoj289苹果
- c++string类的相关操作
- 【C语言】C语言中main函数问题
- c++第三次作业
- C++第3次作业
- Effective C++ 笔记1
- C++上机作业
- c++实验三-个人所得税计算器
- C语言(undefined behavior)未定义-序
- C++ 代码优化
- [C\C++]读入优化【技巧】
- C#调用C++接口返回字符串的做法
- C#调用C++接口返回字符串的做法
- C++ Primer Plus编程练习 7.13-1
- C++ Primer Plus编程练习 7.13-3
- 猜数字 1008
- 各类排序算法的c++实现