摘 要: 為提高航理智能組卷系統的組卷效率和考核的針對性,提出了一種自動組卷和人工干預組卷相結合的組卷策略。系統采用了VB面向對象的編程技術,基于ADO數據訪問接口,設計了人工干預組卷功能,可對自動組成的試卷進行換題、加題、刪題等人工干預操作。應用表明,系統操作簡單,運行穩定,組卷效果好,有效地提高了航理考核的客觀性和針對性。
關鍵詞: VB; ADO; 智能組卷; 人工干預組卷
中圖分類號: TN919?34; TP311.1 文獻標識碼: A 文章編號: 1004?373X(2013)16?0068?03
0 引 言
智能組卷系統是將教育學、教育統計學、教育測量學、考試學及心理學等多學科與人工智能技術有機結合,采用合理的組卷算法,由計算機自動從題庫中選擇試題,組成滿足多重約束目標的試卷[1]。在實際應用中,為保證生成的試卷能最大程度地滿足組卷質量和速度的要求,而且試卷的區分度、信度、效度等方面都要達到預期效果,智能組卷系統除要有先進智能的組卷算法外,如何選擇科學合理的組卷策略也是決定組卷效率和質量的重要因素之一[2]。
航理智能組卷系統根據部隊多機型、多專業、多層次的考核要求,提出了一種基于試題屬性矩陣,采用試題分值和專業占比優先的組卷算法,實現了航理綜合考核的自動組卷功能。但在實際應用中發現存在以下問題:一是智能組卷系統對組卷者的要求較高。如果組卷者不了解考核的對象,或者不熟悉相關專業理論,無法合理配置試卷表參數時,自動組卷的效果就會受到影響。二是智能組卷系統對某些有特殊要求的考核的組卷效率較低。如實際考核時,經常會有需指定考核題目或考核內容的要求。為此,本系統設計了人工干預組卷功能,可對自動組成的試卷進行換題、加題、刪題等人工干預操作,以提高組卷效率和考核的針對性。
1 系統設計
航理智能組卷系統主要用于機關對飛行員進行訓練等級評定考核時使用,要求試題庫內的試題要覆蓋多個機型的所有航理專業的知識點。
系統由管理子系統、建庫子系統和組卷子系統構成。管理子系統主要實現系統管理、用戶身份驗證等功能,可保證組卷工作的獨立性和保密性;建庫子系統主要實現各機型航理試題的錄入、修改以及機型、專業等題庫屬性編輯的功能。組卷子系統可按機型、專業、難度、考核對象、考核內容及訓練階段等多個約束條件實現智能組卷,最后按試卷模版生成Word標準格式的試卷和參考答案。
1.1 開發平臺
本系統的開發平臺為VB 6.0+ Access。VB 6.0支持面向對象的程序設計,且具有強大的數據庫管理功能。VB 6.0本身提供三種數據接口:DAO,RDO和ADO。其中ADO是建立在微軟OLEDB技術上的數據對象,能夠處理任何類型的本地或遠程數據,它通過內部的屬性和方法提供統一的數據庫訪問接口,是使用VB開發數據庫應用程序的首選方法[3]。在VB中基于ADO技術實現數據庫訪問的操作有兩種方式,一種是通過ADO Data 控件非編程訪問方式,另一種是利用ADO對象編程訪問方式[4]。本系統選擇ADO對象編程訪問方式實現數據庫的訪問。
Access 是微軟公司推出的一種關系型數據庫,具有界面友好、開發簡單、接口靈活等特點,是目前桌面數據庫應用開發流行工具之一。
1.2系統題庫的數據結構設計
由于本系統要求題庫中的試題涵蓋部隊的主要機型及各航理專業,并可按機型或專業分別組卷進行專項考試或綜合考核。因此本系統的組卷約束條件除知識點、題型、難度、分值外,還要有考核類型、機型和專業等條件。為此本系統題庫的數據結構定義如表1所示。
表1 系統數據結構表
1.3 組卷子系統的設計
組卷子系統根據航理考核涉及多機型、多專業、多層次的應用特點,為滿足實際應用中既要能自動組卷,又要能指定部分考核內容的要求,采用自動組卷和人工干預組卷相結合的組卷策略來實現航理考核的智能組卷。
其中自動組卷是基于試題屬性矩陣,采用試題分值和專業占比優先的組卷算法,從備選試題庫中抽取試題,自動組成試卷并提取答案。人工干預組卷是在自動組卷的基礎上,根據考核的要求對已生成的試卷進行試題替換、增減試題等操作。組卷子系統實現智能組卷的流程如圖1所示。
2 人工干預組卷功能的實現
人工干預組卷模塊要求能夠實現在試卷臨時庫和備選試題庫之間進行的換題、加題、刪題等選題操作。該功能模塊的設計思想為:首先將備選題庫和試卷臨時庫中的每道試題的th,jx,zy,zsd,tx及nd等字段的屬性值組合編碼成試題的序列號(ID),作為該試題的唯一性標識。然后通過人機交互方式輸入試題的序列號來實現在試卷臨時庫和備選試題庫中相關試題的定位,進而完成換題、加題、刪題等人工干預操作。該模塊的人機操作界面如圖2所示。
界面中的兩個RichTextBox控件分別作為已選中的試題和備選試題庫中的備選試題的瀏覽窗口,除顯示試題各屬性值外,還可顯示每道試題的序列號(即ID);一個ComboBox控件可實現按題型分類瀏覽備選試題;四個TextBox控件用于輸入試題的序列號以實現換題、加題、刪題等人工干預選題操作。
由于試題的換題、加題、刪題等人工干預選題操作均需在試卷臨時庫和備選試題庫之間進行數據源的連接、SQL查詢、數據記錄屬性值修改等操作,為減少重復代碼,提高系統的運行效率和可擴展性,在系統的HHTK.myTK類模塊中設計了數據操作的自定義函數,具體如表2所示。
表2 HHTK.myTK類模塊中的函數
以換題操作為例,部分程序代碼如下:
Private Sub Command2_Click() ‘單擊“換題”按鈕
Dim m_tk As New HHTK.myTK
Dim t_str As String
If z_filtersql = \"\" Then
‘z_filtersql為滿足試卷配置表的約束條件(SQL查詢條件)
t_str = \"\"
Else
t_str = z_filtersql
End If
If t_str = \"\" Then Exit Sub
If Text1.Text = \"\" Then Exit Sub
‘被替換的試題序列號不能空
If Text2.Text = \"\" Then Exit Sub
‘擬替換的試題序列號不能空
m_tk.ex_problems \"TK\", App.Path \"\database\", Text2.Text, Text1.Text, t_str ‘調用換題函數
Command4_Click ‘更新瀏覽
End Sub
Public Function ex_problems(dataname As String, mpath As String, id_tkt As String, id_temp As String, s_sql As String)
‘換題函數
Dim t_temp As New ADODB.Recordset
Dim t_rs As New ADODB.Recordset
Dim t_ado As New HHTK.myTK
If t_ado.init_connection(dataname, mpath) Then
‘建立與備選試題庫的連接
If t_ado.getRecordset(s_sql \" and ID = ′\" id_tkt \"′\", t_rs) Then
‘在備選試題庫中定位擬替換的試題
If t_rs.RecordCount = 0 Then
t_rs.Close
t_ado.close_connection
Else
If t_ado.getRecordset(\"select * from temp1 where ID = '\" id_temp \"'\", t_temp) Then
‘在臨時試卷庫中定位擬被替換的試題
If t_temp.RecordCount = 0 Then
t_temp.Close
Else
t_temp.Fields(\"tm\") = t_rs.Fields(\"tm\")
‘替換試題的各屬性值
t_temp.Fields(\"da\") = t_rs.Fields(\"da\")
t_temp.Fields(\"th\") = t_rs.Fields(\"th\")
t_temp.Fields(\"zsd\") = t_rs.Fields(\"zsd\")
t_temp.Fields(\"tx\") = t_rs.Fields(\"tx\")
t_temp.Fields(\"nd\") = t_rs.Fields(\"nd\")
t_temp.Fields(\"zy\") = t_rs.Fields(\"zy\")
t_temp.Fields(\"ID\") = t_rs.Fields(\"ID\")
t_temp.Fields(\"jx\") = t_rs.Fields(\"jx\")
t_temp.Update
t_temp.Close
End If
End If
t_rs.Close
t_ado.close_connection
‘斷開與備選試題庫的連接
End If
End If
End If
End Function
3 結 語
經應用實踐反饋,本系統采用自動組卷和人工干預組卷相結合的組卷策略,在實現航理考核試題智能組卷的基礎上,有效地提高了航理考核的客觀性和針對性。特別是大大提高了部隊按機型進行指定專業或指定內容考核的組卷效率。
參考文獻
[1] 李建鋒.智能組卷系統的研究與實現[J].計算機與數字工程,2008,36(3):63?65.
[2] 劉偉科.智能組卷系統中的組卷策略研究[J].電腦與信息技術,2010,18(5):40?41.
[3] 楊啟亮.面向SQL Server的OPC Client開發[J].計算機應用與軟件,2007,24(2):95?97.
[4] 王麗芳.基于ADO.NET的O/R Mapping中間件的研究[J].西北工業大學學報,2006,24(6):759?762.
[5] 朱守業.智能組卷中組卷目標的滿足性檢查與處理[J].微計算機信息,2007,23(21):268?269.
[6] 張振國.新型組卷策略的研究與實現[J].計算機工程與設計,2008,29(20):5348?5350.
[7] 周莉莉.含富文本格式的智能組卷系統的研究與實現[J].軟件,2011,32(6):17?19.