劉平
摘要:理論課程不僅能對實踐課程提供必要的指導,還對增強學生人文素質(zhì)、提高人才核心競爭力、提升可持續(xù)職業(yè)能力等至關(guān)重要。高職院校的學生文化基礎(chǔ)差,普遍對理論課程缺乏興趣。為提高學生學習興趣,設(shè)計并實訓了基于Visual Basic的信息系統(tǒng)——題目訓練器,使學生通過在計算機上答題,特別是針對錯得比較多的薄弱環(huán)節(jié),在得到反饋和解析基礎(chǔ)上反復(fù)訓練,達到熟記理論知識的目的。文章詳細地介紹了該系統(tǒng)的設(shè)計與實現(xiàn)過程。
關(guān)鍵詞:理論知識;訓練;反饋;信息系統(tǒng);數(shù)據(jù)庫
中圖分類號:TP311? ? ? ? 文獻標識碼:A
文章編號:1009-3044(2021)06-0099-04
Abstract: Theory Course not only can guide practical courses, but also is important to enhance the quality of humanity, improve core competitiveness and sustainable professional ability for students. For the students of higher vocational colleges, their cultural foundation is poor. So they have less interesting for theory course universally. To improve students interesting, the writer designed and realized information system—test question trainer。Students can answer questions on this system of computers repeatedly. Especially, they can get feedback of weak link which they always do wrong in real time. With repeated training, students can memorize the theoretical knowledge. The article introduces the design and implementation process of the information system in detail.
Key words: theory course;train;feedback;information system;database
理論課程和實踐課程是現(xiàn)代職業(yè)教育課程體系的兩大組成部分,理論課程與實踐課程是相輔相成的。只有在必要的理論指導下開展的實踐活動才能真正培養(yǎng)學生的實際動手能力,另外理論課程是增強學生人文素質(zhì)、提高人才核心競爭力、提升可持續(xù)職業(yè)能力的有效途徑。但在實際教學過程中,往往輕理論,重實踐。高職院校的學生文化基礎(chǔ)較差,枯燥的理論學習讓他們提不起學習興趣,再加之“背功”差,對理論學習“前學后忘”,教學效果不理想。我們應(yīng)根據(jù)高職學生的特點,采用適合他們的教學模式,多給他們動手操作的機會,使之從枯燥乏味的理論學習中解脫出來。
基于此,筆者進行了信息系統(tǒng)輔助理論教學模式的嘗試?;赩isual Basic設(shè)計并實現(xiàn)了題目訓練器,通過在計算機上對理論題反復(fù)訓練,并同步得到反饋與解析,達到熟記的目的。
1 總體設(shè)計
系統(tǒng)的主要功能是:批量導入理論題,讓學生答題并給出結(jié)果反饋,同時對學生做題的正誤情況進行統(tǒng)計,學生可以查詢出錯誤較多的題,進行反復(fù)訓練。系統(tǒng)主要包括以下幾大模塊:用戶管理、學期管理、科目管理、試題類型管理、題庫管理、題目訓練、錯題查詢。
用戶管理:包括密碼修改、用戶維護。用戶分為管理員和普通用戶。普通用戶可以修改自己的密碼,管理員可以對用戶進行維護,包括對用戶進行添加、修改、刪除、查詢等操作。
學期管理、科目管理、試題類型管理用于對學期、科目、試題類型等基礎(chǔ)信息進行添加或刪除操作。
題庫管理:對試題進行維護,包括從Excel表格批量導入試題,對試題進行添加、修改、刪除、查詢等操作。
題目訓練:用于對所選試題進行答題、批改及解析等。
錯題查詢:用于根據(jù)查詢條件顯示相應(yīng)錯題,查詢條件包括:用戶名、學期、科目、試題類型、錯題次數(shù)、錯題日期等。
系統(tǒng)流程圖如圖1所示。
2 數(shù)據(jù)庫設(shè)計
本系統(tǒng)涉及的對象主要包括:操作用戶、學期、科目、試題類型、試題、錯題等。分別設(shè)計數(shù)據(jù)表對這些對象進行維護。
系統(tǒng)用戶分為管理員和普通用戶,管理員負責系統(tǒng)的維護,普通用戶主要是做題及各類信息的查詢。用戶表(User)包括字段為:序號(ID)、用戶名(UserName)、密碼(UserCode)、權(quán)限(UserRight)。
試題表(Question)存儲試題信息,包括字段為:序號、學期、科目、試卷編號、試題內(nèi)容、試題答案、試題類型、考查知識點、試題解析、錄入日期。其中學期字段關(guān)聯(lián)于學期表,科目字段關(guān)聯(lián)于科目表,試題類型字段關(guān)聯(lián)于試題類型表,錄入日期字段在導入系統(tǒng)時讀取系統(tǒng)日期。
錯題表(Wrongques)記錄用戶錯題情況,包括字段為:試題編號、用戶名、答錯題次數(shù)、答對題次數(shù)、最近做題日期。試題編號字段關(guān)聯(lián)于試題表,最近做題日期讀取最近一次做題時的系統(tǒng)日期。
試題表與錯題表通過試題編號關(guān)聯(lián),用戶表與錯題表通過用戶編號關(guān)聯(lián)。用戶表、試題表及錯題表三者的關(guān)聯(lián)關(guān)系如圖2所示。
3 系統(tǒng)實現(xiàn)
3.1數(shù)據(jù)庫連接
要實現(xiàn)對數(shù)據(jù)庫的操作,首先要連接數(shù)據(jù)庫。在系統(tǒng)中添加了Module1, 在這里創(chuàng)建TransactSQL()函數(shù)用于連接數(shù)據(jù)庫,并通過傳遞的SQL語句參數(shù)對數(shù)據(jù)庫進行查詢、更新等操作。主要代碼如下所示。
Public Function TransactSQL(ByVal sql As String) As ADODB.Recordset
…
Set con = New ADODB.Connection
Set rs = New ADODB.Recordset
'連接并打開數(shù)據(jù)庫
con.Provider = "Microsoft.Jet.OLEDB.4.0"
con.ConnectionString = "Data Source=" & App.Path & "\exercise.mdb;"
con.Open
'執(zhí)行由過程參數(shù)傳過來的SQL語句
strArray = Split(sql)
If StrComp(VBA.UCase(strArray(0)), "select", vbTextCompare) = 0 Then
rs.Open VBA.Trim(sql), con, adOpenKeyset, adLockOptimistic
Set TransactSQL = rs
Else
con.Execute sql
End If
…
End Function
3.2用戶管理模塊設(shè)計與實現(xiàn)
用戶管理模塊主要實現(xiàn)對用戶信息的添加、修改、刪除及查詢操作。在窗體上添加了MSHFlexGrid1控件,用于顯示用戶信息。在窗體的load事件中,默認加載所有用戶信息。用戶可點擊“查詢”按鈕,設(shè)置查詢條件,如用戶名、權(quán)限等,以顯示所需要的用戶信息。用戶管理界面如圖3所示。
3.3題庫管理模塊設(shè)計與實現(xiàn)
題庫管理模塊用于實現(xiàn)對題庫中試題的批量導入、單條添加、修改、刪除及查詢等功能。其功能設(shè)計概圖如圖4所示。
批量導入功能是通過打開Excel文件,從文件中逐行讀取試題信息并插入到數(shù)據(jù)庫的試題表(Question)中。主要代碼如下所示:
Private Sub Cmdimport_Click()
…
' 打開文件
With CommonDialog1
' .CancelError = True
.Flags = cdlOFNHideReadOnly Or cdlOFNAllowMultiselect Or cdlOFNExplorer Or cdlOFNNoDereferenceLinks
.Filter = "excel文件(*.xls)|*.xls"
.ShowOpen
End With
filename = CommonDialog1.filename
…
Set xlapp = CreateObject("Excel.Application")? '創(chuàng)建EXCEL對象
Set xlbook = xlapp.Workbooks.Open(filename) '打開已經(jīng)存在的工作簿文件
xlbook.RunAutoMacros (xlAutoOpen) '運行EXCEL啟動宏
xlbook.RunAutoMacros (xlAutoClose) '運行EXCEL關(guān)閉宏
xlapp.Visible = False '設(shè)置EXCEL不可見
Set xlsheet = xlbook.Worksheets(1)? '設(shè)置活動工作表
…
'逐行讀取Excel文件內(nèi)容,并插入到Question表中
For i = 2 To lastrow
…
sql = "insert into [Question](Term,Subject,QueNo,Questions,Keys,Quetype,Querange,Queanalys,Quedate) values('" & Trim(xlsheet.Cells(i, 1)) & "','" & Trim(xlsheet.Cells(i, 2)) & "','" & Trim(xlsheet.Cells(i, 3)) & "','" & CheckString(xlsheet.Cells(i, 4)) & "','" & CheckString(xlsheet.Cells(i, 5)) & "','" & Trim(xlsheet.Cells(i, 6)) & "','" & Trim(xlsheet.Cells(i, 7)) & "','" & Trim(xlsheet.Cells(i, 8)) & "','" & Date & "')"
Call TransactSQL(sql)
k = 1
End If
Next
If k = 1 Then MsgBox ("導入成功!")
Call viewData(viewsql) //顯示導入結(jié)果
…
End Sub
值得一提的是,上述代碼中在“insert”SQL語句中,引用了CheckString()函數(shù),這個函數(shù)的作用是:當需插入表中的字符串內(nèi)容含單引號時,在單引號前再插入一個轉(zhuǎn)義字符單引號,使該單引號轉(zhuǎn)成普通字符。因為在SQL語句中單引號表示字符串的開始和結(jié)束,如果字符串中含有單引號的,就需要把它轉(zhuǎn)化為普通字符,否則SQL語句將無法正常執(zhí)行。CheckString()函數(shù)的具體代碼如下:
Public Function CheckString(ByVal str As String) As String
Dim returnStr As String
returnStr = ""
If InStr(1, str, "'") <> 0 Then
returnStr = Replace(str, "'", "''")
Else
returnStr = str
End If
CheckString = returnStr
End Function
導入模版是Excel文件,該文件中第一行各列標題分別為:學期、科目、編號、題目、答案、題目類型、考查知識點、解析,用戶需在對應(yīng)標題下填寫好各行的內(nèi)容,系統(tǒng)將根據(jù)逐行將Excel表格中的內(nèi)容插入到數(shù)據(jù)庫的Question表中。
在VB中要想調(diào)用Excel,需要打開VB編程環(huán)境“工程”菜單中的“引用”項目,并選取項目中的“MicrosoftExcel 11.0 object library”項。由于Excel版本不同,這個選項的版本號也是不同的。
因為EXCEL是以層次結(jié)構(gòu)組織對象的,其對象模型中含有許多不同的對象元素。
第一層:Application對象,即Excel本身;
第二層:workbooks對象集,指Excel的工作簿文件;
第三層:worksheets對象集,表示的是Excel的一個工作表;
第四層:Cells和Range對象,指向Excel工作表中的單元格。
因此需要定義好各層,代碼如下:
Dim xlapp As Excel.Application 'Excel對象
Dim xlbook As Excel.Workbook '工作簿
Dim xlsheet As Excel.Worksheet '工作表
再創(chuàng)建各對象,代碼如下:
Set xlapp = CreateObject("Excel.Application")? '創(chuàng)建EXCEL對象
Set xlbook = xlapp.Workbooks.Open(filename) '打開已經(jīng)存在的test.xls工作簿文件
Set xlsheet = xlbook.Worksheets(1)? '設(shè)置活動工作表
再逐行讀取單元格xlsheet.Cells(i, j)的內(nèi)容,i,j分別代表行號和列號。
3.4試題訓練模塊設(shè)計與實現(xiàn)
該模塊用于對所選試題進行訓練,提交后反饋答題結(jié)果及試題解析。每答錯或答對一道題,在錯題表(WrongQues)中會有相應(yīng)紀錄:如果是未做過的題,則新增一條紀錄,錯題數(shù)或?qū)︻}數(shù)為1;如果是做過的題,根據(jù)試題編號找到這條紀錄,將其錯題數(shù)或?qū)︻}數(shù)增加1。通過“查詢”功能,輸入查詢條件,選擇需要的試題。查詢條件包括學期、科目、試題類型、考查知識點、試題編號范圍、試題錄入日期、錯題次數(shù)等。試題訓練界面,如圖5所示。在這個界面中,用戶在回答文本框中輸入問題答案,再點擊“提交”,系統(tǒng)會將用戶的回答與“Question”表中的對應(yīng)紀錄的“Keys”值進行比較,如果一致,則顯示回答正確;如果不一致,則顯示回答錯誤及正確答案。同步顯示試題解析,并在錯題表(WrongQues)中做相應(yīng)紀錄。
3.5錯題查詢模塊設(shè)計與實現(xiàn)
該模塊通過設(shè)置查詢條件,在錯題表(WrongQues)中查詢錯題情況。查詢條件包括用戶名、學期、科目、試題類型、考查知識點、試題編號范圍、錯題次數(shù)范圍、對題次數(shù)范圍、答題日期范圍等。錯題查詢界面如圖6所示。單擊其中的某一條紀錄,可以根據(jù)試題編號查看到該試題的詳細信息。
4 結(jié)束語
本系統(tǒng)初步實現(xiàn)了讓學生在計算機上對理論試題進行反復(fù)訓練,并同步提供反饋與解析的目的。通過動手練,一定程度上提高了學生對枯燥的理論學習的學習興趣,從而達到較好的學習效果。以英語學習為例,因為知識點多而散,不容易記憶,學生在系統(tǒng)中進行訓練并得到及時反饋,并通過錯題庫查詢,根據(jù)錯題頻率找到薄弱環(huán)節(jié),從而有針對性地強化訓練,邊訓練并記憶,可以大大提高學習效率。但系統(tǒng)功能還需在實踐中不斷完善,以更好地提高使用效率。特別是試題導入功能,雖然已經(jīng)實現(xiàn)了使用Excel文件批量導入,但如果能改成掃描導入等方式,將能更好地提高試題導入的效率。
參考文獻:
[1] 梁海鵬,薛建紅.基于ACCESS的庫存管理系統(tǒng)設(shè)計與實現(xiàn)[J].物探裝備,2018,28(3):191-193.
[2] 張?zhí)伊郑?基于ACCESS數(shù)據(jù)庫系統(tǒng)開發(fā)下的數(shù)據(jù)庫備份操作實現(xiàn)[J].科技經(jīng)濟導刊,2016(7):116-117.
[3] 秦文寧,張若楠,王璀,等.基于Access的河南師范大學圖書管理系統(tǒng)[J].無線互聯(lián)科技,2019(6):57-58.
[4] 李麗,史運平.基于Visual Basic6.0的ADO數(shù)據(jù)庫訪問技術(shù)[J].山西建筑,2007,33(22):367-368.
[5] 梁鳳蘭.基于校網(wǎng)絡(luò)教學平臺的混合式教學設(shè)計與應(yīng)用[J].軟件工程,2018,21(12):50-53.
[6] 李晶. 基于Bb 平臺的大學理論課程互動教學方案設(shè)計[J].航海教育研究(MER),2019,2(36):90-93.
[7] 王紹建,黃代華,馮寶貴. 高職院校理論課程教學困境及解決途徑[J].湖南工業(yè)職業(yè)技術(shù)學院學報,2016,16(6):98-100.
[8] 顧馨梅,唐燦.終身教育視野下構(gòu)建現(xiàn)代職業(yè)教育體系的思考[J].襄陽職業(yè)技術(shù)學院學報,2019,18(6):11-14.
【通聯(lián)編輯:王力】