朱克武
(廣東食品藥品職業(yè)學(xué)院,廣東 廣州 510520)
目前,Office辦公軟件考試系統(tǒng)非常成熟,都實(shí)現(xiàn)了聯(lián)網(wǎng)考試,由一臺(tái)服務(wù)器和若干臺(tái)客戶機(jī)組成,一般一個(gè)服務(wù)器可以帶200個(gè)客戶端。例如:廣東省考試中心的計(jì)算機(jī)水平一級(jí)考試系統(tǒng)、無憂公司制作的Office辦公軟件考試系統(tǒng)、廣東省勞動(dòng)廳的計(jì)算機(jī)水平考試系統(tǒng)等。
這些網(wǎng)絡(luò)考試系統(tǒng)都由服務(wù)器和客戶端兩部分組成,需要在一臺(tái)教師機(jī)上安裝服務(wù)器程序,并配置服務(wù)器的相關(guān)參數(shù),如HTTP服務(wù)器的IP地址和端口、FTP服務(wù)器的IP地址和端口等。學(xué)生機(jī)不需要安裝客戶端程序,學(xué)生可直接在客戶端使用IE瀏覽器登錄。
學(xué)生登錄服務(wù)器后,由服務(wù)器分發(fā)考生的試卷。在考試過程中,服務(wù)器及時(shí)接收學(xué)生機(jī)上傳的數(shù)據(jù);如果學(xué)生機(jī)掉線,服務(wù)器能夠及時(shí)了解是哪個(gè)客戶端掉線;如果學(xué)生機(jī)死機(jī)重新啟動(dòng),再次登錄服務(wù)器后,服務(wù)器會(huì)回傳該學(xué)生所做的內(nèi)容,文件不會(huì)丟失。在考試過程中,系統(tǒng)自動(dòng)計(jì)時(shí),考試時(shí)間到服務(wù)器會(huì)自動(dòng)停止考生的操作,即客戶端停止答題。在學(xué)生關(guān)閉Word、Excel等應(yīng)用程序后,客戶端自動(dòng)上傳數(shù)據(jù),上傳完成后,會(huì)自動(dòng)刪除客戶端的考生文件夾,不會(huì)留下相關(guān)的考試信息。
本網(wǎng)絡(luò)考試系統(tǒng)借鑒了這些優(yōu)秀的考試系統(tǒng),設(shè)計(jì)相關(guān)的界面、對應(yīng)的功能。系統(tǒng)采用Visual Studio 2005、Access等編程軟件進(jìn)行設(shè)計(jì)。
上述3種辦公軟件網(wǎng)絡(luò)考試系統(tǒng)中,考生在客戶端使用IE瀏覽器登錄服務(wù)器,登錄成功后,從服務(wù)器端下載考試數(shù)據(jù)到客戶端。下載完成后,自動(dòng)啟動(dòng)考試程序,顯示考試的題目。在考試過程中,每隔一段時(shí)間上傳考試數(shù)據(jù)到服務(wù)器,考試結(jié)束后,上傳數(shù)據(jù),并刪除考試信息。
在服務(wù)器端的ASP NET網(wǎng)頁中,可以調(diào)用服務(wù)器組件來實(shí)現(xiàn)相關(guān)的功能,服務(wù)器組件具有集合、屬性和方法,創(chuàng)建一個(gè)服務(wù)器組件對象,通過該對象可以訪問組件中的集合、屬性和方法。
服務(wù)器端與數(shù)據(jù)庫的連接,服務(wù)器最基本的功能是連接數(shù)據(jù)庫,實(shí)現(xiàn)數(shù)據(jù)庫中數(shù)據(jù)的添加、修改、刪除、瀏覽、查找等基本功能。
服務(wù)器端要實(shí)現(xiàn)文件管理功能,可以使用文件系統(tǒng)對象或FileInfo對象。文件系統(tǒng)對象(FileSystemObject)位于Scripting類型庫中,在安裝Windows系統(tǒng)時(shí),系統(tǒng)會(huì)自動(dòng)在WindowsSystem32目錄中生成scrrun.dll文件。在該文件中,引用Scripting類型庫,可以聲明一個(gè)文件系統(tǒng)對象的類型。創(chuàng)建一個(gè)文件系統(tǒng)對象,通過該對象,可以獲得驅(qū)動(dòng)器的信息、創(chuàng)建文件或文件夾等有關(guān)文件和文件夾的各項(xiàng)操作。在一個(gè)網(wǎng)頁界面中,通過調(diào)用文件系統(tǒng)對象,就可以完成對文件或文件夾的操作。用戶在客戶端就可以對服務(wù)器上的文件或文件夾進(jìn)行操作,非常方便用戶管理服務(wù)器。這里不存在服務(wù)器安全的問題,因?yàn)橹挥蟹?wù)器管理員才擁有修改服務(wù)器文件或文件夾的權(quán)限,其他用戶沒有這種權(quán)限。
服務(wù)器端要實(shí)現(xiàn)下載的功能,是通過內(nèi)置對象Response的AddHeader方法設(shè)置HTTP標(biāo)頭名稱和值實(shí)現(xiàn)的。具體實(shí)現(xiàn)的方法是,先添加HTTP標(biāo)頭信息,再寫入文件內(nèi)容。Response.AddHeader(“Content-Disposition”,”attachment;filename= ” +file.name),其中,第一個(gè)參數(shù)是設(shè)置的HTTP標(biāo)頭的名稱,第二個(gè)參數(shù)是標(biāo)頭的值。Response.WriteFile(file.FullName),將指定文件的內(nèi)容發(fā)往客戶端,實(shí)現(xiàn)文件的下載。
在客戶端首先需要實(shí)現(xiàn)文件管理功能,如果沒有考試目錄,需要?jiǎng)?chuàng)建一個(gè)考試目錄。安裝Windows系統(tǒng)時(shí),同樣要有scrrun.dll文件,使用IE瀏覽器上網(wǎng),可以瀏覽服務(wù)器上提供的各種信息,如果服務(wù)器提供了上傳和下載功能,客戶端可以向服務(wù)器上傳數(shù)據(jù),也可以從服務(wù)器下載數(shù)據(jù)到客戶端。例如:瀏覽新浪的網(wǎng)站,只能瀏覽網(wǎng)站提供的各種信息,但是沒有權(quán)限刪除某個(gè)頁面文件,也不能刪除網(wǎng)頁中的某個(gè)圖片,即普通用戶只有讀的權(quán)限,沒有修改、刪除的權(quán)限。而網(wǎng)站的管理員則擁有修改、刪除的權(quán)限,可以對服務(wù)器上指定的文件進(jìn)行各種操作。但是,服務(wù)器不能對客戶端上的文件或文件夾進(jìn)行修改,否則上網(wǎng)的用戶,他的電腦上的所有個(gè)人信息就全部暴露在服務(wù)器的面前,沒有安全可言。在一個(gè)頁面中,不能像服務(wù)器端那樣,創(chuàng)建文件系統(tǒng)對象,雖然存在scrrun.dll這個(gè)文件,但是不能調(diào)用,這就是出于客戶端安全性的考慮。因此服務(wù)器不能對客戶端的文件或文件夾進(jìn)行任何管理,沒有這樣的權(quán)限。然而計(jì)算機(jī)病毒的傳播就是利用Windows系統(tǒng)的漏洞,達(dá)到對客戶端控制的目的。
由于IE瀏覽器的限制,人們可以上網(wǎng)瀏覽服務(wù)器上提供的信息,而服務(wù)器不能對客戶端的文件進(jìn)行任何操作。通過編程,有多種方法可以實(shí)現(xiàn)服務(wù)器對客戶端的文件進(jìn)行管理。方法一是編寫一個(gè)ActiveX控件,在控件中實(shí)現(xiàn)對文件的各種操作、文件讀取、上傳等功能,然后在頁面中,通過JavaScript腳本調(diào)用該控件,實(shí)現(xiàn)對客戶端的管理。方法二是利用msadco.dll的漏洞進(jìn)行處理,首先創(chuàng)建一個(gè)對象,obj=document.CreateElement(“object”),設(shè)置對象的屬性為msadco.dll的 classid,obj.SetAttribute(“classid”,ID的數(shù)值),obj對象相當(dāng)于服務(wù)器的內(nèi)置對象Server,使用它能夠創(chuàng)建各種組件對象。obj.CreateObject(“Microsoft.XMLHTTP”,””),創(chuàng)建一個(gè) xmlhttp 對象,可以從服務(wù)器上下載文件,obj.CreateObject(“ADODB.Stream”,””),實(shí)現(xiàn)文件的讀寫操作,obj.CreateObject(“Scripting.FileSystemObject”,””),該對象可以對文件進(jìn)行管理,即創(chuàng)建文件或文件夾、設(shè)置屬性、刪除、更名等有關(guān)文件管理的操作,它都能夠?qū)崿F(xiàn),功能非常強(qiáng)大。通過這3個(gè)對象的使用,基本上就能夠滿足網(wǎng)絡(luò)考試系統(tǒng)客戶端的要求。
客戶端的文件上傳,一般可以使用文件上傳控件。但是該控件需要指定具體的文件,單擊上傳按鈕,才能觸發(fā)文件的上傳,即文件上傳時(shí)需要用戶參與,而考試時(shí)文件的上傳不需要考生參與,考生只負(fù)責(zé)做題目,不可能讓考生每做完一道題目就上傳一次。因此,使用文件上傳控件的方法不可行。
在實(shí)際使用過程中,第一種方法編程的難度有些大,第二種方法會(huì)被殺毒軟件查殺,而且Windows系統(tǒng)已經(jīng)修復(fù)這些漏洞,因此不太容易實(shí)現(xiàn)。
服務(wù)器端由于可以使用Server對象,能夠滿足網(wǎng)絡(luò)考試服務(wù)器系統(tǒng)的要求,但是客戶端不能創(chuàng)建有關(guān)文件系統(tǒng)對象、數(shù)據(jù)流對象,因此無法實(shí)現(xiàn)文件的操作,無法實(shí)現(xiàn)網(wǎng)絡(luò)考試客戶端的要求。
因此,本辦公軟件網(wǎng)絡(luò)考試系統(tǒng)采用C/S結(jié)構(gòu),服務(wù)器處于不斷偵聽和接收狀態(tài),每接收一個(gè)客戶端,就分配一個(gè)Socket與客戶端關(guān)聯(lián),通信雙方使用Socket進(jìn)行聯(lián)系。
服務(wù)器端的設(shè)計(jì)包括用戶登錄、題庫分發(fā)、考生信息顯示、接收上傳數(shù)據(jù)等部分。重點(diǎn)是服務(wù)器上的數(shù)據(jù)下載到客戶端,客戶端的數(shù)據(jù)上傳到服務(wù)器。
首先,客戶端的程序必須具有文件操作的功能,因?yàn)樵诳荚囍埃蛻舳瞬⒉淮嬖诳忌@個(gè)文件夾,需要?jiǎng)?chuàng)建這個(gè)文件夾,然后才能把服務(wù)器上的數(shù)據(jù)下載下來。第二,一個(gè)文件要上傳,必須有該文件的完整路徑,否則讀取文件失敗。第三,考試系統(tǒng)的界面必須一直在最前面,需要調(diào)用API函數(shù)。
數(shù)據(jù)庫采用Access,因?yàn)檗k公軟件考試系統(tǒng)涉及的內(nèi)容不是很多,主要有考生信息、客戶端信息、考試題目信息等,屬于一個(gè)小型數(shù)據(jù)庫,所以使用Access完全能夠滿足網(wǎng)絡(luò)考試系統(tǒng)的要求。
并不是每個(gè)教師都了解和會(huì)使用Access應(yīng)用程序,而Excel應(yīng)用程序是很多教師都會(huì)使用的。因此為方便教師的使用,在系統(tǒng)中需要設(shè)計(jì)一個(gè)功能,將含有考生信息的Excel文件轉(zhuǎn)換為Access數(shù)據(jù)庫中的一個(gè)考生信息表。方法是創(chuàng)建一個(gè)考試信息表,一般4個(gè)字段:班級(jí)、學(xué)號(hào)、姓名、考試科目。然后讀取Excel表中的內(nèi)容,該表中的字段與信息表中的字段名稱要一致,否則無法讀取,字段的順序可以不同。將讀取的每一行數(shù)據(jù)寫到信息表中,循環(huán)讀取,直到最后一條記錄。
首先讀取客戶端傳來的“學(xué)號(hào)”數(shù)據(jù),然后讀取考試信息表,判斷是否有該學(xué)號(hào),有則回傳登錄成功信息;無,則該學(xué)號(hào)不正確或沒有該學(xué)號(hào),回傳登錄不成功的信息。這時(shí)在客戶端,考生需重新登錄,或由教師在服務(wù)器上添加該考生的相關(guān)信息??忌卿洸怀晒Γ?wù)器不會(huì)將考試的相關(guān)信息下載到客戶端,該考生無法參加考試。
教師必須事先準(zhǔn)備好題目,題目由6個(gè)部分組成,分別是:理論題、Windows操作題、Word操作題、Excel操作題、PowerPoint操作題和網(wǎng)絡(luò)操作題。操作題一般是根據(jù)知識(shí)點(diǎn)進(jìn)行設(shè)計(jì),例如Word操作題就包含字體、段落、項(xiàng)目符號(hào)、分欄等近30個(gè)知識(shí)點(diǎn),Word的字體主要有:字體、字形、字號(hào)、字體顏色等。要考Word的字體這個(gè)知識(shí)點(diǎn),可以出一道字體的題目,也可以出多套字體的題目。如果只有一道字體的題目,則在所有考生的試題中,都包含該道題目;如果有多套字體的題目,則通過一些算法,使這幾套題目均分到考生的試題中,要求相鄰的兩個(gè)考生題目不同,目的是防止考生考試作弊。
考生登錄成功后,服務(wù)器向該客戶端發(fā)送考題,即下載考題資料到客戶端??碱}資料分為兩個(gè)部分:(1)考試的素材,即:Windows文件夾、Word文件、Excel文件、PowerPoint文件、網(wǎng)絡(luò)題的文件,要有具體的素材,否則考試無法操作;(2)題目的內(nèi)容,它存在一個(gè)Access文件中,客戶端使用數(shù)據(jù)庫系統(tǒng),通過讀取mdb文件中的內(nèi)容,在客戶端界面上顯示題目。
在考試過程中,要能夠及時(shí)反映考生的考試狀態(tài),即是否保持網(wǎng)絡(luò)的連接、是否斷線,斷線的時(shí)間是多少等,讓教師能夠及時(shí)掌握考試的情況。每隔三分鐘向服務(wù)器發(fā)送一次信息,收到該信息表示連接正常,沒有收到表示斷線,記錄斷線的時(shí)間,在服務(wù)器的界面上顯示出來,提醒教師對斷線的機(jī)器進(jìn)行處理,重新打開IE瀏覽器、重啟系統(tǒng)、或更換到另一臺(tái)機(jī)器等,目的是解決網(wǎng)絡(luò)不通的問題。
考生上傳的數(shù)據(jù)是放在服務(wù)器端的數(shù)據(jù)庫中,不能上傳文件,因?yàn)槊可蟼饕粋€(gè)文件,就需要把原來的文件刪除或覆蓋,服務(wù)器將不斷地處理這些文件,影響了服務(wù)器的工作效率,因此改用數(shù)據(jù)庫處理就非常方便。一個(gè)文件對應(yīng)一個(gè)字段,該字段使用備注類型,長度為65536個(gè)字符,一般Word等考試文件的長度不超過40k,使用一個(gè)字段就能夠滿足存儲(chǔ)一個(gè)文件的要求。
在接收考生上傳的數(shù)據(jù)中,首先要說明是哪個(gè)考生,上傳的是哪個(gè)文件,然后接收該考生的文件內(nèi)容,查找數(shù)據(jù)表中該考生的信息,將收到的數(shù)據(jù)替換原有的數(shù)據(jù),實(shí)現(xiàn)數(shù)據(jù)的更新。
如果要簡化網(wǎng)絡(luò)考試系統(tǒng),數(shù)據(jù)上傳的操作可以省略。在客戶端設(shè)置考試的時(shí)間,時(shí)間到考試結(jié)束,壓縮考生文件夾,上傳壓縮文件,該壓縮文件就是最終考試的結(jié)果。上傳數(shù)據(jù)的目的就是考生換機(jī)后,服務(wù)器將考生的考試信息下載到他所在的機(jī)器上。電腦死機(jī)時(shí),如果文件保存的話,文件就不會(huì)丟失,重新啟動(dòng)后,考生文件夾下的內(nèi)容是不變的,因此如果不考慮學(xué)生換機(jī)這個(gè)因素,上傳數(shù)據(jù)這步可以省略。
考試結(jié)束,接收所有考生的文件,修改考生考試的狀態(tài),由“考試中”狀態(tài)更改為“考試結(jié)束”。客戶端系統(tǒng)退出,停止運(yùn)行,而服務(wù)器端的考試系統(tǒng)還處于運(yùn)行狀態(tài),客戶端再次登錄時(shí),服務(wù)器還會(huì)接收登錄信息,判斷該考生是“未登錄”、“考試中”、“考試結(jié)束”,根據(jù)數(shù)據(jù)庫中考生信息的狀態(tài)進(jìn)行分析,對客戶端作出相應(yīng)的回應(yīng)。
客戶端的設(shè)計(jì)包括考試計(jì)時(shí)、考試界面、數(shù)據(jù)上傳等操作。首先,考生登錄界面,輸入學(xué)號(hào),單擊“提交”按鈕,將考生信息上傳到服務(wù)器。其次,考試系統(tǒng)運(yùn)行時(shí),在考試界面上,顯示考試的時(shí)間,使用到計(jì)時(shí)的方式,一分鐘計(jì)時(shí)一次。
客戶端的界面分兩種情況設(shè)計(jì),考理論題時(shí)是一個(gè)滿窗口的界面;考操作題時(shí),界面是固定大小的,占整個(gè)窗口的六分之一或更小,一般只顯示一道題目的內(nèi)容,目的是考試界面不要影響考生對文件的操作。
客戶端的界面要一直處于最前面,沒有最小化、最大化,調(diào)用API函數(shù)SetWindowPos,可以實(shí)現(xiàn)這個(gè)功能。
客戶端每3分鐘上傳一次數(shù)據(jù),這個(gè)時(shí)間并不是固定的,可以人為作出調(diào)整。時(shí)間不能太短,否則客戶端會(huì)不斷上傳數(shù)據(jù);時(shí)間也不能太長,如果客戶端出現(xiàn)斷線、死機(jī)等情況,上傳的數(shù)據(jù)就不及時(shí),即客戶端的數(shù)據(jù)和服務(wù)器中的數(shù)據(jù)沒有保持一致,即考生做的內(nèi)容沒有及時(shí)上傳,會(huì)導(dǎo)致數(shù)據(jù)丟失。
客戶端數(shù)據(jù)的上傳有兩種方式,一種是以文件的形式保存,一種是以數(shù)據(jù)庫的形式保存。這兩種形式都需要,只是用在不同場合。
客戶端和服務(wù)器都需要對文件進(jìn)行管理,如創(chuàng)建文件或文件夾、查看文件或文件夾的屬性等各項(xiàng)操作。
每次上傳時(shí),并不是把所有的內(nèi)容都上傳,因?yàn)橛械念}目沒有做,它的內(nèi)容沒有改變,上傳沒有意義;有的題目做了,內(nèi)容上傳了,但是在上傳之后的一段時(shí)間內(nèi),沒有對它進(jìn)行任何操作,此時(shí)文件的內(nèi)容與數(shù)據(jù)庫中的內(nèi)容是一致的,再上傳也沒有意義。如果文件的內(nèi)容與數(shù)據(jù)庫的內(nèi)容沒有變化,就不需要修改,因此要對上傳的文件進(jìn)行判斷,即該文件是否發(fā)生變化,如何判斷文件是否發(fā)生變化,可以根據(jù)該文件的最后一次修改時(shí)間來判斷。
操作題做完必須關(guān)閉,因?yàn)橐粋€(gè)文件在使用時(shí),另一個(gè)進(jìn)程是無法打開該文件,并對該文件進(jìn)行讀取、寫入、更名等操作。因此,必須等該文件被關(guān)閉,才可以對它進(jìn)行操作。
Windows操作題主要是判斷文件或文件夾的創(chuàng)建、刪除、移動(dòng)、復(fù)制、更名、創(chuàng)建快捷方式、屬性7個(gè)內(nèi)容。文件的創(chuàng)建可以是任意文件類型,如文本文件、壓縮文件等。一般都會(huì)考學(xué)生文本文件的創(chuàng)建,并打開該文本文件,在里面輸入一段文字,并保存退出。因此,需要一個(gè)字段保存有關(guān)文本文件的內(nèi)容。
Windows操作題上傳的內(nèi)容,根據(jù)要考核學(xué)生掌握的知識(shí)點(diǎn),一般情況下,需要以下內(nèi)容:文件或文件夾的名稱、屬性。因?yàn)閯?chuàng)建、刪除、移動(dòng)、復(fù)制、更名、創(chuàng)建快捷方式都涉及文件或文件夾的名稱,根據(jù)名稱就可以判斷是否進(jìn)行相關(guān)的操作,例如要?jiǎng)?chuàng)建一個(gè)文件,有了該文件,并且路徑正確,則該題操作正確;如果沒有該文件,則該題操作錯(cuò)誤,其它的知識(shí)點(diǎn)操作類似。屬性涉及只讀、文檔、隱藏等內(nèi)容,根據(jù)屬性的內(nèi)容,就可以判斷屬性知識(shí)點(diǎn)的操作。
在設(shè)計(jì)題目時(shí),文件夾的深度一般不超過5層,當(dāng)然也可以有多層,只是增加了程序的復(fù)雜性。一個(gè)文件夾含有多級(jí)子文件夾,目的是考核學(xué)生掌握搜索這個(gè)知識(shí)點(diǎn)的程度。掌握Windows的搜索操作,要很容易找到指定的文件或文件夾,不管它在哪個(gè)位置。文件夾超過五層也沒有太多的意義,因此,在設(shè)計(jì)題目的時(shí)候,假定文件夾的最大深度為五層。
根據(jù)上述分析,Windows操作題上傳的內(nèi)容的組成包含:上一級(jí)文件夾的序號(hào)、本級(jí)文件夾的序號(hào)、本級(jí)或文件夾的名稱、文件還是文件夾、屬性。使用文件系統(tǒng)對象,遞歸的方式讀取Windows操作題上的每一個(gè)文件和文件夾,將讀取的每一項(xiàng)內(nèi)容存放到數(shù)組或指針中,遞歸結(jié)束后,將該內(nèi)容上傳。
Word操作題、Excel操作題、PowerPoint操作題的操作類似。以 Word操作題為例,首先,需要判斷Word應(yīng)用程序是否在使用該題,如果Word里面有這道題目,說明該文件正在被Word操作,不能對該文件再次打開,也就是不能上傳該文件。如何判斷該文件是否被Word打開,可通過API函數(shù)FindWindow來判斷Word是否在運(yùn)行,如果在運(yùn)行,讀取Word的標(biāo)題,因?yàn)闃?biāo)題就是文件名,即可判斷文件是否在使用。
讀取指定的文件到一個(gè)字符數(shù)組中,上傳數(shù)組中的內(nèi)容到服務(wù)器,服務(wù)器接收數(shù)據(jù),將數(shù)據(jù)存入數(shù)據(jù)庫。上傳的文件就不壓縮了,壓縮以后還需要再解壓,增加了系統(tǒng)的復(fù)雜性,當(dāng)然,也可以先壓縮該文件,再上傳,文件的大小肯定會(huì)減少很多,減輕了服務(wù)器的負(fù)擔(dān),也減少了數(shù)據(jù)庫存儲(chǔ)字段的容量。
網(wǎng)絡(luò)操作題一般是把網(wǎng)頁文件另存為文本文件、把網(wǎng)頁文件中的圖片另存、申請一個(gè)郵箱、使用Outlook Express發(fā)送一封郵件等。文本文件、圖片文件是一個(gè)文件,與Word的操作類似,上傳該文件靠數(shù)據(jù)庫即可。郵箱需要上傳各個(gè)字段中的內(nèi)容,例如:上傳姓名、密碼、確認(rèn)密碼等字段的內(nèi)容,注意各個(gè)字段之間的分隔,不能不加區(qū)分地把所有字段的內(nèi)容放在一起。Outlook Express發(fā)送郵件,需要配置郵箱服務(wù)器,本系統(tǒng)沒有實(shí)現(xiàn)郵箱服務(wù)器的功能,需要考生保存要發(fā)送的郵件,擴(kuò)展名為eml,讀取該文件,可以獲取收件人、主題、正文等信息,而這些信息正是考核的要求,因此使用保存郵件的方法,實(shí)現(xiàn)對郵件的考核。
考生單擊“交卷”按鈕,表示考試結(jié)束;或考試的時(shí)間到,考試結(jié)束。首先,需要把Word等應(yīng)用程序關(guān)閉,如果沒有關(guān)閉,表示某個(gè)文件還在繼續(xù)使用,WinRAR程序在壓縮這個(gè)文件時(shí),會(huì)提示壓縮失敗,導(dǎo)致整個(gè)考生文件夾壓縮的失敗。其次,壓縮整個(gè)考生文件夾,生成一個(gè)rar壓縮文件,不是一個(gè)一個(gè)文件上傳,而是壓縮后的一個(gè)文件。讀取該文件,將它上傳到服務(wù)器,修改考生的考試狀態(tài)。第三,刪除考生文件夾,包括該文件夾下的所有文件和子文件夾,避免考試信息泄漏。
學(xué)生再用學(xué)號(hào)登錄時(shí),服務(wù)器根據(jù)考試狀態(tài),判斷該考試是否考試結(jié)束,如果考試結(jié)束,則在客戶端的界面上提示考試結(jié)束。
辦公軟件網(wǎng)絡(luò)考試系統(tǒng)是一個(gè)非常復(fù)雜的系統(tǒng),涉及的內(nèi)容比較多,有文件管理、SQL數(shù)據(jù)庫知識(shí)、Excel的應(yīng)用、Socket套接字、WinRAR壓縮和解壓、進(jìn)程和線程的管理等多方面的知識(shí),重點(diǎn)和難點(diǎn)是網(wǎng)絡(luò)通信,即Socket套接字的使用,如果沒有套接字,也就不稱為網(wǎng)絡(luò)考試系統(tǒng)了,是一個(gè)單機(jī)版的系統(tǒng)。本系統(tǒng)還需要解決偵聽數(shù)目的問題,一般是10個(gè),如果同時(shí)有20個(gè)客戶端要求連接,則只有排在前面的10個(gè)給處理,出現(xiàn)客戶端連接慢的現(xiàn)象。本系統(tǒng)還需要解決連接客戶端個(gè)數(shù)的問題,由于沒有采用線程池技術(shù),最多可以連接64個(gè)客戶端??傊W(wǎng)絡(luò)考試系統(tǒng)需要考慮的問題非常多,本系統(tǒng)主要是解決上傳和下載的問題,基本上實(shí)現(xiàn)了網(wǎng)絡(luò)考試的功能,達(dá)到了預(yù)期的設(shè)計(jì)目標(biāo),在系統(tǒng)運(yùn)行的過程中,還會(huì)出現(xiàn)各種各樣的問題,需要不斷地完善。
[1]杜少杰.基于形式語言的Word操作題自動(dòng)閱卷方案及其實(shí)現(xiàn)[J].唐山師范學(xué)院學(xué)報(bào),2006,28(2):78-79.
[2]李愛玲.基于VBA的Word文檔自動(dòng)評(píng)閱技術(shù)研究[J].科學(xué)技術(shù)與工程,2008,8(17):83-85.
[3]周建良.基于WinPcap庫的通用程序設(shè)計(jì)模型[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2007,11(2):83-85.
[4]朱耀強(qiáng).Word操作題自動(dòng)閱卷功能的實(shí)現(xiàn)[J].寧波職業(yè)技術(shù)學(xué)院學(xué)報(bào),2007,11(2):811-812.
[5]劉中宇,黃福君,等.PowerPoint操作測試自動(dòng)評(píng)價(jià)技術(shù)研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2009,19(2):237-239.
[6]吳豐科,蘇厚勤,朱漢群.Excel對象模型在統(tǒng)計(jì)報(bào)表中的應(yīng)用研究[J].計(jì)算機(jī)應(yīng)用與軟件,2009,26(2):201-204.
[7]吳亞坤,郭海旭.Office文檔自動(dòng)評(píng)分的研究與實(shí)現(xiàn)[J].遼寧大學(xué)學(xué)報(bào),2008,35(4):334-337.
[8]李文江.利用VBA實(shí)現(xiàn)對Word文檔的自動(dòng)評(píng)分[J].重慶文理學(xué)院學(xué)報(bào),2007,26(2):73-77.
[9]趙曉峰,肖丹.基于XML與ACTIVEX技術(shù)的Office操作自動(dòng)評(píng)分系統(tǒng)[J].計(jì)算機(jī)與數(shù)字工程,2006,34(12):178-180.
[10]李菲.考試系統(tǒng)中Excel操作題自動(dòng)閱卷的實(shí)現(xiàn)[J].遼寧師專學(xué)報(bào),2009,11(1):46,97.
[11]邵小兵,廖慧芬.Office實(shí)踐操作自動(dòng)評(píng)分的實(shí)現(xiàn)[J].計(jì)算機(jī)與現(xiàn)代化,2005(12):135-136.
[12]鄧振杰,李瑛.Visual Basic程序設(shè)計(jì)實(shí)用教程[M].北京:中國鐵道出版社,2010.
[13]周曉宏.Visual Basic 6.0程序設(shè)計(jì)實(shí)用教程[M].北京:高等教育出版社,2007.
[14]孫俏.Visual Basic 6.0程序設(shè)計(jì)[M].北京:中國鐵道出版社,2011.
[15]劉炳文.Visual Basic程序設(shè)計(jì)教程[M].北京:清華大學(xué)出版社,2005.