Advertisement

C++ primer plus 学习笔记(第九章)

阅读量:

1 编写头文件及使用
头文件

复制代码
    // coordin.h -- structure templates and function prototypes
    // structure templates
    #ifndef COORDIN_H_
    #define COORDIN_H_
    struct polar
    {
    double distance;    // distance from origin
    double angle;        // direction from origin
    };
    struct rect
    {
    double x;        // horizontal distance from origin
    double y;        // vertical distance from origin
    };
    // prototypes
    polar rect_to_polar(rect xypos);
    void show_polar(polar dapos); 
    #endif

函数文件

复制代码
    // file2.cpp -- contains functions called in file1.cpp
    #include <iostream>
    #include <cmath>
    #include "coordin.h" // structure templates, function prototypes
    // convert rectangular to polar coordinates
    polar rect_to_polar(rect xypos)
    {
    using namespace std;
    polar answer;
    answer.distance =
        sqrt( xypos.x * xypos.x + xypos.y * xypos.y);
    answer.angle = atan2(xypos.y, xypos.x);
    return answer;      // returns a polar structure
    }
    // show polar coordinates, converting angle to degrees
    void show_polar (polar dapos)
    {
    using namespace std;
    const double Rad_to_deg = 57.29577951;
    cout << "distance = " << dapos.distance;
    cout << ", angle = " << dapos.angle * Rad_to_deg;
    cout << " degrees\n";
    }

主函数:

复制代码
    // file1.cpp -- example of a three-file program
    #include <iostream>
    #include "coordin.h" // structure templates, function prototypes
    using namespace std;
    int main()
    {
    rect rplace;
    polar pplace;
    cout << "Enter the x and y values: ";
    while (cin >> rplace.x >> rplace.y)  // slick use of cin
    {
        pplace = rect_to_polar(rplace);
        show_polar(pplace);
        cout << "Next two numbers (q to quit): ";
    }
    cout << "Bye!\n";
    // keep window open in MSVC++
    /*
    cin.clear();
    while (cin.get() != '\n')
        continue;
    cin.get();
    */
    return 0; 
    }

全部评论 (0)

还没有任何评论哟~