首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C 語言學生成績管理系統:完整實現與功能演示

     編輯:關於C語言

系統概覽

基於 C 語言實現的控制台學生成績管理系統,採用文件持久化存儲,提供完整的用戶認證、學生信息增刪改查、成績統計排序等功能。開發環境:Windows,GCC 編譯器。

核心數據結構

typedef struct {
    char id[20];
    char name[20];
    float score;
} Student;

typedef struct {
    char userName[20];
    char userPassword[20];
} UserInfo;

主要功能模塊

1. 用戶認證系統

  • 註冊:輸入用戶名/密碼,寫入 user.dat,防止重複用戶名。
  • 登入:最多 3 次嘗試機會,驗證成功進入主選單,失敗退出程式。

2. 學生信息管理

  • 錄入:輸入學號、姓名、成績(0-100 驗證),學號唯一性檢查,寫入 student.dat。
  • 查詢:按學號精確查詢,顯示單條記錄。
  • 修改:按學號定位,修改姓名與成績,覆寫文件。
  • 刪除:按學號刪除,陣列前移填補空位,重寫文件。
  • 列表:讀取所有記錄並格式化顯示。

3. 成績統計與排序

  • 氣泡排序按成績降序排列。
  • 格式化輸出學號、姓名、成績對齊顯示。

關鍵技術點

文件操作模式

// 讀取
FILE* fp = fopen("student.dat", "rb");
while (fread(&stu, sizeof(Student), 1, fp) == 1) { ... }

// 寫入(覆寫模式確保數據一致性)
FILE* fp = fopen("student.dat", "wb");
for (i = 0; i < count; i++) fwrite(&stu[i], sizeof(Student), 1, fp);

控制台交互設計

  • 使用 system("cls") 清屏(Windows 專用)。
  • 選單驅動:switch 分發功能,do-while 循環主選單。
  • 輸入緩衝處理:getchar() 吸收換行符,避免 scanf 跳過輸入。

安全性考量

  • 密碼明文存儲(教學演示,生產環境應加密)。
  • 學號唯一性約束防止數據重複。
  • 成績範圍驗證(0-100)保證數據合法性。

運行截圖展示

登入介面
主選單
學生錄入
成績排序
查詢結果

原始碼獲取

完整源碼可從以下地址下載:
https://files.cnblogs.com/IAmBetter/DeleteEverything.rar

擴展建議

  1. 引入 SQLite 替代平面文件,支援並發與複雜查詢。
  2. 增加管理員/學生雙角色權限體系。
  3. 實現密碼哈希存儲(如 bcrypt)。
  4. 移植至跨平台 GUI 框架(Qt/GTK)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved