C++ 入門指南 4.01

練習 13.3 參考程式 - 練習設計費氏數列類別的標頭檔

exercise1303.h

// 宣告 FibonacciDemo 類別
class FibonacciDemo {
// 宣告 public 成員
public:
    FibonacciDemo(int);
    int get_value();
    void Compute(int);

// 宣告 private 成員
private:
    int value;
    void set_value(int);
};

/* 《程式語言教學誌》的範例程式
   http://kaiching.org/
   檔名:exercise1303.h
   功能:C++入門指南單元十三的練習
   作者:張凱慶 */

exercise1303.cxx

// 須引進標頭檔
#include "exercise1303.h"

// 實作建構函數
FibonacciDemo::FibonacciDemo(int n) {
    set_value(n);
}

// 實作 setter 成員函數
void FibonacciDemo::set_value(int p) {
    // 計算費氏數列的數字
    if (p == 1 || p == 2) {
        value = 1;
    }
    else {
        // 計算到 n 的費氏數列數字
        int n1 = 1;
        int n2 = 1;
        int n3;
        for (int i = 3; i <= p; i++) {
            n3 = n1 + n2;
            n1 = n2;
            n2 = n3;
        }

        value = n3;
    }
}

// 實作 getter 成員函數
int FibonacciDemo::get_value() {
    return value;
}

/* 《程式語言教學誌》的範例程式
   http://kaiching.org/
   檔名:exercise1303.cxx
   編譯:g++ exercise1303.cxx exercise1303_demo.cxx
   執行:./a.out
   功能:C++入門指南單元十三的練習
   作者:張凱慶 */

exercise1303_demo.cxx

// 引入標準程式庫中相關的輸入、輸出程式
#include <iostream>

// 須引進標頭檔
#include "exercise1303.h"

// std 為標準程式庫的命名空間
using namespace std;

int main(void) {
    // 接收使用者輸入
    int input;
    cin >> input;

    // 宣告建立 FibonacciDemo 物件
    FibonacciDemo a(input);

    // 印出使用者指定的階層數
    cout << endl;
    cout << a.get_value() << endl;
    cout << endl;

    // 最後回傳 0 給作業系統
    return 0;
}

/* 《程式語言教學誌》的範例程式
   http://kaiching.org/
   檔名:exercise1303_demo.cxx
   編譯:g++ exercise1303.cxx exercise1303_demo.cxx
   執行:./a.out
   功能:C++入門指南單元十三的練習
   作者:張凱慶 */
回到練習題目

上一頁 練習 13.2 參考程式 - 練習設計階層數類別的標頭檔
回 C++ 入門指南 4.01 目錄
下一頁 練習 13.4 參考程式 - 練習設計平面座標類別的標頭檔
回 C++ 教材
回程式語言教材首頁