馬致明 葉爾肯·加倫木漢 趙晴 阿卜杜熱伊木·圖爾蓀
摘 要:教務(wù)管理系統(tǒng)是高校必不可少的教學(xué)管理軟件,隨著需求的提升教務(wù)管理系統(tǒng)也在不斷地升級改造;因新舊系統(tǒng)數(shù)據(jù)庫的兼容性問題而存在的安全隱患,過渡期間一些高校同時有兩套教務(wù)管理系統(tǒng)在運(yùn)行,兩個系統(tǒng)中的成績?nèi)绾紊梢粡埻暾漠厴I(yè)生成績單就成了問題。利用VBA編程手段把從新舊系統(tǒng)中導(dǎo)出的Excel成績表自動生成每個學(xué)生按學(xué)期分布的畢業(yè)生成績單,大大減輕了教務(wù)人員的工作負(fù)擔(dān)。文中介紹了有關(guān)方法和技術(shù),以對遇到相同或相近問題的讀者有所啟示。
關(guān)鍵詞:畢業(yè)生成績單;生成;軟件;教務(wù)管理系統(tǒng);Excel VBA
中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A
1 引言(Introduction)
高校教務(wù)管理工作是高等教育中的一個極為重要的環(huán)節(jié),是整個高校管理的核心和基礎(chǔ)[1]。隨著我國高等教育改革的不斷深化和學(xué)校辦學(xué)規(guī)模的不斷擴(kuò)大,使得教學(xué)管理部門的任務(wù)也越來越重,面對種類繁多的數(shù)據(jù)和報表[2,3],手工處理方式已經(jīng)很難跟上現(xiàn)代化管理的步伐[4]。因此,我國高校多年前就已采用教務(wù)管理系統(tǒng)開展教務(wù)管理工作,信息化和網(wǎng)絡(luò)化的管理模式使得管理手段更加先進(jìn)、科學(xué)和高效。教務(wù)管理系統(tǒng)的功能主要包括學(xué)籍管理、教學(xué)計劃管理、開課管理、智能排課管理、選課管理、考務(wù)管理、成績管理、教材管理、實(shí)驗(yàn)管理、畢業(yè)環(huán)節(jié)管理,以及教學(xué)質(zhì)量監(jiān)控等方面,涉及對學(xué)生從入學(xué)到畢業(yè)離校的全過程管理[5,6]。在這些管理功能中最為關(guān)鍵的是成績管理!學(xué)生能否畢業(yè)并獲得學(xué)位全得看成績,同時裝入檔案中的成績單既是學(xué)生大學(xué)期間分量最重的材料,也是用人單位最看重的一份檔案內(nèi)容。
目前,我國高校的教學(xué)管理制度主要有學(xué)年制、學(xué)年學(xué)分制和完全學(xué)分制這三種,有些高校因教學(xué)管理制度的變化需要對已有的教務(wù)管理系統(tǒng)進(jìn)行改造,還有一些高校因原有教務(wù)管理系統(tǒng)不能滿足教務(wù)管理的需要而要進(jìn)行升級改造。新的教務(wù)管理系統(tǒng)啟用后,因新舊系統(tǒng)數(shù)據(jù)庫的兼容性問題而隱藏著一些安全隱患,為了系統(tǒng)的安全性和數(shù)據(jù)的可靠性,過渡期間一些高校有兩套教務(wù)管理系統(tǒng)同時在運(yùn)行,新疆師范大學(xué)就是一例。
新疆師范大學(xué)教務(wù)管理系統(tǒng)于2012年開始處于新舊過渡期,因系統(tǒng)數(shù)據(jù)庫兼容性方面的原因,從舊系統(tǒng)導(dǎo)入新系統(tǒng)的學(xué)生成績出現(xiàn)了異常!出于對學(xué)生成績安全性和可靠性考慮,同一個學(xué)生的成績便出現(xiàn)在兩個不同的教務(wù)管理系統(tǒng)中:新系統(tǒng)啟用前的成績數(shù)據(jù)在舊系統(tǒng)中,新系統(tǒng)啟用后的成績數(shù)據(jù)在新系統(tǒng)中。這批學(xué)生畢業(yè)時存入到學(xué)生檔案中的成績單如何打印就成了問題,如果在兩個系統(tǒng)中分別打印的話,一個學(xué)生將有兩個成績單,這種“兩張皮”的成績單是極不正常的!如果讓教務(wù)管理者通過手工方式逐個學(xué)生地去粘貼數(shù)據(jù),其工作量將極其龐大,而且出錯的概率也是極高的。
2 采取的對策(The strategy)
為了保持教務(wù)管理的嚴(yán)肅性和規(guī)范性,同時也為了維護(hù)學(xué)校的形象,我們決定自己開發(fā)一款軟件,以便從兩個系統(tǒng)中導(dǎo)出的Excel格式的學(xué)生成績表為依據(jù),自動生成每一個學(xué)生的一張完整的成績單。
經(jīng)過研究采用VBA編程手段是最為恰當(dāng)和高效的。VBA是Visual Basic for Application的簡稱,是Microsoft對Office進(jìn)行二次開發(fā)的工具,是VB程序設(shè)計語言的一個子集,VBA繼承了VB程序設(shè)計語言的主要功能,并支持對Office對象的引用和操作。利用VBA編程手段開發(fā)者可以在Office文檔中添加命令按鈕等控件作為用戶接口元素,通過這些控件Office文檔可以得到用戶的請求,并根據(jù)需求做出相應(yīng)的響應(yīng)[7]。在Excel中通過VBA編程手段可以訪問工作簿、工作表、單元格等Excel對象,還可以根據(jù)自己制定的模板工作表動態(tài)生成任意多個工作表。本軟件要生成的學(xué)生成績單的有關(guān)數(shù)據(jù)已經(jīng)在Excel工作表中,只要按照相應(yīng)的格式統(tǒng)一數(shù)據(jù),設(shè)置好模板工作表,就可以借助VBA編程手段將Excel中的成績表按學(xué)生人數(shù)生成每一個學(xué)生的成績單,最后提交打印即可。
3 軟件相關(guān)信息的規(guī)劃(Relative software information planning)
3.1 成績工作表數(shù)據(jù)格式的設(shè)定
(1)字段的設(shè)定
成績工作表的首行為列標(biāo)題,共有96個。其中A列為“序號”,B列為“姓名”,C列為“學(xué)號”,D列到CN列為“課程名稱”(共89列,按學(xué)期順序排列,如果沒有那么多的課程,后面列標(biāo)題設(shè)為空白即可),CO列為學(xué)分績點(diǎn)之和,CP列為總學(xué)分,CQ列為平均學(xué)分績點(diǎn)數(shù),CR列為排名。
(2)開課學(xué)期的設(shè)定
成績工作表的第二行為開課學(xué)期。在D列到CN列課程名稱的下面填寫開課學(xué)期的序號,有預(yù)科教育的班級共10個學(xué)期,序號值從1到10;沒有預(yù)科教育的班級共8個學(xué)期,序號值從1—8。
(3)課程學(xué)分的設(shè)定
成績工作表的第三行為課程學(xué)分。在第三行D列到CN列單元格中填寫對應(yīng)課程名稱的學(xué)分?jǐn)?shù)。
(4)學(xué)生成績的設(shè)定
成績工作表從第四行開始為學(xué)生的相關(guān)數(shù)據(jù)。其中,CO列的學(xué)分績點(diǎn)之和、CP列的總學(xué)分、CQ列的平均學(xué)分績點(diǎn)數(shù)和CR列的排名均由VBA代碼算出。
3.2 成績單模板工作表的設(shè)定
每個學(xué)生的成績單要生成一個格式相同的單獨(dú)的工作表,為此需要設(shè)定一個模板工作表,以填寫其中的固定信息和因人而異的成績信息等。
成績單模板工作表的數(shù)據(jù)區(qū)域設(shè)定在1到34行、A列-J列(共10列)。其中,第1行的10個單元格合并用來呈現(xiàn)成績單大標(biāo)題,如“新疆師范大學(xué)學(xué)生成績登記表”;第2行用來顯示“學(xué)院”“專業(yè)”“班級”“學(xué)號”和“姓名”這5項(xiàng)信息;第3行將左右相鄰的兩個單元格合用于顯示奇數(shù)學(xué)期名;第18行將左右相鄰的兩個單元格合用于顯示偶數(shù)學(xué)期名;第4行和第19行各顯示5個奇數(shù)學(xué)期和偶數(shù)學(xué)期的“課程名稱”和“成績”;每個學(xué)期的課程最多為13門,在第5—17和20—32行中填寫;第33行用來顯示“平均分”“平均學(xué)分績點(diǎn)數(shù)”“排名”“審核簽字(章)”和公章單位;第34行的I列填寫表格打印日期。設(shè)置格式使成績單中的所有信息剛好在一頁A4紙頁面內(nèi),其中第1、2、33、34行均無表格線。具體格式可參見圖1中的成績單樣表。
4 軟件開發(fā)(Software development)
4.1 軟件結(jié)構(gòu)設(shè)計
本軟件的原始界面只有兩個Excel工作表,一個是成績工作表Sheet1,另一個是成績單模板工作表Sheet2,兩個工作表均按照前面的格式要求進(jìn)行設(shè)定。在成績工作表Sheet1中通過“控件工具箱”工具欄添加一個命令按鈕,并將其標(biāo)題改為“生成成績單”。單擊此按鈕后先獲取成績單表頭等基本信息,然后按學(xué)生人數(shù)在此工作簿中生成學(xué)生成績單,最后呈現(xiàn)生成結(jié)果及打印成績單的提示。
4.2 軟件算法設(shè)計
單擊Sheet1工作表中“生成成績單”按鈕后先彈出一個對話框窗體,用來獲取學(xué)院名稱、專業(yè)名稱、班級名稱以及是否排名等信息;然后統(tǒng)計出Sheet1工作表中的學(xué)生人數(shù),之后計算出每個學(xué)生的學(xué)分績點(diǎn)之和、總學(xué)分、平均學(xué)分績點(diǎn)數(shù)和學(xué)生排名這4項(xiàng)重要數(shù)據(jù),并存放到Sheet1中的相應(yīng)單元格;最后按學(xué)生人數(shù)自動生成相應(yīng)個數(shù)的學(xué)生成績單工作表,每個工作表的標(biāo)題是學(xué)生的序號,在生成每個學(xué)生成績單工作表的同時從成績工作表中提取相應(yīng)學(xué)生的數(shù)據(jù)并填寫在對應(yīng)成績單工作表中的相應(yīng)單元格中。
4.3 關(guān)鍵問題的處理方法
(1)列號的計算
在Excel VBA中用區(qū)域?qū)ο髞硪脝卧?,其方法是:Range(“單元格名稱”),其中單元格名稱由英語字母所組成的列號和阿拉伯?dāng)?shù)字所組成的行號構(gòu)成,如D5、BH4等。如前所述,課程名稱及對應(yīng)成績的列號的取值范圍是從D列到CN列,用循環(huán)控制的話列號L的取值范圍是4—92,算出L列所對應(yīng)的一個或兩個字母所組成的列號名稱就成為關(guān)鍵,為此我們用一個自定義函數(shù)過程FindCol來返回L列所對應(yīng)的列號名稱:
Function FindCol(L As Integer)As String
Select Case L
Case Is<=26
FindCol=Chr(64+L)
Case Is<=26*2
FindCol="A" &Chr(64+L-26)
Case Is<=26*3
FindCol="B" &Chr(64+L-26*2)
Case Is<=26*4
FindCol="C" &Chr(64+L-26*3)
End Select
End Function
(2)學(xué)生人數(shù)的統(tǒng)計
學(xué)生數(shù)據(jù)是在Sheet1工作表中的第4行開始的,B列存放的是學(xué)生姓名,只要學(xué)生姓名不空學(xué)生人數(shù)就增加1;若用H來統(tǒng)計學(xué)生人數(shù),則代碼為:
Do Until IsEmpty(Sheet1.Range("B"&H+4))
H=H+1
Loop
(3)課程門數(shù)的統(tǒng)計
課程名稱數(shù)據(jù)是在Sheet1工作表中的第1行第4列開始的,只要課程名稱不空課程門數(shù)就增加1;若用L來統(tǒng)計課程門數(shù),則代碼為:
Do Until IsEmpty(Sheet1.Range(FindCol(4+L)&1))
L=L+1
Loop
(4)成績單工作表的自動生成和數(shù)據(jù)的填寫
每個學(xué)生的成績單是以工作表Sheet2為成績單模板生成的,若共有H個學(xué)生,則生成成績單工作表的核心代碼是:
For r=1 To H'控制每個學(xué)生
'生成成績單工作表
Sheets("Sheet2").Select
Sheets("Sheet2").Copy After:=Sheets(2)
Sheets("Sheet2(2)").Select
Sheets("Sheet2(2)").Name=r '將添加的工作表改名為學(xué)生的序號
'填寫成績單中的相關(guān)數(shù)據(jù)
Sheets(Trim(Str(r))).Range("G2")=Sheet1.Range("C"&r+2)'學(xué)號
Sheets(Trim(Str(r))).Range("I2")=Sheet1.Range("B"&r+2)'姓名
…… '限于篇幅其他代碼省去
Next r
5 軟件的應(yīng)用(Software application)
(1)軟件運(yùn)行效果圖
圖1是由軟件自動生成24個學(xué)生的成績單后的界面圖,其中“學(xué)生排名”根據(jù)需要可以選填,也可以只填寫前10名。
(2)成績單打印
學(xué)生成績單生成后,單擊工作表標(biāo)簽“1”,按住Shift鍵單擊最后一個工作表標(biāo)簽,然后單擊工具欄中的“打印”按鈕即可一次打印所有學(xué)生的成績單。本打印方法在成績單生成后也已通過消息框提示給用戶。
(3)軟件使用情況
使用本軟件時,教務(wù)管理人員只需要從兩個教務(wù)管理系統(tǒng)中將學(xué)生成績數(shù)據(jù)導(dǎo)出,然后按班級粘貼到本Excel工作簿中,單擊“生成成績單”按鈕,全部學(xué)生成績單就可立即生成并打印。由本軟件生成的成績單不僅比教務(wù)管理系統(tǒng)中直接打印出的成績單美觀,而且還增加了平均成績、平均學(xué)分績點(diǎn)數(shù)和班級排名等功能。
本軟件運(yùn)行穩(wěn)定可靠,實(shí)用價值高,已在新疆師范大學(xué)2013屆、2014屆、2015屆所有本科畢業(yè)生和2016屆畢業(yè)生中的2011級學(xué)生中使用,四屆上萬名學(xué)生的成績單全部由本系統(tǒng)生成并打印。難以想像如果沒有本軟件,打印出的畢業(yè)生的成績單將會是什么模樣!本軟件的開發(fā)和應(yīng)用為解決學(xué)校教務(wù)上遇到的困難和問題、提高教務(wù)管理的信息化水平發(fā)揮了重要的作用,也得到了學(xué)校領(lǐng)導(dǎo)和教務(wù)管理人員的高度評價。
6 結(jié)論(Conclusion)
本文就新舊教務(wù)管理系統(tǒng)數(shù)據(jù)庫的兼容性而產(chǎn)生的畢業(yè)生成績單生成問題進(jìn)行了敘述,并采取了相應(yīng)對策解決了有關(guān)的難題。但是我們也需要明確,在計算機(jī)技術(shù)與數(shù)據(jù)庫技術(shù)應(yīng)用大發(fā)展的時代,數(shù)據(jù)庫安全研究必須全方位、分層次、立體式進(jìn)行。孤立地、片面地、停滯地思路永遠(yuǎn)無法解決數(shù)據(jù)庫安全的問題,只有通過不斷地改進(jìn)和完善安全防范手段,才能提高數(shù)據(jù)的可靠性[8],也才能給用戶更好的體驗(yàn)。
參考文獻(xiàn)(References)
[1] YueyuXu.Developing a Comprehensive Teaching EvaluationSystem for Foundation Courses with Enhanced Validityand Reliability[J].Educational Technology Research andDevelopment,2012(605):55-58.
[2] LEI Ming.College Teaching Quality Evaluation ModelandImplementation[J].Journal of Shenyang LigongUniversity,2015(01):87-94.
[3] Liu Q.Design and Implementation of Teaching ResourcePlatform under Flash Stream Media On-Demand Mode[C].2015 International Conference on Intelligent Transportation,BigData& Smart City(ICITBS).IEEE ComputerSociety,2015:278-281.
[4] 成偉,黃堅.基于C/S和B/S模式相結(jié)合的高校教務(wù)管理系統(tǒng)[J].湖南人文科技學(xué)院學(xué)報,2007(6):42-44.
[5] 盧文昊,姚丹.高校教務(wù)管理系統(tǒng)[J].吉林廣播電視大學(xué)學(xué)報,2009(6):89-90.
[6] 王勝利,朱曉平.基于模塊化教學(xué)的教務(wù)管理信息系統(tǒng)重構(gòu)研究[J].中國教育信息化,2014(23):57-58.
[7] 馬致明,等.巧用Excel制作帶音效的電腦搖獎程序[J].電腦開發(fā)與應(yīng)用,2011(7):52-54.
[8] 陳松,孔琳俊.教務(wù)管理系統(tǒng)數(shù)據(jù)庫安全現(xiàn)狀及對策分析[J].軟件,2011(5):118-120.
作者簡介:
馬致明(1964-),男,碩士,教授.研究領(lǐng)域:計算機(jī)教育,軟件開發(fā).
葉爾肯·加倫木漢(1964-),男,學(xué)士,講師.研究領(lǐng)域:物理、數(shù)學(xué)教育.
趙 晴(1990-),男,碩士生.研究領(lǐng)域:計算機(jī)應(yīng)用技術(shù).
阿卜杜熱伊木·圖爾蓀(1993-),男,本科生.研究領(lǐng)域:計算機(jī)科學(xué)與技術(shù).