婁青(浙江省寧海中學,浙江寧波315600)
基于ExcelVBA開發普通高中成績分析系統
婁青(浙江省寧海中學,浙江寧波315600)
文章介紹如何使用Excel VBA工具開發普通高中成績分析系統,并給出詳細代碼。關鍵詞:Excel;VBA;成績分析
在普通高中尤其重點高中對學生成績抓得很緊,學生每學期都要經歷數次月考和聯考,因此準確快速地分析考試成績就顯得尤為重要,微軟的Excel軟件是大家所熟悉和使用的,其操作方便及功能強大受人們歡迎,所以高中考試分析大多采用Excel軟件,基于此,本文介紹以Excel VBA為工具,開發普通高中成績分析系統。
普通高中成績分析系統各校使用略有差異,但其無非由成績輸入、總分計算、平均分計算、班名次計算、段名次計算和分數段計算等六大主要模塊組成。成績輸入模塊通過Excel軟件提供的復制和粘貼命令即可方便實現,平均分計算利用AVERAGE函數完成,我們著重介紹余下四大主要模塊過程。系統用到的主要工作表如下:“班級情況”工作表(存放系統參數)、“分數段”工作表(存放分數段)、“班0”工作表(存放全段成績)以及“班1”~“班n”工作表(存放1~n班的成績)。
該過程獲得參加考試的班級數、各班學生數和分數段參數等初始化數據,這些初始化參數位于工作表“班級情況”中,如圖1所示,根據工作表中行、列的位置,即可取得系統參數值,該過程代碼如下(代碼已經注釋):

圖1

該模塊進行各班學生總分計算,通過循環語句獲得各班成績工作表,如圖2所示(此為“班1”工作表前9名學生成績數據),將學生各科成績相加獲得總分,如圖3所示,其程序代碼如下:

圖2


該模塊進行各班學生班名次排序計算,在該模塊中,利用循環語句獲得各班成績工作表,按照總分降序、學號升序的辦法進行工作表成績排序計算,并且相同總分相同名次,如圖3所示,該模塊代碼如下:


該模塊進行年級段的段名次排序計算,在該模塊中,先將各班學生成績復制到“班0”工作表中,如圖4所示(此為“班0”工作表進行計算后按總分降序排列前9名學生成績數據),對年級段學生成績進行總分降序、學號升序排列,按照相同總分相同名次計算段名次,利用循環語句,從“班0”工作表按照學號返回各班學生段名次,如圖3和圖4所示,其程序代碼如下:




該模塊進行各班分數段統計及計算,在該模塊中,首先獲取分數段參數中最高分、最低分、分數間距的值,如圖1所示(此為“班級情況”工作表),利用以上參數進行循環運算,對各班進行各檔分數段計算及合計,結果如圖5所示(此為“分數段”工作表),該模塊代碼如下:



[1](美)杰克(Noel Jerke)等著.VisualBasic 5開發人員指南[M].北京:機械工業出版社,1997.10.
(編輯:王天鵬)
TP391
B
1673-8454(2012)10-0076-04