李桂珍
(新疆農業職業技術學院,新疆昌吉,831100)
隨著學校規模的不斷擴大,各院校專業、班級、學生的數量急劇增加,有關學生成績的各種信息也是成倍增加。為了改變學生成績管理的不便以及繁瑣的工作量,節省教學資源,提高工作效率,開發一個學生成績管理系統是很有必要的。本系統從實際需求分析出發,利用C語言編寫。
本項目采用模塊化的程序設計方法,將大的任務按照一定的原則分為多個小人物,然后分別設計各個小任務。小任務對應的模塊之間相對獨立且相關。使用模塊化層次結構圖來分析其任務的劃分。
本項目使用大量的數組結構,由九大模塊組成。主要包括顯示開發團隊信息、密碼驗證登錄、學生成績錄入、計算總分、計算平均值、等級評定、查找修改成績、成績排序以及系統退出功能。
(1)顯示開發團隊信息模塊:主要利用輸出函數打印設計好的開發團隊信息。
(2)密碼驗證登錄模塊:密碼設定為一個字符串,輸入正確進入系統主菜單;允許有3次輸入機會,如果全部輸入錯誤,提示系統退出。
(3)學生成績錄入模塊:可以先輸入學生人數,根據輸入的學生說完成學生基本信息和成績信息的錄入,并可以顯示輸出。
(4)計算總分模塊:可以完成每名學生所有科目成績總分的計算并輸出。
(5)計算平均值模塊:可以完成每名學生所有科目成績平均分的計算并輸出。
(6)等級評定模塊:可以根據學生平均分對學生成績劃分不及格、及格、良好、優秀等幾個等級的劃分并輸出顯示。
(7)查找修改成績模塊:可以根據輸入的學號查找是否系統中存在該名學生信息。如果存在可以修改學生成績信息并輸出;如果不存在則進行信息提示。
(8)成績排序模塊:可以根據學生各科目的總分進行排序輸出。
(9)系統退出模塊:可以再操作完成后退出系統。

圖1 系統功能結構圖
(1)數據結構設計
利用結構體數組將學生基本資料和成績進行存放。以下以學生四門課成績為例,定義如下:

運用該結構體程序,即可將從鍵盤輸入的學生基本信息和4門課成績信息存儲在學生成績管理系統中,以便進行后面的相關操作。
(2)函數設計
本項目一共由10個函數構成,如下:



(1)點擊系統運行,首先啟動的界面顯示開發者團隊信息,并提示輸入密碼:

圖3 系統首界面
(2)成功登錄界面
初始密碼為123456,輸入錯誤有3次輸入機會,輸入成功顯示系統主菜單:

圖4 主菜單界面
(3)選擇0-6菜單項,可以完成學生成績管理系統系統退出、錄入成績、計算總分、計算平均分、等級評定、成績修改、成績排序功能。
選擇0:可以退出系統;
選擇1:可以輸入學生人數,并完成指定學生人數成績輸入。成績可進行[0,100]的驗證。
選擇2、3:相應進入計算總分和計算平均分界面。首先判斷學生人數是否為0。如果人數為0,先提示輸入學生人數,然后調用錄入成績模塊進行學生成績錄入,然后計算總分和平均分。
選擇4:進入成績評定界面。首先判斷學生人數是否為0。如果人數為0,先提示輸入學生人數,然后根據每名學生的平均分給出相應的成績等級認定(包括不及格、及格、中等、良好、優秀5個等級)。
選擇5:進入成績修改界面。首先輸入要修改的學生學號,利用循環在學生系統中查找該名學生。如果找不到會給出相應提示,找到后會先輸出該名學生修改前成績,然后提示輸入要修改的成績,并打印輸出修改后的成績。
選擇6:進入成績排序界面。首先輸出原系統中所有學生的成績,然后根據冒泡排序進行排序,并輸出根據總分從高到低排好序的學生成績。
運行界面如圖5所示。

圖5 成績處理界面
本文利用C語言設計并完成了一個學生成績管理系統程序,經測試該程序運行界面良好,可操作性強,到達了最初設計的目的。最終將該系統采取項目制教學方法應用到C語言程序設計課程中,通過做中學方式引入相關知識點講解,使學生對所學知識點更加容易理解,極大調動了學生的學習積極性,培養了學生的創新、自主學習能力和團隊協作能力,取得了良好的教學效果。