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