








摘要:為實現大學設計類課程上機考試流程自動化,文章設計并實現了一套基于B/S模式的考試系統。系統主要功能包括學生登錄檢查、隨機抽題、自動組卷及在線提交考試成果。文章詳細介紹了系統的設計、配置和使用方法。系統的優勢在于提高教師工作效率,便于學生使用,并能有效防止考生作弊。
關鍵詞:設計類課程;上機考試;B/S模式
中圖分類號:G647;TP399 文獻標識碼:A
文章編號:1009-3044(2024)32-0041-03 開放科學(資源服務)標識碼(OSID) :
0 引言
當前江蘇師范大學某些實踐類課程的上機考試仍采用傳統方式,教師打印紙質試卷并用U盤拷貝電子文件。這種考試方式的弊端顯而易見:執行效率低,教師工作量大,難以防止學生作弊。
網上也能找到很多類似的考試系統,如操心慧、溫智聰等[1]設計的考試系統,其重點題型為選擇題;黃芳、王紀鑫等[2]設計的考試系統,其功能以試卷管理與分析為主;宗垚[3]設計的考試系統,其主要適用場景為文科類考試。而江蘇師范大學某些實踐類課程的上機考試要求是:題型上僅有設計類大題,無客觀題;考試時須方便學生現場抽題和組卷,對題庫管理和試卷分析無要求(由教師線下完成);生成的試卷格式有特定規范。顯然上述系統均無法滿足這些要求。本文的目的是設計一個符合上述要求的上機考試系統。
1 系統需求分析
1.1 功能需求
1.1.1 學生端
1) 學生可在教室隨機選取座位登錄系統;系統須檢查學生的身份和座位號是否合法,允許合法用戶登錄,對不合法輸入給出反饋信息。
2) 系統能按照事先設定的比例在不同難度等級的題庫中隨機抽取試題,并使鄰位學生抽到的試題完全無重復。
3) 一鍵生成符合學校教務規范的標準化試卷。
4) 一鍵下載試卷。學生因電腦死機等原因調整座位后,須重新抽題和組卷,避免學生作弊。
5) 學生線下考試結束后可一鍵提交考試成果至服務器。
1.1.2 教師端
1) 教師線下出題(設計類上機考試只有大題,無客觀題),每個題目保存為一個Word文檔,并按預先設置的難度級別分類。
2) 考試結束后,教師線下完成試卷批改。
1.2 系統體系結構
基于以上需求,設計以下系統體系結構,如圖1 所示。
1.2.1 系統實現模式
系統基于B/S模式實現。B/S模式的優點是實施簡單,僅須在教師機上完成軟件安裝與配置。學生通過瀏覽器與Web服務器交互,完成身份驗證、抽題、組卷以及交卷等考試流程。
1.2.2 數據訪問技術
在服務器端使用SQL Server管理學生信息和抽題數據,使用DCOM組件訪問Word文檔。
2 系統設計
2.1 業務流程設計
系統的主流程和登錄處理子流程見圖2、圖3。
2.1.1 抽題模塊設計
本考試系統的題庫共包含16個題目,試題難度分3級:1~4題為難度1級,5~12題為難度2級,13~16 題為難度3級。抽題時,從第1級題目中隨機抽取1個小題,從第2級題目中隨機抽取2個小題,從第3級題目中隨機抽取1個小題,共4個小題組成一份試卷。每位同學抽到的題目與左、右鄰位同學抽到的每個試題均不重復。
2.1.2 組卷模塊設計
第一步,每個題目以Word文檔格式保存,將最后一個抽到的題目以數據流的形式寫入新生成的試卷文件,并添加文件結束符;第二步,通過Word組件(Mi?crosoft.Office.Interop.Word) 打開上述文件,添加試卷頭;第三步,將剩余題目先編寫成“串”,然后依次插入試卷。生成的試卷自動存放到paper文件夾。
2.2 數據庫設計
使用關系數據庫進行數據庫設計。本系統使用的管理數據只有一張組卷表,其關系模式見表1,其結構如表2所示。
3 系統實現
使用級聯式樣單(CSS) 控制用戶界面控件的精確顯示,使用C#.NET編程語言、SQL Server數據庫引擎和DCOM組件實現軟件邏輯功能。
3.1 數據庫交互主要實現
String connStr = @"Data Source= .; AttachDbFile?name=" + sitePath + @"\TEST2008ID.MDF;Integrated Security=True"; //SQL Server文件數據源
conn = new SqlConnection(connStr); //建立連接對象
conn.Open(); //打開連接
string selectStr = "select * from 組卷表 where 學號=\'" + studentID + "\'";
command = new SqlCommand(selectStr, conn); //建立查詢對象
dr = command.ExecuteReader(); //執行查詢
dr.Read(); //讀取數據
3.2 Word 文檔交互主要實現
fs1 = new FileStream(fname1, FileMode.Create);//建立試卷文件
bw = new BinaryWriter(fs1); //建立試卷文件寫入流
fs2 = new FileStream(fname2, FileMode.Open, File?Access.Read); //打開末題(第4題)對應的Word文檔
br = new BinaryReader(fs2); //建立試題文件讀入流
br.BaseStream.Seek(0, SeekOrigin.Begin); //確定文件讀寫位置,從開始偏移0處
while (br. BaseStream. Position < br. BaseStream.Length) //以流的方式讀取試題并寫入試卷
{ data = br.ReadByte(); bw.Write(data); }
抽題、組卷以及系統完整的實現代碼請參考作者登記的軟著——面向對象程序設計上機考試系統V1.0[4]。
4 系統安裝與使用
4.1 運行環境安裝與配置
4.1.1 硬件環境
電腦內存2GB及以上,CPU為酷睿3代及以上。
4.1.2 軟件環境
1) 安裝Windows 7專業版及以上版本操作系統。
2) 安裝SQL Server 2008或以上版本,設置為Win?dows登錄模式。
3) 安裝Word 2013及以上版本辦公軟件。
4) 安裝IIS應用服務器,在萬維網服務-應用程序開發功能中,勾選ASP.NET 4.8。
5) 在IIS上新建站點TestSiteA(程序中要用到該名稱),并映射到網站文件夾D:\webTest,綁定到本機IP地址,端口號為81(注意避免與其他軟件端口號沖突);關閉防火墻,或在入站規則中開放81端口。
6) 在數據庫文件屬性對話框的安全頁中配置當前Windows登錄賬戶,并設置完全權限,否則將導致附加數據庫失敗。
7) 在CMD窗口中運行dcomcnfg.exe,打開組件服務對話框,配置當前用戶和登錄密碼,否則將無法訪問Word組件。
4.2 系統使用
4.2.1 教師端
教師線下出題,將題目保存在網站questions文件夾中,每個題目保存為一個Word文檔,并按難度分級。考試結束后,教師線下打開應用軟件,在submitted文件夾中查看學生提交的考試成果,完成試卷批改。
4.2.2 學生端
學生首先打開瀏覽器,訪問考試站點:http://?:81/ (注:運行時將?替換為實際IP) ,如圖4所示。
然后依次執行考試流程,各步驟運行結果如圖5 所示,生成的標準化試卷格式如圖6所示。
5 結束語
綜上所述,該上機考試系統易于安裝與配置,便于學生操作,提高了教師的工作效率和考試自動化管理水平,對學校教務信息化建設與改革具有重4f7586a976cf4f25e0b399803ccc1bbee93e49381a4a51c4354727dc82c86098要積極意義。
然而,該系統仍存在一些不足,如抽題算法較為簡單。若題庫較大,為提高組卷效率與質量,可采用王旭等人[5]提出的優化算法或張方方[6]的智能算法進行抽題。展望未來,為適應學校和教師對上機考試的更多要求,該系統可向多個方面拓展,如增加題庫管理功能和學生管理功能。特別是隨著AI技術的發展,可考慮在系統中融入自動評分和學生答卷分析功能。
參考文獻:
[1] 操心慧,溫智聰.基于JavaWeb的線上考試系統的設計與實現[J].現代計算機,2023,29(24):90-96.
[2] 黃芳,王紀鑫. 基于Web 的網絡考試系統設計與實現[C]//2022年中國高校計算機教育大會論文集.廣州:華南理工大學出版社,2022:72-77.
[3] 宗垚.基于B/S結構的網絡考試系統設計與實現[D].哈爾濱: 黑龍江大學,2019.
[4] 江蘇師范大學.面向對象程序設計上機考試系統V1.0[CP/OL].2024-08-01[2024-08-29].國家版權局,2024SR1104448.
[5] 王旭,吳志雄,周子勛.基于B/S模式下的優化遺傳算法的自動組卷系統設計與實現[J].電子制作,2023,31(4):57-60.
[6] 張方方.基于改進魚群算法的在線考試系統設計與實現[D]. 北京:北京郵電大學,2024.
【通聯編輯:謝媛媛】