劉平
摘要:理論課程不僅能對(duì)實(shí)踐課程提供必要的指導(dǎo),還對(duì)增強(qiáng)學(xué)生人文素質(zhì)、提高人才核心競(jìng)爭(zhēng)力、提升可持續(xù)職業(yè)能力等至關(guān)重要。高職院校的學(xué)生文化基礎(chǔ)差,普遍對(duì)理論課程缺乏興趣。為提高學(xué)生學(xué)習(xí)興趣,設(shè)計(jì)并實(shí)訓(xùn)了基于Visual Basic的信息系統(tǒng)——題目訓(xùn)練器,使學(xué)生通過在計(jì)算機(jī)上答題,特別是針對(duì)錯(cuò)得比較多的薄弱環(huán)節(jié),在得到反饋和解析基礎(chǔ)上反復(fù)訓(xùn)練,達(dá)到熟記理論知識(shí)的目的。文章詳細(xì)地介紹了該系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)過程。
關(guān)鍵詞:理論知識(shí);訓(xùn)練;反饋;信息系統(tǒng);數(shù)據(jù)庫
中圖分類號(hào):TP311? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):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
理論課程和實(shí)踐課程是現(xiàn)代職業(yè)教育課程體系的兩大組成部分,理論課程與實(shí)踐課程是相輔相成的。只有在必要的理論指導(dǎo)下開展的實(shí)踐活動(dòng)才能真正培養(yǎng)學(xué)生的實(shí)際動(dòng)手能力,另外理論課程是增強(qiáng)學(xué)生人文素質(zhì)、提高人才核心競(jìng)爭(zhēng)力、提升可持續(xù)職業(yè)能力的有效途徑。但在實(shí)際教學(xué)過程中,往往輕理論,重實(shí)踐。高職院校的學(xué)生文化基礎(chǔ)較差,枯燥的理論學(xué)習(xí)讓他們提不起學(xué)習(xí)興趣,再加之“背功”差,對(duì)理論學(xué)習(xí)“前學(xué)后忘”,教學(xué)效果不理想。我們應(yīng)根據(jù)高職學(xué)生的特點(diǎn),采用適合他們的教學(xué)模式,多給他們動(dòng)手操作的機(jī)會(huì),使之從枯燥乏味的理論學(xué)習(xí)中解脫出來。
基于此,筆者進(jìn)行了信息系統(tǒng)輔助理論教學(xué)模式的嘗試?;赩isual Basic設(shè)計(jì)并實(shí)現(xiàn)了題目訓(xùn)練器,通過在計(jì)算機(jī)上對(duì)理論題反復(fù)訓(xùn)練,并同步得到反饋與解析,達(dá)到熟記的目的。
1 總體設(shè)計(jì)
系統(tǒng)的主要功能是:批量導(dǎo)入理論題,讓學(xué)生答題并給出結(jié)果反饋,同時(shí)對(duì)學(xué)生做題的正誤情況進(jìn)行統(tǒng)計(jì),學(xué)生可以查詢出錯(cuò)誤較多的題,進(jìn)行反復(fù)訓(xùn)練。系統(tǒng)主要包括以下幾大模塊:用戶管理、學(xué)期管理、科目管理、試題類型管理、題庫管理、題目訓(xùn)練、錯(cuò)題查詢。
用戶管理:包括密碼修改、用戶維護(hù)。用戶分為管理員和普通用戶。普通用戶可以修改自己的密碼,管理員可以對(duì)用戶進(jìn)行維護(hù),包括對(duì)用戶進(jìn)行添加、修改、刪除、查詢等操作。
學(xué)期管理、科目管理、試題類型管理用于對(duì)學(xué)期、科目、試題類型等基礎(chǔ)信息進(jìn)行添加或刪除操作。
題庫管理:對(duì)試題進(jìn)行維護(hù),包括從Excel表格批量導(dǎo)入試題,對(duì)試題進(jìn)行添加、修改、刪除、查詢等操作。
題目訓(xùn)練:用于對(duì)所選試題進(jìn)行答題、批改及解析等。
錯(cuò)題查詢:用于根據(jù)查詢條件顯示相應(yīng)錯(cuò)題,查詢條件包括:用戶名、學(xué)期、科目、試題類型、錯(cuò)題次數(shù)、錯(cuò)題日期等。
系統(tǒng)流程圖如圖1所示。
2 數(shù)據(jù)庫設(shè)計(jì)
本系統(tǒng)涉及的對(duì)象主要包括:操作用戶、學(xué)期、科目、試題類型、試題、錯(cuò)題等。分別設(shè)計(jì)數(shù)據(jù)表對(duì)這些對(duì)象進(jìn)行維護(hù)。
系統(tǒng)用戶分為管理員和普通用戶,管理員負(fù)責(zé)系統(tǒng)的維護(hù),普通用戶主要是做題及各類信息的查詢。用戶表(User)包括字段為:序號(hào)(ID)、用戶名(UserName)、密碼(UserCode)、權(quán)限(UserRight)。
試題表(Question)存儲(chǔ)試題信息,包括字段為:序號(hào)、學(xué)期、科目、試卷編號(hào)、試題內(nèi)容、試題答案、試題類型、考查知識(shí)點(diǎn)、試題解析、錄入日期。其中學(xué)期字段關(guān)聯(lián)于學(xué)期表,科目字段關(guān)聯(lián)于科目表,試題類型字段關(guān)聯(lián)于試題類型表,錄入日期字段在導(dǎo)入系統(tǒng)時(shí)讀取系統(tǒng)日期。
錯(cuò)題表(Wrongques)記錄用戶錯(cuò)題情況,包括字段為:試題編號(hào)、用戶名、答錯(cuò)題次數(shù)、答對(duì)題次數(shù)、最近做題日期。試題編號(hào)字段關(guān)聯(lián)于試題表,最近做題日期讀取最近一次做題時(shí)的系統(tǒng)日期。
試題表與錯(cuò)題表通過試題編號(hào)關(guān)聯(lián),用戶表與錯(cuò)題表通過用戶編號(hào)關(guān)聯(lián)。用戶表、試題表及錯(cuò)題表三者的關(guān)聯(lián)關(guān)系如圖2所示。
3 系統(tǒng)實(shí)現(xiàn)
3.1數(shù)據(jù)庫連接
要實(shí)現(xiàn)對(duì)數(shù)據(jù)庫的操作,首先要連接數(shù)據(jù)庫。在系統(tǒng)中添加了Module1, 在這里創(chuàng)建TransactSQL()函數(shù)用于連接數(shù)據(jù)庫,并通過傳遞的SQL語句參數(shù)對(duì)數(shù)據(jù)庫進(jìn)行查詢、更新等操作。主要代碼如下所示。
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è)計(jì)與實(shí)現(xiàn)
用戶管理模塊主要實(shí)現(xiàn)對(duì)用戶信息的添加、修改、刪除及查詢操作。在窗體上添加了MSHFlexGrid1控件,用于顯示用戶信息。在窗體的load事件中,默認(rèn)加載所有用戶信息。用戶可點(diǎn)擊“查詢”按鈕,設(shè)置查詢條件,如用戶名、權(quán)限等,以顯示所需要的用戶信息。用戶管理界面如圖3所示。
3.3題庫管理模塊設(shè)計(jì)與實(shí)現(xiàn)
題庫管理模塊用于實(shí)現(xiàn)對(duì)題庫中試題的批量導(dǎo)入、單條添加、修改、刪除及查詢等功能。其功能設(shè)計(jì)概圖如圖4所示。
批量導(dǎo)入功能是通過打開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對(duì)象
Set xlbook = xlapp.Workbooks.Open(filename) '打開已經(jīng)存在的工作簿文件
xlbook.RunAutoMacros (xlAutoOpen) '運(yùn)行EXCEL啟動(dòng)宏
xlbook.RunAutoMacros (xlAutoClose) '運(yùn)行EXCEL關(guān)閉宏
xlapp.Visible = False '設(shè)置EXCEL不可見
Set xlsheet = xlbook.Worksheets(1)? '設(shè)置活動(dòng)工作表
…
'逐行讀取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 ("導(dǎo)入成功!")
Call viewData(viewsql) //顯示導(dǎo)入結(jié)果
…
End Sub
值得一提的是,上述代碼中在“insert”SQL語句中,引用了CheckString()函數(shù),這個(gè)函數(shù)的作用是:當(dāng)需插入表中的字符串內(nèi)容含單引號(hào)時(shí),在單引號(hào)前再插入一個(gè)轉(zhuǎn)義字符單引號(hào),使該單引號(hào)轉(zhuǎn)成普通字符。因?yàn)樵赟QL語句中單引號(hào)表示字符串的開始和結(jié)束,如果字符串中含有單引號(hào)的,就需要把它轉(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
導(dǎo)入模版是Excel文件,該文件中第一行各列標(biāo)題分別為:學(xué)期、科目、編號(hào)、題目、答案、題目類型、考查知識(shí)點(diǎn)、解析,用戶需在對(duì)應(yīng)標(biāo)題下填寫好各行的內(nèi)容,系統(tǒng)將根據(jù)逐行將Excel表格中的內(nèi)容插入到數(shù)據(jù)庫的Question表中。
在VB中要想調(diào)用Excel,需要打開VB編程環(huán)境“工程”菜單中的“引用”項(xiàng)目,并選取項(xiàng)目中的“MicrosoftExcel 11.0 object library”項(xiàng)。由于Excel版本不同,這個(gè)選項(xiàng)的版本號(hào)也是不同的。
因?yàn)镋XCEL是以層次結(jié)構(gòu)組織對(duì)象的,其對(duì)象模型中含有許多不同的對(duì)象元素。
第一層:Application對(duì)象,即Excel本身;
第二層:workbooks對(duì)象集,指Excel的工作簿文件;
第三層:worksheets對(duì)象集,表示的是Excel的一個(gè)工作表;
第四層:Cells和Range對(duì)象,指向Excel工作表中的單元格。
因此需要定義好各層,代碼如下:
Dim xlapp As Excel.Application 'Excel對(duì)象
Dim xlbook As Excel.Workbook '工作簿
Dim xlsheet As Excel.Worksheet '工作表
再創(chuàng)建各對(duì)象,代碼如下:
Set xlapp = CreateObject("Excel.Application")? '創(chuàng)建EXCEL對(duì)象
Set xlbook = xlapp.Workbooks.Open(filename) '打開已經(jīng)存在的test.xls工作簿文件
Set xlsheet = xlbook.Worksheets(1)? '設(shè)置活動(dòng)工作表
再逐行讀取單元格xlsheet.Cells(i, j)的內(nèi)容,i,j分別代表行號(hào)和列號(hào)。
3.4試題訓(xùn)練模塊設(shè)計(jì)與實(shí)現(xiàn)
該模塊用于對(duì)所選試題進(jìn)行訓(xùn)練,提交后反饋答題結(jié)果及試題解析。每答錯(cuò)或答對(duì)一道題,在錯(cuò)題表(WrongQues)中會(huì)有相應(yīng)紀(jì)錄:如果是未做過的題,則新增一條紀(jì)錄,錯(cuò)題數(shù)或?qū)︻}數(shù)為1;如果是做過的題,根據(jù)試題編號(hào)找到這條紀(jì)錄,將其錯(cuò)題數(shù)或?qū)︻}數(shù)增加1。通過“查詢”功能,輸入查詢條件,選擇需要的試題。查詢條件包括學(xué)期、科目、試題類型、考查知識(shí)點(diǎn)、試題編號(hào)范圍、試題錄入日期、錯(cuò)題次數(shù)等。試題訓(xùn)練界面,如圖5所示。在這個(gè)界面中,用戶在回答文本框中輸入問題答案,再點(diǎn)擊“提交”,系統(tǒng)會(huì)將用戶的回答與“Question”表中的對(duì)應(yīng)紀(jì)錄的“Keys”值進(jìn)行比較,如果一致,則顯示回答正確;如果不一致,則顯示回答錯(cuò)誤及正確答案。同步顯示試題解析,并在錯(cuò)題表(WrongQues)中做相應(yīng)紀(jì)錄。
3.5錯(cuò)題查詢模塊設(shè)計(jì)與實(shí)現(xiàn)
該模塊通過設(shè)置查詢條件,在錯(cuò)題表(WrongQues)中查詢錯(cuò)題情況。查詢條件包括用戶名、學(xué)期、科目、試題類型、考查知識(shí)點(diǎn)、試題編號(hào)范圍、錯(cuò)題次數(shù)范圍、對(duì)題次數(shù)范圍、答題日期范圍等。錯(cuò)題查詢界面如圖6所示。單擊其中的某一條紀(jì)錄,可以根據(jù)試題編號(hào)查看到該試題的詳細(xì)信息。
4 結(jié)束語
本系統(tǒng)初步實(shí)現(xiàn)了讓學(xué)生在計(jì)算機(jī)上對(duì)理論試題進(jìn)行反復(fù)訓(xùn)練,并同步提供反饋與解析的目的。通過動(dòng)手練,一定程度上提高了學(xué)生對(duì)枯燥的理論學(xué)習(xí)的學(xué)習(xí)興趣,從而達(dá)到較好的學(xué)習(xí)效果。以英語學(xué)習(xí)為例,因?yàn)橹R(shí)點(diǎn)多而散,不容易記憶,學(xué)生在系統(tǒng)中進(jìn)行訓(xùn)練并得到及時(shí)反饋,并通過錯(cuò)題庫查詢,根據(jù)錯(cuò)題頻率找到薄弱環(huán)節(jié),從而有針對(duì)性地強(qiáng)化訓(xùn)練,邊訓(xùn)練并記憶,可以大大提高學(xué)習(xí)效率。但系統(tǒng)功能還需在實(shí)踐中不斷完善,以更好地提高使用效率。特別是試題導(dǎo)入功能,雖然已經(jīng)實(shí)現(xiàn)了使用Excel文件批量導(dǎo)入,但如果能改成掃描導(dǎo)入等方式,將能更好地提高試題導(dǎo)入的效率。
參考文獻(xiàn):
[1] 梁海鵬,薛建紅.基于ACCESS的庫存管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].物探裝備,2018,28(3):191-193.
[2] 張?zhí)伊郑?基于ACCESS數(shù)據(jù)庫系統(tǒng)開發(fā)下的數(shù)據(jù)庫備份操作實(shí)現(xiàn)[J].科技經(jīng)濟(jì)導(dǎo)刊,2016(7):116-117.
[3] 秦文寧,張若楠,王璀,等.基于Access的河南師范大學(xué)圖書管理系統(tǒng)[J].無線互聯(lián)科技,2019(6):57-58.
[4] 李麗,史運(yùn)平.基于Visual Basic6.0的ADO數(shù)據(jù)庫訪問技術(shù)[J].山西建筑,2007,33(22):367-368.
[5] 梁鳳蘭.基于校網(wǎng)絡(luò)教學(xué)平臺(tái)的混合式教學(xué)設(shè)計(jì)與應(yīng)用[J].軟件工程,2018,21(12):50-53.
[6] 李晶. 基于Bb 平臺(tái)的大學(xué)理論課程互動(dòng)教學(xué)方案設(shè)計(jì)[J].航海教育研究(MER),2019,2(36):90-93.
[7] 王紹建,黃代華,馮寶貴. 高職院校理論課程教學(xué)困境及解決途徑[J].湖南工業(yè)職業(yè)技術(shù)學(xué)院學(xué)報(bào),2016,16(6):98-100.
[8] 顧馨梅,唐燦.終身教育視野下構(gòu)建現(xiàn)代職業(yè)教育體系的思考[J].襄陽職業(yè)技術(shù)學(xué)院學(xué)報(bào),2019,18(6):11-14.
【通聯(lián)編輯:王力】