1002 C++ 程式作業三 (due 101/04/09 24:00) :

The container ADT with C++ syntax

作業說明:

接續前一個作業, 這個作業希望大家使用這幾個星期學到的 C++ 各種語法, 讓上一個作業裡的物件在使用上更為簡潔一些, 主要的要求如下:

  1. 希望你從上一個作業開始改, 所以程式的基本功能和上一次作業的要求一樣
  2. 使用 類別 - class 的語法, 適當地運用 private 和 public 管制存取權限
  3. 你需要設計出四個類別 Container, AdjacencyMatrix, MinHeap, MinimumSpanningTree,

    其中 Container 和 MinHeap 的介面 (interface) 基本上在前兩個作業裡已經幾乎全部定義完了;

    AdjacencyMatrix 的用途你可以在 Prim 演算法中看到, 基本上要有讀檔案建出 AdjacencyMatrix 的介面 (建構元), 尋找某一個節點的第一個相鄰點, 下一個相鄰點的介面, 還要有銷毀的介面 (解構元), 最好也有列印整個 AdjacencyMatrix 的介面;

    MinimumSpanningTree 這個類別裡你需要設計如何記錄 MST 的資料, 需要有運用 Prim 演算法建構 MST 的介面, 需要有列印 MST 的介面
  4. 使用 new 和 delete 來取代 malloc 和 free, 使用 reference (more reference) 傳函式參數, 使用 const 成員函式
  5. 運用 assert 在各個類別裡面設計單元測試 unitTest (Lab 3-1 步驟十)

這個作業的測試資料基本上和上一次的相同

  1. data1.dat
  2. data2.dat
  3. data3.dat

參考執行結果

作業繳交注意事項

  1. 請於時限內 (101/04/09 星期一 24:00) 上傳程式檔案 (逾時無法上傳, 這次作業應該不會再延了, 再延就到期中考了), 上傳網頁
  2. 請運用 StarUML 繪製 類別圖 將影像匯入 word 報告檔中, 並且繳交 .uml 檔案
  3. 從這次作業開始, 報告裡面不需要列印完整的程式碼, 只需要列印那些你覺得解釋類別架構需要的定義, 或是解釋演算法需要的部份程式碼
  4. 請注意雖然在上次作業裡說這次應該不困難, 主要是指程式邏輯上沒有特別的困難, 可是因為你是第一次使用類別的語法, 第一次運用類別來封裝, 所以一定還是會遇見很多你沒有預期的問題, 設計上也會遇到一些觀念上不熟悉的東西, 拜託提早做啊!!!

C++ 程式設計課程 首頁

製作日期: 03/16/2012 by 丁培毅 (Pei-yih Ting)
E-mail: pyting@mail.ntou.edu.tw TEL: 02 24622192x6615
海洋大學 電機資訊學院 資訊工程系 Lagoon