C++學生資訊管理系統(檔案版)原始碼下載、原始碼解析和設計思路

2020-07-16 10:04:44
在《C++ 學生資訊管理系統演示和說明(檔案版)》一節中,我們對學生資訊管理系統進行介紹和演示,本節來分析一下它的原始碼。

C++ 版學生資訊管理系統原始碼下載地址:https://pan.baidu.com/s/19at35v9PZPRpC5-Wi3s1jw 提取碼:q7x4

各位讀者可先將原始碼下載下來瀏覽一遍,自行嘗試梳理程式脈絡,做到心中有數。

整體設計思路

持久化儲存資料的前提是將資料寫入磁碟中,本程式也不例外,我們會將學生資訊最終都儲存到檔案中。當增加、刪除、修改學生資訊時,我們也應該對檔案做出同樣的操作(這就是此專案的重點):
  • 如何在檔案中插入資料;
  • 如何刪除檔案中的部分資料;
  • 如何修改檔案中的資料。

關鍵知識點

模組化程式設計

本專案的程式碼較多,總共約 400 行,要分門別類、有規劃地放到不同的原始檔中,即所謂的模組化程式設計(也稱為多檔案程式設計)。

同 C 語言類似,C++ 模組化程式設計在 .cpp 檔案(C 語言中是.c)中定義函數,在 .h 檔案( C 語言也是.h)中宣告函數和類。

檔案操作

本專案中需要將學生資訊儲存在檔案中,其中要解決的最關鍵的問題是如何在檔案的中間插入、刪除、修改資料,以及怎樣在檔案中定位特定的學生資訊。

由於檔案中學生資訊採用的是順序儲存,也就是將資訊依次儲存在檔案中。這種儲存方式有利於檢索資料,但不利於資料的插入和刪除和修改。

本專案中實現在檔案中刪除新學生資訊的思路是:建立一個全新的空檔案,將除此學生資訊外的其他所有學生資訊依次拷貝到新檔案中,然後將此檔案內容全部清空,最後再將新建立檔案中的所有資料移至原檔案中。

同樣,修改檔案中特定學生資訊的思路也是如此,這裡不再過多贅述。

使用自定義名稱空間

我們知道,C++ 將類、函數、宏等都統一納入了 std 名稱空間。同樣,本專案中由我們自己編寫程式碼實現的類、函數、宏等也應該放在我們自定義的名稱空間中。

由於 C++ 命令空間的基礎知識請大家閱讀《C++名稱空間》一節了解詳情。

程式的整體架構

整個專案分為 5 檔案,包括 2 個 .h 檔案、2 個 .cpp 檔案以及 main.cpp 檔案:
  1. main.cpp 是主檔案,包含主函數 main()。
  2. Student.h 和 Student.cpp 是定義學生類及方法實現的檔案。
  3. stuFile.h 和 stuFile.cpp 是實現對學生資訊進行增刪改查的檔案。