婁青(浙江省寧海中學(xué),浙江寧波315600)
基于ExcelVBA開(kāi)發(fā)普通高中成績(jī)分析系統(tǒng)
婁青(浙江省寧海中學(xué),浙江寧波315600)
文章介紹如何使用Excel VBA工具開(kāi)發(fā)普通高中成績(jī)分析系統(tǒng),并給出詳細(xì)代碼。關(guān)鍵詞:Excel;VBA;成績(jī)分析
在普通高中尤其重點(diǎn)高中對(duì)學(xué)生成績(jī)抓得很緊,學(xué)生每學(xué)期都要經(jīng)歷數(shù)次月考和聯(lián)考,因此準(zhǔn)確快速地分析考試成績(jī)就顯得尤為重要,微軟的Excel軟件是大家所熟悉和使用的,其操作方便及功能強(qiáng)大受人們歡迎,所以高中考試分析大多采用Excel軟件,基于此,本文介紹以Excel VBA為工具,開(kāi)發(fā)普通高中成績(jī)分析系統(tǒng)。
普通高中成績(jī)分析系統(tǒng)各校使用略有差異,但其無(wú)非由成績(jī)輸入、總分計(jì)算、平均分計(jì)算、班名次計(jì)算、段名次計(jì)算和分?jǐn)?shù)段計(jì)算等六大主要模塊組成。成績(jī)輸入模塊通過(guò)Excel軟件提供的復(fù)制和粘貼命令即可方便實(shí)現(xiàn),平均分計(jì)算利用AVERAGE函數(shù)完成,我們著重介紹余下四大主要模塊過(guò)程。系統(tǒng)用到的主要工作表如下:“班級(jí)情況”工作表(存放系統(tǒng)參數(shù))、“分?jǐn)?shù)段”工作表(存放分?jǐn)?shù)段)、“班0”工作表(存放全段成績(jī))以及“班1”~“班n”工作表(存放1~n班的成績(jī))。
該過(guò)程獲得參加考試的班級(jí)數(shù)、各班學(xué)生數(shù)和分?jǐn)?shù)段參數(shù)等初始化數(shù)據(jù),這些初始化參數(shù)位于工作表“班級(jí)情況”中,如圖1所示,根據(jù)工作表中行、列的位置,即可取得系統(tǒng)參數(shù)值,該過(guò)程代碼如下(代碼已經(jīng)注釋?zhuān)?/p>
圖1
該模塊進(jìn)行各班學(xué)生總分計(jì)算,通過(guò)循環(huán)語(yǔ)句獲得各班成績(jī)工作表,如圖2所示(此為“班1”工作表前9名學(xué)生成績(jī)數(shù)據(jù)),將學(xué)生各科成績(jī)相加獲得總分,如圖3所示,其程序代碼如下:
圖2
該模塊進(jìn)行各班學(xué)生班名次排序計(jì)算,在該模塊中,利用循環(huán)語(yǔ)句獲得各班成績(jī)工作表,按照總分降序、學(xué)號(hào)升序的辦法進(jìn)行工作表成績(jī)排序計(jì)算,并且相同總分相同名次,如圖3所示,該模塊代碼如下:
該模塊進(jìn)行年級(jí)段的段名次排序計(jì)算,在該模塊中,先將各班學(xué)生成績(jī)復(fù)制到“班0”工作表中,如圖4所示(此為“班0”工作表進(jìn)行計(jì)算后按總分降序排列前9名學(xué)生成績(jī)數(shù)據(jù)),對(duì)年級(jí)段學(xué)生成績(jī)進(jìn)行總分降序、學(xué)號(hào)升序排列,按照相同總分相同名次計(jì)算段名次,利用循環(huán)語(yǔ)句,從“班0”工作表按照學(xué)號(hào)返回各班學(xué)生段名次,如圖3和圖4所示,其程序代碼如下:
該模塊進(jìn)行各班分?jǐn)?shù)段統(tǒng)計(jì)及計(jì)算,在該模塊中,首先獲取分?jǐn)?shù)段參數(shù)中最高分、最低分、分?jǐn)?shù)間距的值,如圖1所示(此為“班級(jí)情況”工作表),利用以上參數(shù)進(jìn)行循環(huán)運(yùn)算,對(duì)各班進(jìn)行各檔分?jǐn)?shù)段計(jì)算及合計(jì),結(jié)果如圖5所示(此為“分?jǐn)?shù)段”工作表),該模塊代碼如下:
[1](美)杰克(Noel Jerke)等著.VisualBasic 5開(kāi)發(fā)人員指南[M].北京:機(jī)械工業(yè)出版社,1997.10.
(編輯:王天鵬)
TP391
B
1673-8454(2012)10-0076-04