【文章內容簡介】
交卷后,系統(tǒng)馬上批閱試卷,并給出考試結果。 基于internet考試系統(tǒng)前臺基于asp設計而成,后臺基于acess數(shù)據(jù)庫。整個系統(tǒng)采用Browser/Web/DataBase的3層體系結構。Browser/Server的系統(tǒng)中,用戶可以通過瀏覽器向分布在網(wǎng)絡上的服務器發(fā)出請求,服務器對瀏覽器的請求進行處理,將用戶所需信息返回到瀏覽器。B/S結構簡化了客戶機的工作,客戶機上只需配置Web瀏覽器即可。服務器將擔負更多的工作,對數(shù)據(jù)庫的訪問和應用程序的執(zhí)行將在服務器上完成。瀏覽器發(fā)出請求,而其余如數(shù)據(jù)請求、加工、結果返回以及動態(tài)網(wǎng)頁生成等工作全部由Web Server完成。在Browser/Server三層體系結構下,表示層(presentatioon)、功能層(business logic)、數(shù)據(jù)層(data service)被割成3個相對獨立的單元。a) 第一層(表示層):Web瀏覽器。在表示層中包含系統(tǒng)的顯示邏輯,位于客戶端。它的任務是由Web瀏覽器向網(wǎng)絡上的Web服務器提出服務請求,Web服務器對用戶身份進行驗證后用HTTP協(xié)議把所需的主頁傳送給客戶端,客戶機接受傳來的主頁文件,并把它顯示在Web瀏覽器上,系統(tǒng)采用IE瀏覽器。b) 第二層(功能層):具有應用程序擴展功能的Web服務器。在功能層中包含系統(tǒng)的事務處理邏輯,位于Web服務器端。它的任務是接受用戶的請求,首先需要執(zhí)行相應的擴展應用程序與數(shù)據(jù)庫進行連接,通過SQL等方式向數(shù)據(jù)庫服務器提出數(shù)據(jù)處理申請,而后等數(shù)據(jù)庫服務器將數(shù)據(jù)處理的結果提交給Web服務器,再由Web服務器傳送回客戶端。c) 第三層(數(shù)據(jù)層):數(shù)據(jù)庫服務器。在數(shù)據(jù)層中包含系統(tǒng)的數(shù)據(jù)處理邏輯,位于數(shù)據(jù)庫服務器端。它的任務是接受Web服務器對數(shù)據(jù)庫操縱的請求,實現(xiàn)對數(shù)據(jù)庫查詢、修改、更新等功能,把運行結果提交給Web服務器。系統(tǒng)采用acess 2000數(shù)據(jù)庫。后臺管理管理員信息管理員信息系統(tǒng)判斷題管理試卷管理考試系統(tǒng)管理學生信息管理unli成績管理學生資料系統(tǒng)新生注冊管理前臺管理參加考試考試系統(tǒng)成績顯示 圖31 系統(tǒng)結構圖 詳細設計詳細設計是整個設計過程中,最重要的步驟之一。下面就分如下幾個部分對系統(tǒng)進行詳細設計:(1)試題設計(2)數(shù)據(jù)庫詳細設計(3)功能模塊詳細設計鑒于主觀題的主觀性,目前無法實現(xiàn)系統(tǒng)自動判卷,所以本系統(tǒng)只作客觀題部分。一般情況下,單選題往往在四個供選的答案A、B、C、D中選擇唯一正確的答案; 創(chuàng)建數(shù)據(jù)庫用 Microsoft Access 建立一個名為 的空數(shù)據(jù)庫在Windows中用鼠標左鍵雙擊Access圖標,啟動Access。并按以下步驟創(chuàng)建數(shù)據(jù)庫:(1)從“文件”菜單選取“新建數(shù)據(jù)庫”選項;(2)在文件名框中鍵入自定文件名(如DBI);(3)單擊“創(chuàng)建”按鈕,Access便會創(chuàng)建一個擴展名為.MDB的數(shù)據(jù)庫文件。在Access中,一個數(shù)據(jù)庫應用有6個基本構成部分:表、查詢、窗體、報表、宏和模塊。現(xiàn)在它們都是空的。單擊數(shù)據(jù)庫窗口上邊的“表”選項卡,并單擊“新建”按鈕,會出現(xiàn)一個“新建表”對話框,雙擊其中的“設計視圖”選項。表設計視圖中每一行是對一個字段的詳細定義。1)admin表結構 表31 admin表字段名稱類型說明Name文本字段大小50Password文本字段大小50Id自動編號常整型,遞增,主鍵各字段說明:name字段代表管理員的名字。password字段代表密碼。id字段為管理員的標志號。 圖32 admin表2)question表結構通常,每一類型的試題都應有一個表結構。但考慮到目前系統(tǒng)存貯空間可以很大,也為了更加方便。我們采用把全部試題集中在一起的方案來建立數(shù)據(jù)表,每道客觀題均有四個備選答案項,字段名一般是相應的英文單詞。這樣,查詢起來較方便,會節(jié)約時間,也不致于造成數(shù)據(jù)十分雜亂等。詳細設計如下表所示: 表32 question 表 字段名稱類型說明ID自動編號常整型,遞增,主鍵Question文本字段大小200A文本字段大小50B文本字段大小50C文本字段大小50D文本字段大小50Answer文本字段大小50 type文本字段大小8subjectname文本字段大小8各字段說明:ID是問題的id號,用來唯一標志該問題,把它設為主鍵,類型為自動編號。Question字段為問題內容,類型為文本。A字段代表選項A的內容B字段代表選項B的內容C字段代表選項C的內容D字段代表選項D的內容Answer字段表示答案選項Type表示題目類型subjectname字段表示科目 圖33 question表3) score表結構 表33 score表字段名稱類型說明Studentname文本字段大小50subjectname文本字段大小50Score數(shù)字常整型Id自動編號常整型,遞增,主鍵endtime日期/時間考生考試的時間各字段說明:studentname字段代表在某次考試記錄中學生的名字。Subjectname 表示科目score字段為某次考試紀錄中考試分數(shù)。id字段為某次考試紀錄的標志號。endtime字段代表考試的結束時間。 圖34 score表4)student表結構 表34 student表字段名稱類型說明Studentname文本字段大小50studentpassword文本字段大小50id文本字段大小8各字段說明:studentname字段代表學生的名字。studentpassword字段代表密碼。Id表示自動編號 圖35 student表 功能模塊詳細設計下面,對各個功能模塊分別進行詳細討論,具體情況見系統(tǒng)源程序。 管理模塊管理員可以向題庫中添加各種類型且符合要求的試題,也可以對它們進行修改和刪除。同時,管理員也能對科目、用戶、考試記錄等數(shù)據(jù)進行管理。1試題管理(1)試題錄入首先,:GridView完成的。 。 ,并且效率也有所提高。(2)試題修改管理員還可以對試題進行修改。不過,對于各表中的主鍵不用修改,避免了造成系統(tǒng)中的數(shù)據(jù)混亂,或者覆蓋其它有用數(shù)據(jù)的現(xiàn)象。如果用戶執(zhí)行了非法操作,則必須重新操作。對于對數(shù)據(jù)庫數(shù)據(jù)的修改,在以前的asp頁面中比較麻煩,要想修改一條記錄,必須寫很長的代碼。,幾乎可以不寫一行代碼,就可以對數(shù)據(jù)庫記錄進行修改。(3)試題刪除管理員可以刪除不再需要的試題。通過在每一條記錄的后面放置一個button按鈕并提示用戶是否要刪除,來完成試題的刪除。2 用戶管理管理員可以通過管理界面添加或刪除用戶。進入在線考場是本系統(tǒng)最重要的部分之一。因為一個系統(tǒng)如果涉及到現(xiàn)實的話,就必須考慮得十分周到、完善??忌卿浐螅灰x擇考試科目以后,就可以調出試卷進行在線考試。系統(tǒng)所選的題是隨機選出的,這樣就會使每個考生的試卷都不同。考生的其答題信息通過單選按鈕選擇答案來反映??荚嚱Y束采取自主交卷的方式辦法予以實現(xiàn)。系統(tǒng)會在考試時間結束前提示考生交卷。 4系統(tǒng)實現(xiàn) 系統(tǒng)流程圖設計普通用戶登陸管理員登陸重新登陸注冊用戶進入系統(tǒng)進入系統(tǒng)答題系統(tǒng)自動評卷核對用戶YN管理核對用戶NY試題管理用戶管理 圖41 系統(tǒng)流程圖 各文件功能介紹及詳解 %@ Language=VBScript %% option explicit %!include file=% if (submit)=登 錄 then39。學生登錄的處理 dim rs,sql set rs = () sql=select * from student where studentname=39。 amp。 (studentname) amp。 39。 and studentpassword=39。 amp。 (studentpassword) amp。 39。 sql,conn,1,1 if 0 then 數(shù)據(jù)庫操作失?。篴mp。 else if and then BRBRBRBRBRBRcenter對不起,請輸入正確的用戶名和密碼。/center else session(studentname)=(studentname) set rs=nothing call endConnection() end if end if 39。用戶注冊 elseif (submit)=注 冊 then 39。管理員進行管理 elseif (submit)=管 理 then admin/ end if% 圖42 登錄頁面 %@ Language=VBScript %% option explicit %!include file=% dim id,studentname,studentpassword39。定義變量dim sql,rs,rscif request(submit)=注冊 then 39。添加新用戶 if trim(request(studentname))= or trim(request(studentpassword))= then ?errMessage=錯誤!用戶名或密碼不能為空! end if if trim(request(studentpassword)) trim(request(studentpassword2)) then ?errMessage=錯誤!兩次輸入的密碼不一致! end if set rs=() 39。檢查學生是否重名 select * from student where studentname=39。 amp。 cstr(trim(request(studentname))) amp。 39。,conn,1,1 if 0 then ?errMessage=數(shù)據(jù)庫出錯! else if not and not then ?errMessage=錯誤!該學生已經(jīng)存在!! end if set rs=nothing sql=insert into student(studentname,studentpassword) values(39。 amp。 cstr(trim(request(studentname))) amp。 39。,39。 amp。 cstr(trim(request(studentpassword))) amp。 39。) sql if 0 then ?errMessage= amp。 數(shù)據(jù)庫操作出錯: amp。 else session(studentname)=request(studentname) 39。通過session變量studentname標志一個學生登陸了系統(tǒng) script language=javascript(39。注冊成功!39。)/script session(studentname)=request(studentname) end ifend ifend if%htmlheadtitle新用戶注冊基于Internet考試系統(tǒng)/title/headbody background=../images/ % if Request(errMessage) null or Request(errMessage) then (centerfont color=red amp。 Request(errMessage) amp。 /font/center) end if%圖43用戶注冊頁面 %if session(studentname)= then end ifif (submit)=確認 then 39。如果選擇了考試科目,則進入考