摘要:該文利用Excel2007中的VBA編程平臺, 設計與實現學生成績管理系統,分別從系統功能設計、模塊設計、EXCEL2007數據表設計和VBA編程4方面來闡述。
關鍵詞:EXCEL2007;VBA編程;成績管理
中圖分類號:TP317文獻標識碼:A文章編號:1009-3044(2010)05-1128-02
The Design and Realization of students' Result Management System Based on EXCEL2007 VBA
LI Li-min
Abstract: This thesis designed and realized the students’ result Management SystembyVBA programming platform in Excel2007, separately elaborated through function design, modular design, Excel2007 table design and VBA programming.
Key words: EXCEL2007; VBA programming; students' result management
VBA(Visual Basic For Application)是非常流行的應用程序開發語言VASUAL BASIC 的子集,VBA簡單易學,但功能強大,可以寄生于已有的應用程序,如在EXCEL 、WORD、ACCESS、 OUTLOOK、 FOXPRO、 POWERPOINT 中都可用VBA拓展這些應用程序的功能。Excel 2007是一款功能強大的辦公軟件,利用該軟件可以完成信息保存、數據計算、數據分析、信息動態發布等功能;同時,它還是一個開放的平臺,即允許用戶使用VBA語言進行二次開發,所以把EXCEL2007與VBA結合開發學生成績管理系統是一個很好的選擇。
1 系統設計
設計思想:在已制作好的EXCEL原始表中插入VBA的按鈕控件,再將EXCEL表查詢統計數據時所需要的公式全部寫入按鈕控件的后臺代碼框中,以達到用按鈕控件來計算公式的目的。
1.1 功能分析
通過深入的調查研究,確定本系統的使用對象是管理人員,任課教師和學生,各自具有的需求分析如下:
1)學生用戶應具有查詢自己的成績及成績排名功能。
2)教師用戶應具有錄入學生的平時作業成績,期中考試成績,期末考試成績,能查詢出任課班級的成績,能統計出平均成績,及格率,及格人數,各成績段的分布情況,查詢統計打印相關信息等功能。
3)管理人員應可以把學生名冊導入到成績表格中,可以修改學生的成績,添加修改刪除用戶的權限,設定用戶的權限,查詢統計打印相關信息等。
此外,為了保證系統安全,系統必須具有用戶登錄驗證功能,只有本系統的用戶才能使用本系統。
根據上面的分析,可以設計出系統的數據流程圖1所示。
1.2 系統模塊的設計
針對上述的功能設計,設計的系統界面如圖2所示。
1)用戶登錄:軟件運行后,首先出現用戶登錄窗口,只有輸入合法的用戶名和密碼后, 才能進入本系統,否則,不能進入系統,系統根據用戶的權限(管理員、教師和學生三級權限)給予相應的操作窗口。
2)期末成績輸入:總成績由平時成績、期中考試成績(或實驗成績)和期末成績3部分組成,這3部分所占的比例可以在錄入頁面設置,默認為平時成績占15%,期中考試成績(或實驗成績)占15%,期末成績占70%;其中,平時成績和期中考試成績從平時成績表及期中考試表中編程獲得,期末成績需要錄入,錄入完成后,利用EXCEL的SUM函數自動計算出期末總成績,教師按“提交”按鈕后,教師就不能再修改成績了。
3)成績修改:教師錄入成績后,按“提交”按鈕后,成績己經提交存檔,如需修改,則必須經過一定的審批手續,授予一定的權限,而且,必須由系統管理員進行,修改時間及相關的理由要有記錄。
4)查詢:提供多樣化的查詢方式,學生可以查詢自己的所有成績,或指定學期的成績,還可以查詢自己的成績排名,教師可以查詢所任課程的成績,管理員可以查詢所有的成績。
5)統計:根據錄入的成績,可以統計出平均分數,及格率,最高分數,最低分數及各分數段的分布情況,可供教師進行考試質量分析。
6)生成名冊:由系統管理員根據開課單從班級名冊中導入學生的學號,姓名等信息。
7)系統維護:對用戶進行權限分配和使用資源分配,還提供用戶修改密碼等功能。
2 Excel 2007 數據表格設計
表格是Excel的基礎,只有將表格框架搭建起來,才能完成子模塊的編輯、實施。為方便數據的維護及數據的有效擴充,采用Excel創建工作表,并使用Excel內嵌的VBA編輯宏,對表格進行處理,使操作簡便、快捷。下面介紹幾個主要的表格的設計。
1)用戶表: (姓名、密碼、權限、備注);
2)學生分數表:(課程編碼、課程名稱、任課教師、上課班級、開課學期、考核方式、課程性質、課程類別、學分、學時、學生學號、學生學號姓名、平時成績、期中成績(實驗成績)、期末成績、總成績、提交標記、備注);
3)作業成績表:(課程編碼、課程名稱、任課教師、上課班級、開課學期、考核方式、課程性質、課程類別、學分、學時、學生學號、學生學號姓名、作業序號、分數、備注)。
4)成績分布表:應考人數,缺考人數,100-90分人數,89-80分人數,79-70分人數,69-60人數,59分及其以下人數,平均分。
3 VBA編程
VBA是通過對象來操作和控制Excel,操作對象有Excel程序(Application對象)、工作薄(Workbook對象),Range對象,工作表(Worksheet對象)或其中的單元格(Cell對象),本系統的VBA編程主要是對EXCEL進行相關的操作控制,由于篇幅有限,本文主要介紹登陸模塊和學生查詢模塊程序的設計。
3.1 登陸模塊
圖3為登陸窗口。
登陸按鈕事件:
Private Sub CommandButton1_Click()
If TextBox1.Text = \"\" Or TextBox2.Text = \"\" Then
MsgBox \"請填寫齊全\", 1 + 64, \"系統登錄\"
TextBox2.SetFocus
ElseIf CheckPassword(TextBox1) = TextBox2.Text Then
Unload Me
MsgBox TextBox1.Text \"你好!歡迎你進入本系統\", 1 + 64, \"歡迎\"
Application.Visible = True
Worksheets(\"基于EXCEL與VBA的學生成績管理系統主界面\").Visible = True
Worksheets(\"基于EXCEL與VBA的學生成績管理系統主界面\").Activate
Else
MsgBox \"登錄密碼錯誤,請重新輸入\"
End If
End Sub
其中,函數CheckPassword的功能是根據用戶名查詢出相應的密碼。
Function CheckPassword(obj1 As Object)
Dim iRow As Integer
iRow = Sheets(\"登錄界面后臺數據\").Cells.Find(obj1.Text).Row
CheckPassword = Sheets(\"登錄界面后臺數據\").Cells(iRow, 2)
End Function
3.2 成績查詢模塊
成績查詢可以按照學生學號,姓名,班級,學科名稱來進行查詢,下面列舉說明學生查詢模塊按姓名和學號查詢的程序。查詢按鈕的事件代碼如下:
Private Sub CommandButton1_Click()
Dim TempY As Integer
TempY = 3
If (Trim(TextBox1.Text) <> \"\") Then
While (Not IsEmpty(Sheets(\"學生分數表\").Cells(TempY, 1).Value))
If (TextBox1.Text = Sheets(\"學生分數表\").Cells(TempY, 1).Value) Then
Sheets(\"學生分數表\").Select
Sheets(\"學生分數表\").Range(\"A\" CStr(TempY) \":J\" CStr(TempY)).Select
End If
TempY = TempY + 1
Wend
ElseIf (Trim(TextBox2.Text) <> \"\") Then
While (Not IsEmpty(Sheets(\"學生分數表\").Cells(TempY, 1).Value))
If (TextBox2.Text = Sheets(\"學生分數表\").Cells(TempY, 2).Value) Then
Sheets(\"學生分數表\").Select
Sheets(\"學生分數表\").Range(\"A\" CStr(TempY) \":J\" CStr(TempY)).Select
End If
TempY = TempY + 1
Wend
Else
MsgBox \"請輸入查詢條件\", vbOKOnly, \"提示\"
End If
End Sub
4 結束語
本文根據學校的實際需要用簡單易用的EXCEL2007 VBA進行設計和開發了學生成績管理系,切合實際。系統用戶界面友好,功能強大,安全性好,通用性能好,實用性強,可以對學生成績進行高效的管理,以便全面地掌握學生的整體學習情況,可以將一些重復性的工作簡化,降低學校的管理成本,提高效率。
參考文獻:
[1] 格林.Excel 2007 VBA參考大全[M].北京:人民郵電出版社,2009.
[2] 魏汪洋.Excel 2007 VBA高級編程寶典[M].北京:電子工業出版社,2009.
[3] 江高舉.Excel2007 VBA入門與范例精講[M].北京:科學出版社,2008.
[4] 張強,劉飚.Excel 2007與VBA編程從入門到精通[M].北京:電子工業出版社,2008.