1 #ifndef HEADER_PPOINT//头文件卫士
2 #define HEADER_PPOINT
3 class PPoint
4 {
5 double x,y;//直角坐标或极坐标
6 public:
7 PPoint(double ix,double iy);//设置坐标
8 double xOffset();//设置轴分量x
9 double yOffset();//设置y轴分量
10 double angle();//极坐标弧角
11 double radius();//极坐标半径
12 };
13 #endif//HEADER_PPOINT
14 //---------------------------------------
15 #include"ppoint.h"
16 #include<iostream>
17 using namespace std;
18 int main()
19 {
20 for(double x,y;cout<<"Enter x and y:\n"&&cin>>x>>y&&x>=0;)//
21 {
22 PPoint p(x,y);
23 cout<<"angle="<<p.angle()<<",radius="<<p.radius()<<",xOffset="<<p.xOffset()<<",yOffset"<<p.yOffset()<<"\n";
24 }
25 }
26 //-------------------------------
27 #include"ppoint.h"
28 #include<cmath>
29 using namespace std;
30 PPoint::PPoint(double ix,double iy)
31 {
32 x=ix,y=iy;
33 }
34 double PPoint::xOffset()
35 {
36 return x;
37 }
38 double PPoint::yOffset()
39 {
40 return y;
41 }
42 double PPoint::angle()
43 {
44 return (180/3.14159)*atan2(y,x);//atan2得到的是弧度
45 }
46 double PPoint::radius()
47 {
48 return sqrt(x*x+y*y);
49 }