在《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 檔案:
-
main.cpp 是主檔案,包含主函數 main()。
-
Student.h 和 Student.cpp 是定義學生類及方法實現的檔案。
-
stuFile.h 和 stuFile.cpp 是實現對學生資訊進行增刪改查的檔案。