開發一套基於控制台的學生學籍管理系統,實現學生資料的增刪改查、課程成績管理、統計報表等核心功能,採用 C++ 面向對象設計,資料持久化至本地檔案。
| 模組 | 功能點 |
|---|---|
| 學生管理 | 新增/刪除/修改/查詢學生(學號、姓名、性別、生日、班級、聯絡方式) |
| 課程管理 | 新增/刪除/修改/查詢課程(課程號、名稱、學分、授課教師、上課時間地點) |
| 選課管理 | 學生選課/退選、查詢選課清單、衝突檢測、容量限制 |
| 成績管理 | 錄入/修改/查詢成績、計算 GPA、排名、不及格名單 |
| 統計報表 | 班級平均分、課程分佈、學生綜合排名、導出 CSV |
| 資料持久化 | 啟動載入、退出保存、支援二進位/文字格式、備份還原 |
// 實體類
class Student { string id, name, gender, clazz; Date dob; string phone; };
class Course { string id, name, teacher; int credit; TimeSlot slot; };
class Grade { string stuId, courseId; double score; };
// 管理類(單例或服務層)
class StudentService {
map students; // 學號索引
void load(); void save();
bool add(Student); bool remove(id); bool update(Student);
Student* find(id); vector findByClass(clazz);
};
// CourseService, GradeService 類似
// 主控制器
class Application {
StudentService stuSvc;
CourseService couSvc;
GradeService grdSvc;
void runMainMenu();
void runStudentMenu();
// ...
};
教學作業建議先用 CSV 實現,後期可遷移至 SQLite。
student_system/ ├── CMakeLists.txt ├── src/ │ ├── main.cpp │ ├── model/ # 實體類 │ ├── service/ # 業務邏輯 │ ├── dao/ # 資料存取 │ └── ui/ # 控制台介面 ├── data/ # 資料檔 ├── test/ # 單元測試 └── docs/ # 設計文檔