现在的位置: 首页 > 综合 > 正文

第六周实验报告(三)

2013年09月10日 ⁄ 综合 ⁄ 共 1720字 ⁄ 字号 评论关闭
03.#include<iostream>  
04.#include<Cmath>  
05.using namespace std;  
06.  
07.enum SymmetricStyle {axisx, axisy, point};    //分别表示按x轴, y轴, 原点对称  
08.class CPoint  
09.{  
10.private:  
11.    double x;      // 横坐标  
12.    double y;      // 纵坐标  
13.public:  
14.    CPoint(double xx=0, double yy=0);  
15.    double Distance(CPoint p) const;       // 两点之间的距离(一点是当前点,另一点为参数p)  
16.    double Distance0() const;              // 到原点的距离  
17.    CPoint SymmetricAxis(SymmetricStyle style) const;        // 返回对称点  
18.    void input();        //以x,y 形式输入坐标点  
19.    void output();      //以(x,y) 形式输出坐标点  
20.};  
21.  
22.CPoint::CPoint(double xx, double yy):x(xx),y(yy){}  
23.  
24.int main()  
25.{  
26.    CPoint p1, p2;  
27.    p1.input();  
28.    p2.input();  
29.    p1.output();  
30.    p2.output();  
31.    cout << "两点间的距离是:" << p1.Distance(p2) << endl;  
32.    cout << "点到原点的距离是:" << p2.Distance0() << endl;  
33.    p1.SymmetricAxis(axisx);  
34.    p1.SymmetricAxis(axisy);  
35.    p1.SymmetricAxis(point);  
36.      
37.    system("pause");  
38.    return 0;  
39.}  
40.  
41.CPoint CPoint::SymmetricAxis(SymmetricStyle style) const  
42.{  
43.    switch(style)  
44.    {  
45.    case(axisx):  
46.        {  
47.            cout <<  "(" << x << "," << y << ")"<< "关于x轴对称点是: (" << x << "," << - y << ")" << endl;  
48.            break;  
49.        }  
50.    case(axisy):  
51.        {  
52.            cout <<  "(" << x << "," << y << ")" << "关于y轴对称点是: (" << - x << "," << y << ")" << endl;  
53.            break;  
54.        }  
55.    default:  
56.        {  
57.            cout <<  "(" << x << "," << y << ")"<< "关于原点对称点是: (" << - x << "," << - y << ")" << endl;  
58.            break;  
59.        }  
60.    }  
61.    return (x, y);  
62.}  
63.  
64.double CPoint::Distance(CPoint p) const   // 计算两点之间的距离(一点是当前点,另一点为参数p)  
65.{  
66.    double dis;  
67.    dis = sqrt((p.x - x) * (p.x - x) + (p.y - y) * (p.y - y));  
68.    return dis;  
69.}  
70.  
71.double CPoint::Distance0() const        //计算当前点到原点的距离  
72.{  
73.    double dis;  
74.    dis = sqrt(x * x + y * y);  
75.    return dis;  
76.}  
77.  
78.  
79.void CPoint::input()              //以x,y 形式输入坐标点  
80.{  
81.    char comma;  
82.    cout << "请输入点坐标,格式: x,y" << endl;  
83.      
84.    while(1)  
85.    {  
86.        cin >> x >> comma >> y ;  
87.        if(comma != ',')  
88.        {  
89.            cout << "格式不正确,请重新输入:" << endl;  
90.        }  
91.        else  
92.        {  
93.            break;  
94.        }  
95.    }  
96.}  
97.  
98.void CPoint::output()  
99.{  
100.    cout << "点(" << x << "," << y << ")" << endl;  
101.}  

抱歉!评论已关闭.