⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xflmoon.cpp

📁 这是C++数值算法(第二版)的源代码,其中包含了目前一些比较常用的数值计算的算法.
💻 CPP
字号:
#include <string>
#include <iostream>
#include <iomanip>
#include "nr.h"
using namespace std;

// Driver for routine flmoon

int main(void)
{
        const DP ZON=-5.0;
        const string phase[]={"new moon","first quarter",
          "full moon","last quarter"};
        int i,i1,i2,i3,id,im,iy,j1,j2,n,nph=2;
        DP timzon=ZON/24.0,frac,secs;

        cout << "Date of the next few phases of the moon" << endl;
        cout << "Enter today\'s date (e.g. 12 15 2001):  ";
        cin >> im >> id >> iy;
        cin.get();
        // Approximate number of full moons since january 1900
        n=int(12.37*(iy-1900+((im-0.5)/12.0)));
        j1=NR::julday(im,id,iy);
        NR::flmoon(n,nph,j2,frac);
        n += int((j1-j2)/29.53 + (j1 >= j2 ? 0.5 : -0.5));
        cout << endl << setw(10) << "date" << setw(20) << "time(EST)";
        cout << setw(10) << "phase" << endl << endl;
        for (i=0;i < 20;i++) {
          NR::flmoon(n,nph,j2,frac);
          frac=24.0*(frac+timzon);
          if (frac < 0.0) {
            --j2;
            frac += 24.0;
          }
          if (frac > 12.0) {
            ++j2;
            frac -= 12.0;
          } else
            frac += 12.0;
            i1=int(frac);
            secs=3600.0*(frac-i1);
            i2=int(secs/60.0);
            i3=int(secs-60*i2+0.5);
            NR::caldat(j2,im,id,iy);
            cout << setw(5) << im << setw(4) << id << setw(6) << iy;
            cout << setw(8) << i1 << ":" << setw(2) << i2 << ":";
            cout << setw(2) << i3 << "      " << phase[nph] << endl;
            if (nph == 3) {
              nph=0;
              ++n;
            } else
              ++nph;
        }
        return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -