?

畢業生成績單生成軟件的開發與應用

2017-03-22 12:59馬致明葉爾肯·加倫木漢趙晴阿卜杜熱
軟件工程 2017年1期
關鍵詞:軟件

馬致明 葉爾肯·加倫木漢 趙晴 阿卜杜熱伊木·圖爾蓀

摘 要:教務管理系統是高校必不可少的教學管理軟件,隨著需求的提升教務管理系統也在不斷地升級改造;因新舊系統數據庫的兼容性問題而存在的安全隱患,過渡期間一些高校同時有兩套教務管理系統在運行,兩個系統中的成績如何生成一張完整的畢業生成績單就成了問題。利用VBA編程手段把從新舊系統中導出的Excel成績表自動生成每個學生按學期分布的畢業生成績單,大大減輕了教務人員的工作負擔。文中介紹了有關方法和技術,以對遇到相同或相近問題的讀者有所啟示。

關鍵詞:畢業生成績單;生成;軟件;教務管理系統;Excel VBA

中圖分類號:TP311 文獻標識碼:A

1 引言(Introduction)

高校教務管理工作是高等教育中的一個極為重要的環節,是整個高校管理的核心和基礎[1]。隨著我國高等教育改革的不斷深化和學校辦學規模的不斷擴大,使得教學管理部門的任務也越來越重,面對種類繁多的數據和報表[2,3],手工處理方式已經很難跟上現代化管理的步伐[4]。因此,我國高校多年前就已采用教務管理系統開展教務管理工作,信息化和網絡化的管理模式使得管理手段更加先進、科學和高效。教務管理系統的功能主要包括學籍管理、教學計劃管理、開課管理、智能排課管理、選課管理、考務管理、成績管理、教材管理、實驗管理、畢業環節管理,以及教學質量監控等方面,涉及對學生從入學到畢業離校的全過程管理[5,6]。在這些管理功能中最為關鍵的是成績管理!學生能否畢業并獲得學位全得看成績,同時裝入檔案中的成績單既是學生大學期間分量最重的材料,也是用人單位最看重的一份檔案內容。

目前,我國高校的教學管理制度主要有學年制、學年學分制和完全學分制這三種,有些高校因教學管理制度的變化需要對已有的教務管理系統進行改造,還有一些高校因原有教務管理系統不能滿足教務管理的需要而要進行升級改造。新的教務管理系統啟用后,因新舊系統數據庫的兼容性問題而隱藏著一些安全隱患,為了系統的安全性和數據的可靠性,過渡期間一些高校有兩套教務管理系統同時在運行,新疆師范大學就是一例。

新疆師范大學教務管理系統于2012年開始處于新舊過渡期,因系統數據庫兼容性方面的原因,從舊系統導入新系統的學生成績出現了異常!出于對學生成績安全性和可靠性考慮,同一個學生的成績便出現在兩個不同的教務管理系統中:新系統啟用前的成績數據在舊系統中,新系統啟用后的成績數據在新系統中。這批學生畢業時存入到學生檔案中的成績單如何打印就成了問題,如果在兩個系統中分別打印的話,一個學生將有兩個成績單,這種“兩張皮”的成績單是極不正常的!如果讓教務管理者通過手工方式逐個學生地去粘貼數據,其工作量將極其龐大,而且出錯的概率也是極高的。

2 采取的對策(The strategy)

為了保持教務管理的嚴肅性和規范性,同時也為了維護學校的形象,我們決定自己開發一款軟件,以便從兩個系統中導出的Excel格式的學生成績表為依據,自動生成每一個學生的一張完整的成績單。

經過研究采用VBA編程手段是最為恰當和高效的。VBA是Visual Basic for Application的簡稱,是Microsoft對Office進行二次開發的工具,是VB程序設計語言的一個子集,VBA繼承了VB程序設計語言的主要功能,并支持對Office對象的引用和操作。利用VBA編程手段開發者可以在Office文檔中添加命令按鈕等控件作為用戶接口元素,通過這些控件Office文檔可以得到用戶的請求,并根據需求做出相應的響應[7]。在Excel中通過VBA編程手段可以訪問工作簿、工作表、單元格等Excel對象,還可以根據自己制定的模板工作表動態生成任意多個工作表。本軟件要生成的學生成績單的有關數據已經在Excel工作表中,只要按照相應的格式統一數據,設置好模板工作表,就可以借助VBA編程手段將Excel中的成績表按學生人數生成每一個學生的成績單,最后提交打印即可。

3 軟件相關信息的規劃(Relative software information planning)

3.1 成績工作表數據格式的設定

(1)字段的設定

成績工作表的首行為列標題,共有96個。其中A列為“序號”,B列為“姓名”,C列為“學號”,D列到CN列為“課程名稱”(共89列,按學期順序排列,如果沒有那么多的課程,后面列標題設為空白即可),CO列為學分績點之和,CP列為總學分,CQ列為平均學分績點數,CR列為排名。

(2)開課學期的設定

成績工作表的第二行為開課學期。在D列到CN列課程名稱的下面填寫開課學期的序號,有預科教育的班級共10個學期,序號值從1到10;沒有預科教育的班級共8個學期,序號值從1—8。

(3)課程學分的設定

成績工作表的第三行為課程學分。在第三行D列到CN列單元格中填寫對應課程名稱的學分數。

(4)學生成績的設定

成績工作表從第四行開始為學生的相關數據。其中,CO列的學分績點之和、CP列的總學分、CQ列的平均學分績點數和CR列的排名均由VBA代碼算出。

3.2 成績單模板工作表的設定

每個學生的成績單要生成一個格式相同的單獨的工作表,為此需要設定一個模板工作表,以填寫其中的固定信息和因人而異的成績信息等。

成績單模板工作表的數據區域設定在1到34行、A列-J列(共10列)。其中,第1行的10個單元格合并用來呈現成績單大標題,如“新疆師范大學學生成績登記表”;第2行用來顯示“學院”“專業”“班級”“學號”和“姓名”這5項信息;第3行將左右相鄰的兩個單元格合用于顯示奇數學期名;第18行將左右相鄰的兩個單元格合用于顯示偶數學期名;第4行和第19行各顯示5個奇數學期和偶數學期的“課程名稱”和“成績”;每個學期的課程最多為13門,在第5—17和20—32行中填寫;第33行用來顯示“平均分”“平均學分績點數”“排名”“審核簽字(章)”和公章單位;第34行的I列填寫表格打印日期。設置格式使成績單中的所有信息剛好在一頁A4紙頁面內,其中第1、2、33、34行均無表格線。具體格式可參見圖1中的成績單樣表。

4 軟件開發(Software development)

4.1 軟件結構設計

本軟件的原始界面只有兩個Excel工作表,一個是成績工作表Sheet1,另一個是成績單模板工作表Sheet2,兩個工作表均按照前面的格式要求進行設定。在成績工作表Sheet1中通過“控件工具箱”工具欄添加一個命令按鈕,并將其標題改為“生成成績單”。單擊此按鈕后先獲取成績單表頭等基本信息,然后按學生人數在此工作簿中生成學生成績單,最后呈現生成結果及打印成績單的提示。

4.2 軟件算法設計

單擊Sheet1工作表中“生成成績單”按鈕后先彈出一個對話框窗體,用來獲取學院名稱、專業名稱、班級名稱以及是否排名等信息;然后統計出Sheet1工作表中的學生人數,之后計算出每個學生的學分績點之和、總學分、平均學分績點數和學生排名這4項重要數據,并存放到Sheet1中的相應單元格;最后按學生人數自動生成相應個數的學生成績單工作表,每個工作表的標題是學生的序號,在生成每個學生成績單工作表的同時從成績工作表中提取相應學生的數據并填寫在對應成績單工作表中的相應單元格中。

4.3 關鍵問題的處理方法

(1)列號的計算

在Excel VBA中用區域對象來引用單元格,其方法是:Range(“單元格名稱”),其中單元格名稱由英語字母所組成的列號和阿拉伯數字所組成的行號構成,如D5、BH4等。如前所述,課程名稱及對應成績的列號的取值范圍是從D列到CN列,用循環控制的話列號L的取值范圍是4—92,算出L列所對應的一個或兩個字母所組成的列號名稱就成為關鍵,為此我們用一個自定義函數過程FindCol來返回L列所對應的列號名稱:

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)學生人數的統計

學生數據是在Sheet1工作表中的第4行開始的,B列存放的是學生姓名,只要學生姓名不空學生人數就增加1;若用H來統計學生人數,則代碼為:

Do Until IsEmpty(Sheet1.Range("B"&H+4))

H=H+1

Loop

(3)課程門數的統計

課程名稱數據是在Sheet1工作表中的第1行第4列開始的,只要課程名稱不空課程門數就增加1;若用L來統計課程門數,則代碼為:

Do Until IsEmpty(Sheet1.Range(FindCol(4+L)&1))

L=L+1

Loop

(4)成績單工作表的自動生成和數據的填寫

每個學生的成績單是以工作表Sheet2為成績單模板生成的,若共有H個學生,則生成成績單工作表的核心代碼是:

For r=1 To H'控制每個學生

'生成成績單工作表

Sheets("Sheet2").Select

Sheets("Sheet2").Copy After:=Sheets(2)

Sheets("Sheet2(2)").Select

Sheets("Sheet2(2)").Name=r '將添加的工作表改名為學生的序號

'填寫成績單中的相關數據

Sheets(Trim(Str(r))).Range("G2")=Sheet1.Range("C"&r+2)'學號

Sheets(Trim(Str(r))).Range("I2")=Sheet1.Range("B"&r+2)'姓名

…… '限于篇幅其他代碼省去

Next r

5 軟件的應用(Software application)

(1)軟件運行效果圖

圖1是由軟件自動生成24個學生的成績單后的界面圖,其中“學生排名”根據需要可以選填,也可以只填寫前10名。

(2)成績單打印

學生成績單生成后,單擊工作表標簽“1”,按住Shift鍵單擊最后一個工作表標簽,然后單擊工具欄中的“打印”按鈕即可一次打印所有學生的成績單。本打印方法在成績單生成后也已通過消息框提示給用戶。

(3)軟件使用情況

使用本軟件時,教務管理人員只需要從兩個教務管理系統中將學生成績數據導出,然后按班級粘貼到本Excel工作簿中,單擊“生成成績單”按鈕,全部學生成績單就可立即生成并打印。由本軟件生成的成績單不僅比教務管理系統中直接打印出的成績單美觀,而且還增加了平均成績、平均學分績點數和班級排名等功能。

本軟件運行穩定可靠,實用價值高,已在新疆師范大學2013屆、2014屆、2015屆所有本科畢業生和2016屆畢業生中的2011級學生中使用,四屆上萬名學生的成績單全部由本系統生成并打印。難以想像如果沒有本軟件,打印出的畢業生的成績單將會是什么模樣!本軟件的開發和應用為解決學校教務上遇到的困難和問題、提高教務管理的信息化水平發揮了重要的作用,也得到了學校領導和教務管理人員的高度評價。

6 結論(Conclusion)

本文就新舊教務管理系統數據庫的兼容性而產生的畢業生成績單生成問題進行了敘述,并采取了相應對策解決了有關的難題。但是我們也需要明確,在計算機技術與數據庫技術應用大發展的時代,數據庫安全研究必須全方位、分層次、立體式進行。孤立地、片面地、停滯地思路永遠無法解決數據庫安全的問題,只有通過不斷地改進和完善安全防范手段,才能提高數據的可靠性[8],也才能給用戶更好的體驗。

參考文獻(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模式相結合的高校教務管理系統[J].湖南人文科技學院學報,2007(6):42-44.

[5] 盧文昊,姚丹.高校教務管理系統[J].吉林廣播電視大學學報,2009(6):89-90.

[6] 王勝利,朱曉平.基于模塊化教學的教務管理信息系統重構研究[J].中國教育信息化,2014(23):57-58.

[7] 馬致明,等.巧用Excel制作帶音效的電腦搖獎程序[J].電腦開發與應用,2011(7):52-54.

[8] 陳松,孔琳俊.教務管理系統數據庫安全現狀及對策分析[J].軟件,2011(5):118-120.

作者簡介:

馬致明(1964-),男,碩士,教授.研究領域:計算機教育,軟件開發.

葉爾肯·加倫木漢(1964-),男,學士,講師.研究領域:物理、數學教育.

趙 晴(1990-),男,碩士生.研究領域:計算機應用技術.

阿卜杜熱伊木·圖爾蓀(1993-),男,本科生.研究領域:計算機科學與技術.

猜你喜歡
軟件
禪宗軟件
軟件對對碰
談軟件的破解與保護
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合