王會婷 陳應祖



摘? 要:隨著人工智能與大數據技術的飛速發展,傳統紙質考試已經不能適應時代的發展需求,本文提出
《C/C++語言程序設計》課程考試系統。提出本系統開發與應用的總體系統功能結構,闡述C/C++語言程序設計課程考試系統開發與應用過程中涉及的一些關鍵技術及系統應用功能結構模塊、網絡結構,并提出系統主要性能特色,以及系統的創新性和科學性。
關鍵詞:試卷編排器;考試答題環境;容器程序;COM接口;cl.exe編譯器
中圖分類號:TP311.1? ? ?文獻標識碼:A
The Development and Application of C/C++ Language Programming?Course Examination System
WANG Huiting,CHEN Yingzu
(Chongqing University of Science and Technology,Chongqing 401331,China)
Abstract:With the rapid development of artificial intelligence and big data technology,traditional paper examination is unable to adapt to the development needs of the times.This paper proposes the course examination system of C/C++ language programming.The development and application of the overall system function structure is described,some key technologies and system application function modules as well as network structure involved in the process of the development and application of C/C++ language programming examination system are elaborated,and the main performance characteristics as well as the innovation and scientificity of the system are introduced.
Keywords:test paper organizer;examination environment;container program;COM interface;cl.exe compiler
1? ?引言(Introduction)
傳統紙質考試所采用的人工閱卷、統分等不僅煩瑣容易出錯,而且還降低了教師的工作效率和質量。隨著人工智能與大數據技術的飛速發展,傳統紙質考試已經不能適應時代的發展需求,因此《C/C++語言程序設計》課程考試系統應運而生。系統的應用大大提高了教師的工作效率和質量。該系統對程序代碼題按六個評分點進行評分,合理解決了C語言程序設計中由源程序代碼運行結果決定成績這一難題。經過六學期實際應用和抽查證明,系統實現了答卷機器自動評閱,即時獲得學生考試成績。
2? ?總體結構(Overall structure)
系統功能圖如圖1所示。
根據計算機專業實際教學情況和對C/C++語言程序設計課程的實驗教學環節的教學要求,系統功能從總體上分為管理端和考試端。教師作為管理員通過管理端進行試卷管理和考試管理;學生作為用戶通過考試端練習或考試。教師和學生有各自不同的權限,應用不同的功能進行不同的操作。
2.1? ?網絡結構
考慮到系統開發的功能、應用需求,以及Client/Server應用與Web應用的特點,本系統采用C/S與B/S相結合的方式[1]。
其中Client/Server網絡結構,以分布式SQL Server數據庫服務為基礎。這種應用能夠充分利用分布式數據庫的存儲和管理能力,具有較好的性能及可靠性,適應大量的錄入、修改、統計、計算、報表等應用。
另外,B/S三層體系結構,通過“分布式”開發實現,由分別運行于數據庫服務器、信息服務器站點、客戶端上的程序,相互通信、緊密配合實現其功能[2]。它具有較高的靈活性和易用性。
2.2? ?模塊劃分
系統以試卷的Word文檔、試卷答案文本、考生答案為對象實現試卷管理和考生成績管理。系統分為試卷管理、考試管理、考試與練習功能模塊,并將三大功能模塊集成于一個應用程序中,根據使用者角色進行功能切換。
2.3? ?系統設置
系統設置主要是使用戶根據自己的需求來建立和管理數據庫結構[3]。在系統設置中有數據管理、組織管理、授權管理、顯示級別和修改密碼五個模塊。其中,數據管理模塊用于管理數據類、數據表;組織管理模塊主要管理用戶;授權管理模塊是對各用戶進行授權,使得每個用戶看到不同的信息,以保證數據的安全性;在修改密碼模塊中用戶可修改自己的密碼。
3? 系統主要性能和特色(Main performance and characteristics of the system)
系統應用程序(C_ExameNet.exe)作為SQL Server數據庫系統的客戶程序,在局域網內實現《C/C++語言程序設計》課程考試和練習。C_ExameNet.exe以試卷的Word文檔、試卷答案文本、考生答案為對象實現試卷管理和考生成績管理,功能分為試卷管理、考試管理、考試與練習,根據使用者角色進行功能切換。
《C/C++語言程序設計》課程考試系統主要具有五個特點:
(1)教學性
系統針對性強,是面向學生提供的學習平臺。除985、211高校外,學生普遍認為C和C++語言入門困難、難懂,又是全國大學生計算機等級考試科目,通過本平臺方便學生自我訓練,提升學生C和C++語言水平。
(2)科學性
本系統是SQL SERVER數據庫系統的客戶程序,穩定可靠[4];使用Office Word作為試卷編排器和學生答題器,科學合理解決了在線考試系統普遍存在的題干中圖、表、公式編排困難,試卷編排符合閱讀習慣。利用Office Word提供的COM接口,根據試卷試題自動生成答題卡,答題卡和題干建立關聯,實現互動。程序代碼填空、程序代碼改錯和程序代碼設計的評判規劃合理,不以運行結果為唯一評分依據,使用exe輸出換向方法直接獲取exe運行結果。
(3)創新性
①C_Exam為容器程序[5],將Office Word文檔嵌入到應用程序中。教師試卷、學生答題都在符合閱讀習慣的試卷環境中進行。對比其他在線考試系統,不需要對圖、表、數學公式等OLE對象進行單獨處理。
基于Office Word文檔的試卷可直接讀入系統數據庫中。試卷Word文檔中每一考題設置“題號:題型+題號+分值”為關鍵字,試卷答案也以“題號:題型+題號+分值”為關鍵字;試卷文檔和答案文本分別讀入數據庫數據表中構成一條記錄,并賦予唯一編碼。
試卷題型:01單選題、02多選題、03判斷題、04填空題、05程序填空、06編程題共6類題。每一類型對應相應的答題策略。其中05和06題型可外掛編譯環境,也可以直接啟動Visual C++ IDE環境進行程序源碼錄入與調試。如圖2所示。
②根據試卷中試題關鍵字,自動生成答題卡。
③答題卡的試題項與試卷文檔中題干建立關聯,實現互動[6]。
④學生的代碼讀寫能力反映了學生的語言程序設計課程的綜合實踐能力。這是語言程序設計課程的實驗教學環節的非常重要的一個方面。
采用exe輸出換向獲取學生程序和參考程序的運行結果。不需要在源代碼中植入數據輸出到文件的語句,獲得exe的數據輸出文件,從輸出文件獲取exe的輸出。程序代碼填空、程序代碼改錯和程序代碼設計題按編碼、變量、結構、結果、編譯、模塊6個評分點進行評分,即使答題源代碼不能編譯也會給出相應的分值。如圖3所示。
⑤程序題評分規則按六個環節進行,避免僅依賴程序運行結果評分。
(4)啟發性
①基于Office Word文檔的試卷和答題環境,不再對試卷進行試題分解。
②可以利用Office Word提供的COM接口,獲取文檔中的對象,對感興趣的對象進行深入剖析,可以實現其他課程的考試,如高等數學。高等數學的難點是數學表達式的識別,借助Office Word的數學公式編輯器,可以將參考答案的數學公式切換為獨立的子式,對子式進行編號。答題時學生從子式列表中,選擇拖入答題環境,子式排列順序即是題的答題數據。如果數學問題得以解決,那么就可以推廣到自然學科。
③基于Office Word文檔試卷和答題環境的考試系統,當然適合自然學科。主觀題的評閱可以利用Office Word的字、詞、句統計功能,按字、詞、句進行評分。
(5)應用性
①本系統是針對C/C++語言課程的考試系統。
②脫離Visual Basic和Visual Foxpro程序運行機制情況下也適用。
③如果僅基于單選題、多選題、判斷題、文字填空題,本系統適用于所有學科課程練習與考試。
系統在SQL Server數據庫環境中運行,試卷文檔、試卷答案入庫、學生注冊、學生練習與考試操作簡捷方便。除搭建SQL Server數據庫環境外,在安裝有Word應用程序的機器上直接運行C_ExameNet.exe,不需要第三方控件支持[7]。
4? ?系統應用(System application)
系統應用中主要包括試卷管理、考試管理、練習和考試四個模塊。
①試卷管理
試卷管理主要包括試卷及試卷參考答案的導入導出。試卷導入后,如需修改可對試卷進行編輯并保存修改。試卷可導出到磁盤存檔以便查閱。
②考試管理
主要包括考試成績的導入導出、考生注冊、考試日期設置。
系統管理員可查看教學班級的考試成績并導出,也可把學生的答卷導出保存到磁盤上。
考生注冊時可以單個注冊,也可以批量注冊[8]。
考試日期設置時設置考試科目項目號、開考時間、結束時間、修正試卷密碼等信息。
③練習
學生在注冊時的項目碼(項目碼和考試科目是相同的)所對應的試卷列表中自選訓練試卷。在練習狀態,學生可以一邊作答一邊提交答案并顯示當前成績。顯示/隱藏參考答案。
④考試
考試狀態下的流程和練習狀態下的流程大致差不多,只是權限不同??荚嚑顟B下學生不能自選試卷、不能顯示當前成績、不能顯示/隱藏參考答案,而練習狀態下學生是有這些權限的。正式考試時可以一邊作答一邊提交答案,系統評閱,但不顯示當前成績。學生結束考試后可顯示此次考試成績。
5? ?結論(Conclusion)
《C/C++語言程序設計》課程考試系統具有友好的界面和創新性,安全高效,方便實用,在實踐教學環節效果顯著。系統的應用不僅提高了教師的教學質量和工作效率,也提高了學生的學習效率和質量,方便了管理人員對學生作業、成績等數據的存檔、統計、匯總分析等。
參考文獻(References)
[1] 曹瑛.淺析C語言網絡考試系統的設計與實現[J].數字通信世界,2016,(12):255-256.
[2] 謝希仁.計算機網絡(第4版)[M].北京:電子工業出版社,2003:28-30.
[3] 何欽銘.C語言程序設計[M].北京:高等教育出版社,2015:253-257.
[4] 衛琳.SQL Server 2008數據庫應用與開發教程(第二版)[M].北京:清華大學出版社,2011:55-56.
[5] 段智毅.Visual C++程序設計教程[M].北京:人民郵電出版社,2009:98-101.
[6] 羅運,陳蜀宇.網絡安全聯動系統研究[J].西華大學學報:自然科學版,2007,26(1):82-83.
[7] 劉遠東.實踐教學自主學習網絡環境的建設[J].職業技術教育,2007(5):56.
[8] John Carter[英].數據庫設計與編程實例詳解—使用Access,SQL與VB[M].北京:電子工業出版社,2001.