《機械制圖》智能組卷專家系統的設計
陶珍 劉顯貴
摘 要:利用面向對象編程工具Visual C++6.0將專家系統技術和數據庫技術應用到《機械制圖》課程試題庫建設及試卷組卷中,建立了《機械制圖》智能組卷專家系統。結果表明:只要輸入對試卷限制條件,計算機高效隨機組卷便可實現。
關鍵詞:機械制圖 智能組卷專家系統 Visual C++6.0
著眼于二十一世紀對人才素質的要求,高等院校的教學改革應朝著優化專業設置、課程設置、改革課程教學內容體系、教學方法、考試形式、教考分離以及建立試題庫等方面深入發展。在考試改革方面建立相關專業尤其是專業基礎課試題庫實行教考分離,這在工科類院校和綜合性大學已是普遍現象。目前,無論是由任課老師出卷還是實行教考分離,人工出卷都有很多弊端。首先,每個老師對所教課程的理解不一樣,其結果是每個老師所出的題目都有各自的側重點。不能很好地考查學生對該課程地掌握程度。其次,不利于學校教學工作的持續健康發展,學校采用人工出卷,就難以對試題資源進行統一管理。再次,人工出卷大大增加了教師的工作量。特別是有很多重復性勞動。
本文所設計的《機械制圖》智能組卷專家系統可以解決人工出卷的弊端。試題庫共100套試題,四大類型,按照排列組合計算完全可以滿足教學試題的需要。只要向計算機輸入對試卷的限制條件如題型、題型數量等,系統便可隨機自動組卷,因此,該系統對實現教考分離,真實客觀地檢查學生的學習情況,為評估教師的教學質量,加強教學管理都有非常重要的意義。
一、系統功能及模塊
系統結構框圖
智能組卷專家系統分為兩大模塊,第一大模塊是試題數據庫的管理模塊,用戶可以把優秀的試題通過該模塊保存到試題數據庫中,用戶還可以瀏覽整個數據庫中的試題,如果試題有問題,可以把該試題刪除,如果有好試題可以添加進入試題數據庫中。第二大模塊是試卷設計模塊,用戶只需要輸入你對試卷的要求,系統就自動隨機產生符合要求的試題。從而組成試卷。
二、智能組卷專家系統的結構設計
本智能組卷系統采用了專家系統的結構形式,因此包括以下幾個部分:人機接口(設計界面)、知識庫管理(其中包括知識庫獲取機構)、動態數據庫、推理機。設計使用的軟件為面向對象編程工具Visual C++6.0。各個部分的具體設計如下:
1.人機接口的創建
人機接口是專家系統與領域專家、知識工程、一般用戶間進行交互的界面,用于完成輸入輸出工作。它是通過設計一個基于對話框的類而創建得到的。在該類中有三個函數分別實現進入試卷設計模塊、試題數據庫管理界面和退出系統三個功能。三個函數的代碼如下:
void CMyDlg::OnDb()//進入試題數據庫管理模塊函數
{ CDatabase1 db; db.DoModal();
CShitishujukuSet new3; //同時打開知識庫連接
new3.Open(); new3.MoveFirst(); }
void CMyDlg::OnButton1() //試卷設計模塊
{ CTextRanddesign db2; db2.DoModal(); }
void CMyDlg::OnCancel() //退出系統
{ CDialog::OnCancel();}
2.知識庫管理的創建
在本智能組卷專家系統中,知識庫和知識獲取機構一起通過試題數據庫管理的類來創建。首先,采用數據庫技術建立知識庫系統,本系統采用Microsoft Access來創建知識庫系統。建立儲存試題的數據庫之后,就要在ODBC中登錄該數據庫。Visual C++是通過ODBC來訪問數據庫的。所以用戶首先要讓ODBC知道你用的是那一種數據庫,這樣才會找到相應的數據庫驅動程序來訪問它。
建立并登錄數據源之后,就要開始建立創建該數據庫的記錄集,這樣之后,就可以通過聲明該記錄集的一個實例來實現的數據庫的操作。
該知識庫的記錄集是通過CRecordset類派生得到的。該類的聲明如下:
class CShitishujukuSet : public Crecordset//試題數據庫的記錄集
{ public: CString m_TIXING;………………}
完成試題數據庫記錄集的設置之后,就可以實現對該數據庫的管理了,本專家系統通過使用一個基于對話框的類來管理知識庫。
class CDatabase1 : public CDialog
{ protected: afx_msg void OnRead(); …………};
其中有三個函數OnRead();OnAdd();OnDetele();在這三個函數里面通過聲明記錄集的實例,然后編寫一些對知識庫操作的源代碼即可以實現對數據庫的操作。
通過編寫OnRead()函數可以實現對知識庫的查看,通過查看可以知道知識庫的內容,以便決定下一步的操作。
通過編寫OnAdd()函數可以實現對知識庫的添加,相當于知識庫獲取機構的作用。
通過編寫OnDetele()函數可以實現對知識庫中過期的內容進行刪除。
3.推理機的創建
推理機的功能是模擬專家的思維過程,控制并執行對問題的求解。它能根據當前已知的事實,利用知識庫的知識,按一定的推理方法和控制策略進行推理,直到得出相應的結論為止。推理方向有正向推理,反向推理和正反向混合推理,本智能組卷專家系統采用正向推理。推理過程如右圖所示:
4.動態數據庫的創建
動態數據庫又稱“黑板”、“綜合數據庫”,主要用于存放用戶提供的初始事實,問題描述及系統運行過程中得到的中間結果,最終結果等信息。數據庫的內容是不斷變化的,這也是“動態”或“黑板”的由來。
動態數據庫也是通過一個基于對話框的類實現的,它的聲明如下:
class CTextRanddesign : public CDialog
{ public: int m_nRandNum;
protected: afx_msg void OnTestrand(); };
通過OnTestrand()函數可以實現推理機的功能。把輸入的原始數據經過推理并且把結果輸出到該類的對話框界面上來。實現動態數據庫的功能。
以上論述了如何在Visual C++工作平臺上設計出《機械制圖》試題庫組卷專家系統的過程,下面通過一個實例來加以說明。
5.系統運行實例
要求設計一套試卷,其中填空題6個,選擇題6個,作圖題8個以及分析題1個。我們只需要輸入各種題型的題數,然后點擊試題選擇按鈕,就可以隨機產生符合要求的所有試題。右圖是產生所有試題的系統界面。
三、總結
通過該系統,用戶就可以根據對試卷的要求隨機迅速地產生一套試題,這樣對實行教考分離,客觀地檢查學生的學習情況,評估教師的教學質量,加強教學管理都有重要的意義,此外,還可以減輕教師的工作強度。
[1] 何高法,陸笑容.《機械設計基礎》試題庫系統軟件設計.《重慶工業高等專科學校學報》2001,16(2) .
[2] 張宇.試題數據庫的設計.《培訓與研究—湖北教育學院學報》.2003,20(2) .
[3] 肖力 編著.《Visual C++程序設計教程》.第2版.科學出版社 2004.
[4] 何銘新,錢可強 主編.《機械制圖》第4版.高等教育出版社 1997.