




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、杭州師范學院本科畢業(yè)論文java語言上機考試系統(tǒng)的設計與實現(xiàn)目錄摘要abstract第一章 引言11 計算機等級考試(二級)12 考試系統(tǒng)采用的實現(xiàn)模式第二章 考試系統(tǒng)采用的技術和運行平臺21 visual basic .net22 sql server 200023 web服務231 web服務的概念232 web服務的優(yōu)點24 .net對web服務的支持25 考試系統(tǒng)的運行平臺251 硬件平臺252 軟件平臺第三章 考試系統(tǒng)的數(shù)據(jù)庫設計、構成模塊及特點31 考試系統(tǒng)的數(shù)據(jù)庫設計32 考試系統(tǒng)的構成模塊321 題庫管理模塊0322身份驗證模塊0323各類試題模塊0324監(jiān)考管理模塊1325閱
2、卷模塊1326缺考統(tǒng)計模塊133 考試系統(tǒng)的特點1第四章 考試系統(tǒng)實現(xiàn)的關鍵技術241 數(shù)據(jù)庫操作242 打亂序號算法543 文件的壓縮與解壓縮5第五章 總結與展望7參考文獻9附錄a:9系統(tǒng)使用說明:9摘要:隨著信息技術的廣泛使用,各類計算機考試也應運而生,這類考試多為上機考試,因此,考試的環(huán)境,即考試系統(tǒng)的設計和實現(xiàn)非常重要。在網(wǎng)絡技術逐漸滲入社會生活各個層面的今天,采用網(wǎng)絡考試是一個很重要的方向。目前,網(wǎng)絡考試系統(tǒng)的實現(xiàn),可以采用傳統(tǒng)的客戶機/服務器模式,也可以采用目前流行的瀏覽器/服務器模式,即基于web的方式。本系統(tǒng)采用的后一種模式,因此,本文簡單的介紹了該模式的實現(xiàn)方法。同時,還介紹
3、了等級考試的一些相關信息;語言類考試系統(tǒng)設計和實現(xiàn)的相關技術;該系統(tǒng)的組成模塊、數(shù)據(jù)庫設計以及運行平臺。還介紹了該考試系統(tǒng)的特點和實現(xiàn)的關鍵技術。最后,指出了該考試存在的一些不足,以及對實現(xiàn)該考試系統(tǒng)的主要技術web服務技術在考試系統(tǒng)中的應用進行了展望。關鍵詞:考試系統(tǒng) web服務 數(shù)據(jù)庫 visual basic .netabstractwith the mass use of the information technology, all kinds of computer examinations arise. and people exam usually by operate the
4、 computer, so, the environment of the examination, namely have an examination the design and realizing of system, is very important. today, when the network technology permeates each aspect of social life gradually, so choose the network to have an examination is a very important direction. at prese
5、nt, to realize the network examination system, can adopt the traditional mode of client / server or the present popular mode of browser / server which based on web. the last kind of mode is chosen by this system, hence introduced the mode implementation method in the paper. meanwhile, introduced som
6、e relevant information of grade examination, relevant technology that the system is designed and realized , and composition module, database design, operation platform of this system. finally, looking forward to the main technology of the system realizing that the application of the web served techn
7、ology.keywords:examination system web services database visual basic .net第一章 引言當今世界,社會和經濟的發(fā)展對信息資源、信息技術和信息產業(yè)的依賴程度越來越大,信息化是世界各國發(fā)展經濟的共同選擇。我國也已把加快國家經濟信息化提到重要日程。西方國家在普及計算機知識,全方位、多層次地培養(yǎng)各行各業(yè)計算機應用人員方面,有許多經驗值得我們借鑒,其中一條就是開展全國范圍的定期的計算機各類等級考試。為了適應我國必須盡快實現(xiàn)國家經濟信息化,提高全社會的計算機應用水平,使我國的計算機應用與國際社會接軌的形勢的要求,在我國也已經設立或引進了
8、各類計算機考試。國家教委組織的"全國計算機等級考試"就是一種。等級考試除了理論考以外,很重要的一部分是上機操作,也就是在指定的時間里完成指定的計算機基本操作,按給定要求編寫、調試程序。上機考試與傳統(tǒng)的考試相比,它最大限度排除了人為因素的作用,保證了考試的客觀性;考生在考試之后,一般就能夠得到成績,使考試具有實時性;而且通過計算機改卷,標準一致,具有最佳的可靠性。同時,還可以考查考生的實際動手操作能力。11 計算機等級考試(二級)全國計算機等級考試(二級)是教育部考試中心面向社會推出的一項測試應試者計算機應用知識和能力的考試。二級考試的基本要求是:具有計算機的基礎知識;了解操
9、作系統(tǒng)的基本概念,掌握常用操作系統(tǒng)的使用;掌握基本數(shù)據(jù)結構和常用算法,熟悉算法描述工具流程圖的使用;能熟練地使用一種高級語言或數(shù)據(jù)庫語言編寫程序、調試程序。二級考試包含的內容比較廣泛,有計算機的基礎知識,windows的基本操作,程序設計以及數(shù)據(jù)庫的知識。以往程序設計的語言主要有qbasic、fortran、pascal、c以及foxbase,其中foxbase是數(shù)據(jù)庫程序設計語言,其余四種為高級語言。每種高級語言的考試內容基本包括該語言的基本結構、基本語句、數(shù)據(jù)類型、運算符、表達式、數(shù)組、函數(shù)、文件等。教育部考試中心新推出了2004版全國計算機等級考試(ncre)大綱,對全國計算機等級考試的
10、考試科目設置、考核內容、考試形式等實施調整。二級考試新增加了java、access、c+三個科目,逐步??级塹basic和foxbase,這些新增科目計劃將于明年上半年在我省正式推廣。二級科目名稱進一步規(guī)范,根據(jù)應用性質和科目特點將現(xiàn)有科目劃分成二級語言程序設計(c、c+、java、visual basic、qbasic)和二級數(shù)據(jù)庫程序設計(foxbase、visual foxpro、access)兩類。二級上機考試中將取消對dos部分的考核,各科目上機考試運行平臺為:access 2000、java jdk 1.4.2、visual c+ 6.0、visual basic 6.0、vis
11、ual foxpro6.0、turbo c 2.0,除了turbo c 2.0仍在dos 5.0以上系統(tǒng)運行外,其他均在windows2000系統(tǒng)上運行,對逐步??嫉娜齻€科目考試平臺不作任何改動。12 考試系統(tǒng)采用的實現(xiàn)模式在網(wǎng)絡技術逐漸滲入社會生活各個層面的今天,傳統(tǒng)的考試方式也面臨著變革,而網(wǎng)絡考試則是一個很重要的方向?;跀?shù)據(jù)庫和網(wǎng)絡應用的考試系統(tǒng)有多種實現(xiàn)技術,可以采用傳統(tǒng)的客戶機/服務器(client/server)模式,也可以采用目前流行的瀏覽器/服務器(browser/web)模式,即基于web的方式。所謂client/server模式,是指把數(shù)據(jù)庫內容(比如試題庫)放在遠程的服
12、務器上,在客戶機上安裝相應軟件。client/server結構在技術上雖然很成熟,但該結構的程序往往只局限在小型的局域網(wǎng)內部,不利于擴展。并且,該結構的每臺客戶機都需要安裝相應的客戶端程序。由于考試系統(tǒng)擁有的用戶量比較多,因此,如果采用該結構,系統(tǒng)的安裝與維護工作比較繁重。同時,由于應用程序直接安裝在客戶機,客戶機直接和數(shù)據(jù)庫服務器交換數(shù)據(jù),系統(tǒng)的安全性也受到一定影響?;趙eb的方式其實是一種特殊的client/server方式。在這種方式中,客戶端是各種各樣的瀏覽器,瀏覽器作為通用的用戶程序界面,主要提供人機接口服務,而服務器則響應用戶請求并提供用戶需要的信息。browser/web模式采
13、用三層體系結構,即包括數(shù)據(jù)庫服務器、web服務器、客戶瀏覽器三部分。由于采用了互聯(lián)網(wǎng)的相關技術,browser/web結構的系統(tǒng)開放性好,易維護和擴展??蛻魹g覽器只跟web服務器交換數(shù)據(jù),數(shù)據(jù)安全性比較高,同時,由于客戶端不需要安裝專用程序,可大大降低運行維護費用。當然,browser/web結構在網(wǎng)絡安全方面也有其弱點。在client/server結構中,應用程序是在客戶機上運行的獨立程序,如果這臺計算機安全的話,那么應用程序就是安全的。而在browser/web結構中,眾多的客戶瀏覽器訪問同一個web服務器,web服務器會成為攻擊活動的對象?;谏鲜隹紤],用browser/web模式來設計
14、考試系統(tǒng)比較合適,服務器端采用web server+數(shù)據(jù)庫系統(tǒng)+asp組件來構成考試的應用服務系統(tǒng);客戶端采用瀏覽器來完成考試全過程。所有的系統(tǒng)升級和更新均只要在服務器端完成,這樣可較靈活地適應考試內容的不斷更新,從而減少系統(tǒng)升級、更新的工作量,同時可進行遠程系統(tǒng)維護和管理。第二章 考試系統(tǒng)采用的技術和運行平臺該考試系統(tǒng)用microsoft visual basic.net進行開發(fā),數(shù)據(jù)庫采用sql server 2000。由于系統(tǒng)采用三層結構,即數(shù)據(jù)庫服務器、web服務器、客戶瀏覽器,為了實現(xiàn)可用子網(wǎng)內的任何一臺服務器作為數(shù)據(jù)庫服務器的需求,本系統(tǒng)采用web服務技術,即把web服務
15、裝在web服務器中,通過訪問web服務來進行數(shù)據(jù)庫的訪問。下面分別對microsoft visual basic.net、sql server 2000和web服務技術進行介紹。21 visual basic .netmicrosoft visual basic.net 是 microsoft visual basic 6.0 的后續(xù)版本,它是基于 .net 框架直接創(chuàng)建的,因此可以使用所有的平臺特性,并能夠與其他 .net 語言協(xié)同工作。211 visual basic 6.0visual basic 6.0 有限的面向對象的特性,特別是缺乏繼承,使之不適合于開發(fā)面向對象的架構。正由于這一點
16、,對于某些類型的開發(fā),特別是大型、復雜應用程序的開發(fā),與c+或java開發(fā)人員相比,visual basic 6.0開發(fā)人員會處于不利的地位。另外,visual basic 6.0沒有多線程能力;錯誤處理能力差,與其他語言如c+的集成能力差;對于基于internet的應用程序,沒有生動有效的用戶界面等缺點。212 visual basic.netvisual basic.net對于it業(yè)來說,它可能是一個小的前進,但是對vb開發(fā)人員來說,它是一個巨大的進步!visual basic .net并不只是向核心技術添加和修改了技術特性的vb新版本,它打破了模式的框框!實際上它是一種新編程語言,基于新
17、的核心技術.net范例。在visual basic .net之中,技術變化是如此之多,以致vb開發(fā)人員可以與c#,c和java開發(fā)人員相競爭。在許多方面visual basic .net都與它以前的版本不同。它具有更高的一致性和類型安全級別。用visual basic .net我們更容易寫出控制性、可讀性很高的代碼。雖然它有時要求你習慣于那些編譯時額外的檢查,但它將在你測試和調試時,為你節(jié)約寶貴的時間。vb.net的語法與vb 6.0已經有了根本性的差別,與其說vb.net是vb 6.0的升級,不如說vb.net是c#的basic版本。由于采用了cli的結構,vb.net將很難兼容以前的vb
18、6.0的代碼,大量的vb代碼無法順利地轉移到.net上,不過開發(fā)人員仍然可以在.net平臺下,將原有的com組件進行重新包裝,形成.net平臺下的web服務組件,而且.net的整個平臺、開發(fā)工具的高集成性和友好的開發(fā)環(huán)境還是會給開發(fā)人員留下深刻印象。在java領域中,無論是borland的jbuilder 6,還是sun的forte for java,或是ibm的webshpere studio application developer、visualage for java都無法達到vb. net的生產效率。22 sql server 2000sql server是一個功能強大的后臺數(shù)據(jù)庫管
19、理系統(tǒng),它可以幫助各種規(guī)模的企業(yè)用來管理數(shù)據(jù),以可伸縮性的商業(yè)解決方案、強大的數(shù)據(jù)倉庫以及與microsoft office和microsoft backoffice的緊密集成為企業(yè)提供額外的商業(yè)便利,日益為廣大用戶所喜愛。到目前為止,sql server 2000是microsoft公司推出的數(shù)據(jù)庫管理系統(tǒng)的最新版本。它不但繼承了原來版本的許多優(yōu)點,而且又增加了很多更先進的功能。microsoft sql server 2000使用了最先進的數(shù)據(jù)庫架構,具有完全的web功能,通過對高端硬件平臺以及最新的網(wǎng)絡和存儲技術的支持,可以為較大的web站點和企業(yè)級的應用提供很好的解決方案。sql se
20、rver 2000擴展了sql server 7.0版的性能,并增加了幾種新的功能,使得用戶能夠更方便、更快捷地管理數(shù)據(jù)庫和開發(fā)應用程序。因此它已成為大規(guī)模聯(lián)機事務處理(oltp)、數(shù)據(jù)倉庫和電子商務應用程序的優(yōu)秀數(shù)據(jù)庫平臺。23 web服務隨著internet和網(wǎng)絡化的日漸成熟,無論是屬于單個組織的計算機還是屬于多個組織的計算機都想通過internet彼此交流。借助更基本的internet通信協(xié)議,可能需要幾個月的時間和大量的資本開發(fā)自己的系統(tǒng)。而且當使用該系統(tǒng)和另一個組織的系統(tǒng)進行通信時,兩個系統(tǒng)之間的轉換也許并不容易,甚至是不可能的,最后得到的只是一團糟。過去人們引入分布式架構系統(tǒng)以解決
21、這個問題。大多數(shù)系統(tǒng)本身的缺點甚至妨礙了它們在企業(yè)范圍內的部署,更別說在全球的部署。為此帶來了web服務。231 web服務的概念從表面上看,web服務就是一個應用程序,它向外界暴露出一個能夠通過web進行調用的api。這就是說,你能夠用編程的方法通過web來調用這個應用程序。web服務內在的含義是基于xml的通信流通過http協(xié)議在一個公共網(wǎng)絡(internet)上傳送。web服務平臺是一套標準,它定義了應用程序如何在web上實現(xiàn)互操作性。你可以用任何你喜歡的語言,在任何你喜歡的平臺上寫web 服務 ,只要我們可以通過web服務標準對這些服務進行查詢和訪問。232 web服務的優(yōu)點web服務
22、最大的特性也許是使用xml支持的跨平臺的兼容性。即使我們假設一個組織內部使用的都是相同的操作系統(tǒng)、軟件等,我們也不可能期望其他的組織使用相同的設備。而web服務不作此類的要求, 它不依賴于任何平臺或公司。它的部分吸引力在于,不管是在solaris,unix,mac還是在windows上部署web服務,所有用戶都可以連接并使用。這和一般web站點是一樣的,不必關心要訪問的web站點運行于什么平臺,只要它能夠正常工作就行。 web服務需要使用一種平臺中立的方法來描述數(shù)據(jù)和交換數(shù)據(jù),為此它使用xml(可擴展標記語言)。xml使用標準化的文本格式以一種簡單的方法格式化數(shù)據(jù)(無論數(shù)據(jù)有多復雜)。最初,開
23、發(fā)人員對xml嗤之以鼻,認為它只不過是書寫腳本的另一種方式而已。然而這些慣于從事數(shù)據(jù)庫管理和開發(fā)的開發(fā)人員不久便意識到,xml是能在雙方之間提供數(shù)據(jù)而無須依賴于專門方案的一種技術。24 .net對web服務的支持.net從一開始就深深打上了web服務技術的烙印,在它的市場推廣活動中,無時無刻不凸顯其作為web服務的開發(fā)和部署平臺的特征??梢哉f,.net天生就是為web服務準備的開發(fā)和部署平臺。.net是一個全新的架構,它的整個平臺、開發(fā)工具的高集成性和友好的開發(fā)環(huán)境給開發(fā)人員留下深刻印象。在java領域中,任何一種語言都無法達到vs .net的生產效率。開發(fā)工具是.net的一大優(yōu)勢。.net正
24、是為進行基于web服務模型的應用程序開發(fā)而度身定做的新一代開發(fā)工具和基本結構。.net構建塊服務、新增的.net設備支持以及即將到來的.net用戶體驗,使人們能夠充分利用web服務模型,如愿以償?shù)亻_發(fā)出新一代應用程序。vb.net平臺內建了對web服務的支持,包括web服務的構建和使用。與其它開發(fā)平臺不同,使用.net平臺,你不需要其他的工具或者sdk就可以完成web服務的開發(fā)了。.net framework本身就全面支持web 服務,包括服務器端的請求處理器和對客戶端發(fā)送和接受soap消息的支持。利用visual studio.net,你可以不必了解http、xml、soap、wsdl等底層
25、協(xié)議,同樣能開發(fā)和使用web服務。25 考試系統(tǒng)的運行平臺251 硬件平臺web服務器和數(shù)據(jù)庫服務器可共用一臺或分別用一臺專用服務器或高檔pc機,聯(lián)網(wǎng)設備可采用交換機或hub,帶寬為10m-100m。252 軟件平臺1) 操作系統(tǒng)服務器端采用windows 2000 server ,客戶端采用windows即均可。2) web服務器目前,市場上有很多web服務器軟件,如iis、netscape enterprise server、apache等,各有千秋,其中微軟的iis 具有對系統(tǒng)硬件要求低、功能強、配置簡便且與windows
26、60;緊密集成等優(yōu)點,比較適合各院校和中學的網(wǎng)絡硬、軟件環(huán)境,因此我們選用iis 5.0。 3) 數(shù)據(jù)庫服務器數(shù)據(jù)庫服務器與 web服務器應有較緊密的結合,windows 、iis均為微軟的產品,其數(shù)據(jù)庫也有相應的產品,即sql server,所以我們選用sql server 2000 為數(shù)據(jù)庫服務器。 4) 瀏覽器ie瀏覽器(建議版本5.5以上)第三章 考試系統(tǒng)的數(shù)據(jù)庫設計、構成模塊及特點31 考試系統(tǒng)的數(shù)據(jù)庫設計考試系統(tǒng)離不開數(shù)據(jù)庫系統(tǒng)的支持,不論是試題、答案,還是考生信息都需要存放在數(shù)據(jù)庫中,而且數(shù)
27、據(jù)庫獨立于程序而存在,具有較好的安全性。本系統(tǒng)使用的數(shù)據(jù)庫軟件為sql server 2000。首先建立一名為ksxt的數(shù)據(jù)庫,主要表格介紹如下:311 考生信息表(stuinfo)列名數(shù)據(jù)類型長度允許空idnvarchar10namenvarchar8statenvarchar6該表主要存放考生的信息,其中id表示考生的準考證號;name表示考生的姓名;state表示考生狀態(tài),分為三種:已交卷、未交卷(正在考試中)、缺考??忌卿浀臅r候輸入準考證號,從該表中檢查是否存在該準考證號,如果存在,顯示該考生姓名,允許進入考試界面;否則顯示“無此考生”。state字段有助于統(tǒng)計缺考人數(shù)。312 各類
28、試題表(xuanze,tiankong,panduan,chengxtk,chengxts,chengxsj)主要包括選擇題表、判斷題表、概念填空題表、程序填空題表、程序調試題表、程序設計題表共6張表,每張表中存放了各類試題的題號和題目。下面以程序設計題表為例說明:列名數(shù)據(jù)類型長度允許空thchar2xthchar2tmntext16oleimage16其中th表示該試題在第幾套題目中;xth表示該試題的題號,即這套題目中的2個程序設計題中的第幾題;tm表示該試題的題目描述;ole字段存放的為考試時要讀出來,解壓,供考生下載的壓縮文件。如果是選擇題表,還有a、b、c、d四個字段分別表示該試題四
29、個選項的內容。除了程序設計題以外,其他試題表沒有ole字段。之所以設th字段,是因為試題是按套分的,每一套中又有若干題目。每套中的題目事先就定好的,但是每次抽到該套題目時,試題的順序是打亂的,以減少出現(xiàn)一模一樣試卷的概率。313 考試信息表(testresult01testresult99)列名數(shù)據(jù)類型長度允許空idnvarchar10xuanzthchar2pandthchar2tiankthchar2chengxtkthchar2chengxtsthchar2chengxsjthchar2xuanzdanvarchar40pandanvarchar20tiankdanvarchar100c
30、hengxtkdanvarchar100chengxtsdaimage16chengxsjdaimage16lasttimeint4考試信息表共有99張,根據(jù)考生準考證號后兩位來決定把該考生的考試信息放入哪張表中,比如該考生準考證號末兩位為28,則放入表testresult28中。其中id表示考生的準考證號;xuanzth、pandth、tiankth、chengxtkth、chengxtsth、chengxsjth分別表示選擇題、判斷題、概念填空題、程序填空題、程序調試題、程序設計題的題號;xuanzda、pandda、tiankda、chengxtkda、chengxtsda、chengx
31、sjda分別表示選擇題、判斷題、概念填空題、程序填空題、程序調試題、程序設計題的正確答案。lasttime用于記錄考試時間,如果時間到了還沒有交卷,則回收答案,停止考試。314 回收表(reclaim,result)回收表共有兩張,一張記錄回收的答案,另一張記錄回收是否成功。表1列名數(shù)據(jù)類型長度允許空idnvarchar10xuanzthchar2pandthchar2tiankthchar2chengxtkthchar2chengxtsthchar2chengxsjthchar2xuanzdanvarchar40pandanvarchar20tiankdanvarchar100chengxt
32、kdanvarchar100chengxtsdaimage16chengxsjdaimage16這張表主要用來記錄回收的答案,其中xuanzth、pandth、tiankth、chengxtkth、chengxtsth、chengxsjth分別表示選擇題、判斷題、概念填空題、程序填空題、程序調試題、程序設計題的題號,xuanzda、pandda、tiankda、chengxtkda、chengxtsda、chengxsjda分別表示考生的選擇題、判斷題、概念填空題、程序填空題、程序調試題、程序設計題的答案,可與考試信息表中各題的正確答案做比較。表2列名數(shù)據(jù)類型長度允許空idnvarchar10
33、namenvarchar8xuanzechar2pandchar2tiank char2chengxtkchar2chengxtschar2chengxsjchar2這張表主要用來判斷回收是否成功。其中id表示考生的準考證號;name表示考生的姓名;xuanze、pand、tiank、chengxtk、chengxts、chengxsj分別表示選擇題、判斷題、概念填空題、程序填空題、程序調試題、程序設計題是否回收成功,如果成功,則為ok,否則為空。315管理表(setting)列名數(shù)據(jù)類型長度允許空dbname nvarchar10servername nvarchar10sqlpwdnvar
34、char10testdirnvarchar40testtypenvarchar4relaimdirnvarchar40redopwdnvarchar10其中dbname表示數(shù)據(jù)庫名稱;servername表示服務器名稱;sqlpwd表示sql server服務器密碼;testdir表示考試目錄;testtype表示考試類型;relaimdir表示回收目錄;redopwd表示重做密碼。有些考生考試時可能會因為誤操作而退出了系統(tǒng),這時候要再次進入系統(tǒng)進行考試,就需要輸入密碼,以防止作弊行為。重做密碼是在考生第一次進入系統(tǒng)時從該表中獲得的。 32 考試系統(tǒng)的構成模塊該考試系統(tǒng)主要有6個模塊構成,包括
35、題庫管理模塊、身份驗證模塊、各類試題模塊、監(jiān)考管理模塊、閱卷模塊、缺考統(tǒng)計模塊。各模塊關系如圖1所示。下面分別介紹這6個模塊??荚囅到y(tǒng)題庫管理模塊身份驗證模塊監(jiān)考管理模塊各類試題模塊閱卷模塊缺考統(tǒng)計模塊選擇題模塊判斷題模塊概念填空題模塊程序填空題模塊程序調試題模塊程序設計題模塊圖1321 題庫管理模塊題庫管理模塊實現(xiàn)了試題管理與試卷形成功能。試題的管理主要包括試題編輯、試題修改。在該考試系統(tǒng)中,預計準備20套選擇題、填空題、判斷題、程序分析題和程序設計題,每套的題目都是事先定好的。每套試卷形成時,隨機抽取各類試題的題號,可能兩次抽到相同題號試題的概率是比較大的,但每次試題的順序都是打亂的,以減
36、少出現(xiàn)重復試卷的概率。322身份驗證模塊 考生登錄系統(tǒng)時,需要輸入準考證號,根據(jù)準考證號到相應的數(shù)據(jù)庫表(這里是“考生信息表”)中查找是否有該考生存在。如果有此準考證號,表示存在該考生,顯示該考生的姓名;否則提示“沒有該考生信息,請確認后重新輸入”。當已經確認存在該考生時,還需要判斷該考生是否第一次進入系統(tǒng),如果是第一次,則進行組題,抽取題號;如果不是第一次,則進入另一個頁面,要求輸入重做密碼,直到密碼輸入正確才能進入考試界面,并且考試的試題內容與順序都和上次進入時的一樣。重做密碼是在考生第一次進入系統(tǒng)時獲得的。流程圖如圖2所示。323各類試題模塊1) 選擇題模塊初次進入選擇題界面時,顯示第一
37、個題目的內容??梢杂谩吧项}”、“下題” 按鈕來選擇不同的題目,在選擇“上題”或“下題”前,先要記錄下本題的答案(在客戶端執(zhí)行)??梢杂谩氨4妗卑粹o來上傳答案,即把考生的答案寫入回收表reclaim中(在服務器端執(zhí)行)。2)判斷題模塊、概念填空題模塊、程序填空題模塊同上。3)程序調試題模塊同樣可以用“上題”、“下題” 按鈕來選擇不同的題目??梢杂谩跋螺d”按鈕來建立程序調試題存放的文件夾,并下載題目(是一個壓縮文件);通過“上傳”按鈕把最終結果上傳到指定的目錄。4)程序設計題模塊同上是存在不存在輸入準考證號判斷考生存在否顯示考生姓名判斷是否第一次進入為該考生增加記錄進入考試界面進入密碼界面輸入密碼
38、判斷密碼是否正確密碼正確密碼錯誤圖2 身份驗證流程圖324監(jiān)考管理模塊 該模塊提供考試用的操作界面,同時提供考試的操作指南,以供考生參考??忌臏士甲C號、姓名,始終顯示在狀態(tài)欄上,以便監(jiān)考人員查驗。 可查詢考生的剩余時間、交卷否和是否正在考試等狀態(tài)信息,在考試過程中,對考生的合法性和唯一性進行監(jiān)控??忌缬幸蓡?,可以“幫助” 按鈕來解決問題。325閱卷模塊 對考生的答案進行閱卷評分。目前這塊沒有實現(xiàn)。326缺考統(tǒng)計模塊統(tǒng)計有多少考生沒有參加考試??赏ㄟ^“考生信息表”中的state字段進行統(tǒng)計。通過這個字段還可以統(tǒng)計某一時刻有多少考生正在考試,有多少以已經交卷。33
39、 考試系統(tǒng)的特點該考試系統(tǒng)采用三層結構,即數(shù)據(jù)庫服務器、web服務器、客戶瀏覽器。因為它是在internet網(wǎng)上進行測試,為了確保web服務器安全,要求把數(shù)據(jù)庫與web服務器分離,也就是說采用子網(wǎng)內部的一臺服務器作為數(shù)據(jù)庫服務器。為了實現(xiàn)可用子網(wǎng)內的任何一臺服務器作為數(shù)據(jù)庫服務器的需求,該系統(tǒng)采用web服務技術,即把web服務裝在web服務器中,通過訪問web服務來進行數(shù)據(jù)庫的訪問。該系統(tǒng)的web服務描述如下: 刪除文件:deletefile(byval path as string) 獲取文件夾下每個文件的名稱:getfiles(byval foldname as string) as st
40、ring() 解壓縮文件:unzipfile(byval fname as string, byval unzipdir as string)其中fname為要解壓的文件,unzipdir為解壓之后的文件所存放的文件夾 壓縮文件:zipfile(byval testdir as string, byval filename as string)其中testdir為包含壓縮內容的文件夾的路徑,filename為生成的壓縮文件名 寫blob字段,即用二進制流寫字段:writeblob(byval table as string, byval field as string, byval idnum
41、ber as string, byval filename as string) as string 建立程序設計文件夾:dochengxsj(byval th as string, byval xth as string, byval testdir as string, byval idnumber as string) 建立回收文件夾:dohuishou(byval updir as string, byval type as string, byval count as string) 驗證是否有該準考證號的考生存在:validate(byval table as string, by
42、val field as string, byval idnumber as string) as string 根據(jù)準考證號,將字符串寫入某一字段:bynumwrfield(byval table as string, byval field as string, byval idnumber as string, byval content as string) 當考生首次進入時,為他新建一條記錄,并抽取各類題號:initestnum(byval table as string, byval idnumber as string, byval name as string) as stri
43、ng 將題目序號打亂:randomorder(byval maxnumber as integer) as integer() 根據(jù)某兩個字段的值,獲取第三個字段的值:getfvalbytwo(byval table as string, byval field as string, byval jugfield1 as string, byval jugfield2 as string, byval jugcont1 as string, byval jugcont2 as string) as string 判斷某字段是否為空:judgenull(byval table as string
44、, byval field as string, byval idnumber as string) 根據(jù)某一字段的值,獲取另一字段的值:getfieldvalue(byval table as string, byval field as string, byval jugfield as string, byval jugcont as string) 以二進制流的方式讀取ole字段的內容:readblob(byval table as string, byval field as string, byval th as string, byval xth as string, byval
45、 filename as string) as byte() 讀取某一字段的值(可用于讀取考試狀態(tài)):getteststate(byval table as string, byval field as string) as string 第四章 考試系統(tǒng)實現(xiàn)的關鍵技術41 數(shù)據(jù)庫操作在該系統(tǒng)中,連接數(shù)據(jù)庫的方法有兩種,一種是通過sql查詢(利用sqlconnection類來連接sql server 2000),另一種是通過oledb技術(利用oledbconnection類來連接幾種不同類型的數(shù)據(jù)庫)。前一種方法是專門針對sql server的,后一種方法是為了操作其他數(shù)據(jù)庫,如access
46、、foxpro等。當然,操作sql server也可以用后一種方法,但是這樣做性能比較差。程序調試題和程序設計題在數(shù)據(jù)庫中是以文件的形式存放的,因此需要用二進制流寫或讀字段。在sql和在access中兩者操作方式是不一樣的。以讀二進制字段為例。411 在access中讀二進制字段主要代碼如下: dim picturecol as integer = 0 dim cn as new oledbconnection(oleconnection) dim cmd as new oledbcommand() cmd.commandtext = "select chengxtsda from
47、result where id='" & idnumber & "'" dim dr as oledbdatareader = cmd.executereader() dr.read() dim b(dr.getbytes(picturecol, 0, nothing, 0, integer.maxvalue) - 1) as byte dr.getbytes(picturecol, 0, b, 0, b.length) dim fs as new system.io.filestream(destfilepath,io.filem
48、ode.create, io.fileaccess.write) fs.write(b, 0, b.length) 412 在sql server中讀取二進制信息主要代碼如下: dim myconnection as sqlconnection = new sqlconnection(strconnection) dim mycommand as sqlcommand = new sqlcommand() dim sqlrd as sqldatareader mycommand.commandtext = "select " & field & "
49、 from " & table & " where id='" & thnumber & "'" sqlrd = mycommand.executereader(commandbehavior.singlerow) dim bytedata() as byte while sqlrd.read() if not (sqlrd.isdbnull(0) then bytedata = sqlrd.getvalue(0) readblob = bytedata end if end while 42 打
50、亂序號算法前面提到,每套試卷形成時,隨機抽取各類試題的題號,同一套試題中的題目每次出現(xiàn)的順序都是不一樣的,即序號是被打亂的。打亂序號算法的主要代碼如下: dim seq, mainloop, chosennumber, n, i as integer dim a(maxnumber), b(maxnumber) as integer dim rnd as new random() for seq = 1 to maxnumber b(seq) = seq next for mainloop = maxnumber to 1 step -1 chosennumber = rnd.next(1,
51、mainloop) a(maxnumber - mainloop + 1) = b(chosennumber) b(chosennumber) = b(mainloop) next randomorder = a43 文件的壓縮與解壓縮做程序調試和程序設計題時,需要先下載題目,為一個壓縮文件,下載時需要進行解壓縮。當編程完畢后,需要上傳答案,這時候又要對文件進行壓縮,再傳到指定目錄。解壓縮文件算法的主要代碼(其中fname為要解壓縮的文件,unzipdir為解壓之后的文件所存放的位置): dim s as zipinputstream = new zipinputstream(file.ope
52、nread(fname) dim theentry as zipentry = s.getnextentry() try while (theentry.size >= 0) dim directoryname as string = unzipdir & path.getdirectoryname(theentry.name) dim filename as string = path.getfilename(theentry.name) directory.createdirectory(directoryname) if (filename <> string.
53、empty) then dim streamwriter as filestream streamwriter = file.create(directoryname & "" & filename) dim size as integer = 2048 dim data(2048) as byte while (true) size = s.read(data, 0, data.length) if (size > 0) then streamwriter.write(data, 0, size) else exit while end if end while streamwriter.close() end if壓縮文件算法的主要代碼(其中testdir指要壓縮文件的位置,filename指壓縮后文件的名字):dim astrfilenames() as string = directory.getfiles(testdir) dim strmzipoutputstream as zipoutputstream strmzipoutputstream = new zipoutputstrea
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 西安工程大學《城市軌道交通設備》2023-2024學年第一學期期末試卷
- 棗莊學院《眼耳鼻咽喉口腔科護理學》2023-2024學年第一學期期末試卷
- 腫瘤膝關節(jié)置換術:從診斷到康復的全程管理
- 化工廠心肺復蘇
- 窒息病人急救護理常規(guī)
- 追星心理健康教育
- 基于家校聯(lián)動的小學生心理健康教育對策研究
- 幼兒成長教育
- 修士面試禮儀題目及答案
- 口腔轉介紹活動方案
- 2025春季學期國開電大??啤吨屑壺攧諘?二)》一平臺在線形考(第二次形考任務)試題及答案
- 某市人民醫(yī)院裝修工程項目可行性研究報告
- 【滇人版】《信息技術》四年級第4冊 第1課《搜索引擎》課件
- 2025年中考生物模擬測試卷及答案
- 國開《理工英語1》形考任務綜合測試
- 高血壓的治療和護理
- 種子輪投資協(xié)議合同協(xié)議
- 2025年教師招聘考試教育學心理學試題庫含答案
- 車輛油耗管理制度模板
- 工廠防詐騙培訓
- 烏魯木齊市2025年小升初必考題數(shù)學檢測卷含解析
評論
0/150
提交評論