基于php+mysql的在線考試系統(tǒng)畢業(yè)設(shè)計(jì)_第1頁(yè)
基于php+mysql的在線考試系統(tǒng)畢業(yè)設(shè)計(jì)_第2頁(yè)
基于php+mysql的在線考試系統(tǒng)畢業(yè)設(shè)計(jì)_第3頁(yè)
基于php+mysql的在線考試系統(tǒng)畢業(yè)設(shè)計(jì)_第4頁(yè)
基于php+mysql的在線考試系統(tǒng)畢業(yè)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩38頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、核準(zhǔn)通過(guò),歸檔資料。 未經(jīng)允許,請(qǐng)勿外傳! 20122012 屆畢業(yè)設(shè)計(jì)說(shuō)明書(shū)屆畢業(yè)設(shè)計(jì)說(shuō)明書(shū) 無(wú)紙化在線考試系統(tǒng) 系 、 部: 計(jì)算機(jī)與信息科學(xué)學(xué)院 學(xué)生姓名: 賀玲玲 指導(dǎo)教師: 曾利軍 職稱 講師 9jwkffwvg#tym*jg timely reading; based on the php; mysql i 目 錄 1 緒 論.1 1.1 系統(tǒng)開(kāi)發(fā)的現(xiàn)狀.1 1.2 系統(tǒng)開(kāi)發(fā)的目的.2 1.3 系統(tǒng)開(kāi)發(fā)的意義.2 2 系統(tǒng)分析.3 2.1 可行性分析.3 2.1.1 經(jīng)濟(jì)可行性.3 2.1.2 技術(shù)可行性.3 2.2 需求分析.3 2.3 開(kāi)發(fā)環(huán)境.4 3 設(shè)計(jì)工具及關(guān)鍵技術(shù)介紹.

2、5 3.1 apache 簡(jiǎn)介.5 3.2 php 語(yǔ)言簡(jiǎn)介.5 3.3 php 連接 mysql 數(shù)據(jù)庫(kù).6 3.3.1 php 連接數(shù)據(jù)庫(kù)的兩種方法 .6 3.3.2 php 對(duì) mysql 數(shù)據(jù)庫(kù)的兩種連接方式 .6 3.4 ajax 簡(jiǎn)介.7 4 系統(tǒng)概要設(shè)計(jì).8 4.1 系統(tǒng)的總體設(shè)計(jì).8 4.2 數(shù)據(jù)庫(kù)設(shè)計(jì).8 4.3 系統(tǒng)結(jié)構(gòu)設(shè)計(jì).9 4.3.1 系統(tǒng)功能結(jié)構(gòu).9 4.3.2 系統(tǒng)流程圖.10 5 系統(tǒng)詳細(xì)設(shè)計(jì).11 5.1 數(shù)據(jù)庫(kù)設(shè)計(jì).11 5.1.1 數(shù)據(jù)庫(kù)分析.11 5.1.2 概念設(shè)計(jì).11 ii 5.1.3 數(shù)據(jù)庫(kù)物理結(jié)構(gòu).13 5.2 系統(tǒng)詳細(xì)設(shè)計(jì)與實(shí)現(xiàn).14 5.2

3、.1 系統(tǒng)配置.14 5.2.2 前臺(tái)詳細(xì)設(shè)計(jì)與實(shí)現(xiàn).15 5.2.3 后臺(tái)詳細(xì)設(shè)計(jì)與實(shí)現(xiàn).25 6 系統(tǒng)測(cè)試.31 6.1 測(cè)試環(huán)境.31 6.2 什么是軟件測(cè)試.31 6.3 軟件測(cè)試的目標(biāo)與方法.31 6.4 系統(tǒng)評(píng)估.32 7 總結(jié)與展望.33 參考文獻(xiàn).34 致 謝.35 附 錄.36 1 1 緒 論 1.1 系統(tǒng)開(kāi)發(fā)的現(xiàn)狀 世界各國(guó)對(duì)教育的發(fā)展給予了前所未有的關(guān)注,都試圖在未來(lái)的信息社會(huì) 中讓教育處于一個(gè)優(yōu)勢(shì)的位置,從而走在社會(huì)發(fā)展的前列,為此許多國(guó)家都把 信息技術(shù)應(yīng)用于教育,采取措施推進(jìn)教育信息化。美國(guó)政府在 1996 年提出了 “教育技術(shù)規(guī)劃” ,指出到 21 世紀(jì)初讓全美國(guó)的

4、每間教室和每個(gè)圖書(shū)館都將聯(lián) 上信息高速公路,讓每個(gè)孩子都能在“21 世紀(jì)教師”網(wǎng)絡(luò)服務(wù)。澳大利亞國(guó)家公 共資源管理局已于 1995 年 4 月建立“澳大利亞教育網(wǎng)” ,并聯(lián)通 internet,該網(wǎng) 絡(luò)不僅包括全部高等院校,而且還覆蓋全澳大利亞所有的中小學(xué)。 網(wǎng)絡(luò)化在線考試作為網(wǎng)上遠(yuǎn)程教育的重要組成部分和發(fā)展分支,己經(jīng)在國(guó) 外一些發(fā)達(dá)國(guó)家得到蓬勃發(fā)展,人們選學(xué)課程和考試都是通過(guò)網(wǎng)上進(jìn)行。特別 是 internet 業(yè)務(wù)的普及,構(gòu)筑高性能、低成本的計(jì)算機(jī)網(wǎng)絡(luò)化在線考試,從技 術(shù)條件和經(jīng)濟(jì)條件上己經(jīng)成熟。例如在美國(guó),一些著名的考試就采用了網(wǎng)上在 線考試的形式包括 microsoft 公司的 mcs

5、e(微軟系統(tǒng)工程師認(rèn)證考試)gmat(工 商管理碩士入學(xué)考試)、托??荚?、gre(美國(guó)研究生入學(xué)考試)等等,并己在全 范應(yīng)用。 在國(guó)內(nèi),普遍地看絕大多數(shù)遠(yuǎn)程教育的考試還停留在傳統(tǒng)考試方式。在此 方式下,組織一次考試至少要經(jīng)過(guò) 5 個(gè)步驟,即人工出卷、考生考試、人工閱 卷、試卷分析和成績(jī)?cè)u(píng)估。顯然,隨著考試類型的不斷增加及考試要求的不斷 提高,教師的工作量將會(huì)越來(lái)越大,并且這樣工作將是一件十分煩瑣和非常容 易出錯(cuò)的事情。但是對(duì)互聯(lián)網(wǎng)的真正應(yīng)用僅限于網(wǎng)上報(bào)名工作和網(wǎng)上成績(jī)查詢, 還沒(méi)有真正形成上網(wǎng)考試的規(guī)模。而在國(guó)外一些國(guó)家,網(wǎng)上提交作業(yè)和網(wǎng)上考 試已經(jīng)相當(dāng)普及了。所以說(shuō)傳統(tǒng)的考試方式已經(jīng)不能適應(yīng)

6、現(xiàn)代考試的需要。 近幾年來(lái),借鑒發(fā)達(dá)國(guó)家的成功經(jīng)驗(yàn),結(jié)合我國(guó)的實(shí)際情況,伴隨著網(wǎng)絡(luò) 應(yīng)用的不斷擴(kuò)大,遠(yuǎn)程教育和虛擬大學(xué)的出現(xiàn),網(wǎng)絡(luò)應(yīng)用正不斷深入人心。人 們迫切要求利用網(wǎng)絡(luò)技術(shù)進(jìn)行在線考試,來(lái)提高了考試的質(zhì)量,突出公正和客 觀性,減輕組織及保障工作的負(fù)擔(dān),提高工作效率。于是許多教育教學(xué)類的課 程在線考試軟件應(yīng)運(yùn)而生,高等學(xué)校,企事業(yè)單位也都紛紛組織研究此類應(yīng)用 的解決方案,并研制開(kāi)發(fā)了大量的不同類型計(jì)算機(jī)在線考試軟件,也推出了一 批優(yōu)秀的在線考試軟件產(chǎn)品。比如全國(guó)計(jì)算機(jī)等級(jí)考試軟件、職稱計(jì)算機(jī)能力 考試等等。有力地推動(dòng)了我國(guó)網(wǎng)絡(luò)化在線考試的發(fā)展水平,并積累了大量有價(jià) 值的經(jīng)驗(yàn)。 2 1.2 系

7、統(tǒng)開(kāi)發(fā)的目的 信息技術(shù)的發(fā)展對(duì)教育的影響是巨大的,隨著信息技術(shù)和網(wǎng)絡(luò)技術(shù)的迅速 發(fā)展,教育信息化和網(wǎng)絡(luò)化也將成為必然的趨勢(shì)。作為教育評(píng)價(jià)和衡量學(xué)生能 力的考試也正經(jīng)歷著無(wú)紙化和網(wǎng)絡(luò)化的飛躍。網(wǎng)絡(luò)的開(kāi)放性和分布性的特點(diǎn)以 及基于互聯(lián)網(wǎng)的巨大計(jì)算能力使得考試突破了時(shí)間和空間的限制。基于網(wǎng)絡(luò)技 術(shù)的考試系統(tǒng)正成為人們的研究熱點(diǎn)之一,其中,基于 web 技術(shù)的考試系統(tǒng)已 成為互聯(lián)網(wǎng)的重要應(yīng)用之一。 目前教師采用在線考試系統(tǒng)的還不多見(jiàn),因?yàn)榻處焸€(gè)體精力確實(shí)有限。但 隨著教研組制度的完善和教學(xué)交流活動(dòng)的增加。對(duì)題庫(kù)的創(chuàng)建將提上議事的日 程,在線考試系統(tǒng)將大有用武之地,且能確保考風(fēng)考紀(jì)的根本好轉(zhuǎn)。 在線考試

8、具有動(dòng)態(tài)出題、自動(dòng)閱卷、成績(jī)分析等優(yōu)點(diǎn),不僅大大減輕了教 師人工組卷繁瑣的工作量,提高資源利用率,其運(yùn)行過(guò)程中,組卷速度較快, 較少出現(xiàn)重復(fù)的現(xiàn)象,而且有利于教考分離的實(shí)施,符合目前教學(xué)改革的目標(biāo)。 更節(jié)省紙張資源,增強(qiáng)環(huán)保意識(shí)。因此,在線考試系統(tǒng)具有潛在的巨大商機(jī)和 研究?jī)r(jià)值,是未來(lái)數(shù)字化校園系統(tǒng)研究的熱點(diǎn)內(nèi)容。 1.3 系統(tǒng)開(kāi)發(fā)的意義 很多學(xué)校學(xué)生的期末考試仍采用任課教師(個(gè)人或集體)考前出題的方式。 為解決學(xué)生壓題,考前漏題,補(bǔ)(緩)考試題與正式考試試題題量及難度差異 問(wèn)題,教務(wù)管理部門(mén)通常要求教師同時(shí)出多套試卷,其題量與難度要求相同, 并且要同時(shí)給出答案和評(píng)分標(biāo)準(zhǔn)。 若建立題庫(kù),每次考

9、試前由題庫(kù)中題目隨機(jī)生成試卷,則可較好地解決考 教分離的問(wèn)題,也可將廣大教師從每學(xué)期末繁重的命題工作中解放出來(lái)。近年 來(lái),部分學(xué)校陸續(xù)開(kāi)發(fā)了一些基于微機(jī)的題庫(kù)系統(tǒng),并作為成果向其它學(xué)校推 廣,但這些題庫(kù)一般都是結(jié)合本校具體情況,針對(duì)單一課程的小型題庫(kù),甚至 某些學(xué)校購(gòu)得的題庫(kù)系統(tǒng)中的題目本身是不可維護(hù)的,即使題目已不適合自己 的學(xué)生考試使用,也無(wú)法更新題庫(kù)中的題目。 為解決題庫(kù)系統(tǒng)中存在的這些問(wèn)題,作者經(jīng)過(guò)研究幾種不同的網(wǎng)上系統(tǒng), 經(jīng)充分的考慮,最后給出了一個(gè)較為理想的題庫(kù)系統(tǒng)解決方案,并結(jié)合當(dāng)前比 較使用的 b/s 結(jié)構(gòu)開(kāi)發(fā)一個(gè)功能較完備的網(wǎng)上考試系統(tǒng)。 3 2 系統(tǒng)分析 2.1 可行性分析

10、 可行性分析的目的就是要用最小的代價(jià)在盡可能短的時(shí)間內(nèi)確定問(wèn)題是否 能夠解決。通過(guò)分析解法的利弊,來(lái)判定系統(tǒng)目標(biāo)和規(guī)模是否現(xiàn)實(shí),系統(tǒng)完成 后所能帶來(lái)的效益是否達(dá)到值得去投資開(kāi)發(fā)這個(gè)系統(tǒng)的程度。網(wǎng)絡(luò)在線考試系 統(tǒng)的可行性可從以下兩方面考慮。 2.1.1 經(jīng)濟(jì)可行性 定期的組織考試是各個(gè)院校及時(shí)掌握學(xué)生學(xué)習(xí)成績(jī)的有效方式,利用網(wǎng)絡(luò) 在線考試系統(tǒng),一方面可以節(jié)省人力資源,降低考試成本。另一方面,在線考 試系統(tǒng)能夠快速進(jìn)行考試和評(píng)分,體現(xiàn)出考試的客觀與公正性。 2.1.2 技術(shù)可行性 開(kāi)發(fā)一個(gè)網(wǎng)絡(luò)在線考試系統(tǒng),涉及到的最核心的技術(shù)問(wèn)題就是如何實(shí)現(xiàn)在 不刷新頁(yè)面的情況下實(shí)時(shí)顯示考試時(shí)間及剩余時(shí)間,并做到

11、到達(dá)考試結(jié)束時(shí)間 時(shí)自動(dòng)提交試卷的功能。通過(guò) ajax 技術(shù)可以輕松實(shí)現(xiàn)這些功能,這為網(wǎng)絡(luò)在線 考試系統(tǒng)的開(kāi)發(fā)提供了技術(shù)保障。 2.2 需求分析 隨著計(jì)算機(jī)技術(shù)的發(fā)展和網(wǎng)絡(luò)技術(shù)的日益成熟,通過(guò)網(wǎng)絡(luò)進(jìn)行信息交流已 成為一種快捷的交互方式。在這種網(wǎng)絡(luò)環(huán)境下,學(xué)?;蚩荚嚈C(jī)構(gòu)希望通過(guò)建立 網(wǎng)絡(luò)在線考試網(wǎng)站來(lái)擴(kuò)大知名度、降低管理成本和減少人力物力的投資,從而 為考生提供更全面、更靈活的服務(wù),并全面、準(zhǔn)確地對(duì)考試進(jìn)行跟蹤和評(píng)價(jià)。 與此同時(shí),考生希望根據(jù)自己的學(xué)習(xí)情況進(jìn)行測(cè)試,并能夠得到客觀、科學(xué)的 評(píng)價(jià);教務(wù)人員希望能夠有效地改進(jìn)現(xiàn)有的考試模式,提高考試效率。 通過(guò)實(shí)際情況的調(diào)查,要求網(wǎng)絡(luò)在線考試系統(tǒng)具有

12、以下功能: 界面設(shè)計(jì)美觀大方、方便、快捷、操作靈活,樹(shù)立企業(yè)形象。 要求實(shí)現(xiàn)在線考試功能,自動(dòng)核算考試成績(jī)。 要求提供考試時(shí)間倒計(jì)時(shí)功能,使考生實(shí)時(shí)了解考試剩余時(shí)間。 要求系統(tǒng)自動(dòng)閱卷,保證考試成績(jī)真實(shí)有效。 要求考生憑準(zhǔn)考證號(hào)查詢考試成績(jī),以保證信息安全。 4 2.3 開(kāi)發(fā)環(huán)境 apache 是目前應(yīng)用最廣的 web 服務(wù)器;php 是一種類似 asp 的服務(wù)器端 腳本語(yǔ)言,而 mysql 是一個(gè)小巧的數(shù)據(jù)庫(kù)系統(tǒng)軟件,它們特別適用于網(wǎng)站建 設(shè)。apache+php+mysql 不僅僅是開(kāi)源項(xiàng)目,可免費(fèi)獲取,而且它支持 linux、unix、os/2 和 windows 多個(gè)操作系統(tǒng),可移植性

13、好。因此,這種組合 是設(shè)計(jì)動(dòng)態(tài)網(wǎng)站的最佳解決方案。 (1) 硬件需求:計(jì)算機(jī)(winxp 系統(tǒng)) (2) 軟件需求: 開(kāi)發(fā)工具:dreamweaver cs5 服務(wù)器端開(kāi)發(fā)環(huán)境:wampserver version2(apache 2.2.11+php 5.2.9+ mysql 5.1.32+ phpmyadmin 3.1.3) 5 3 設(shè)計(jì)工具及關(guān)鍵技術(shù)介紹 3.1 apache 簡(jiǎn)介 apache 是世界使用排名第一的 web 服務(wù)器軟件。它可以運(yùn)行在幾乎所有 廣泛使用的計(jì)算機(jī)平臺(tái)上,由于其跨平臺(tái)和安全性被廣泛使用,是最流行的 web 服務(wù)器端軟件之一。apache web 服務(wù)器軟件擁有

14、以下特性: (1) 支持最新的 http/1.1 通信協(xié)議 (2) 擁有簡(jiǎn)單而強(qiáng)有力的基于文件的配置過(guò)程 (3) 支持通用網(wǎng)關(guān)接口 (4) 支持基于 ip 和基于域名的虛擬主機(jī) (5) 支持多種方式的 http 認(rèn)證 (6) 集成 perl 處理模塊 (7) 集成代理服務(wù)器模塊 (8) 支持實(shí)時(shí)監(jiān)視服務(wù)器狀態(tài)和定制服務(wù)器日志 (9) 支持服務(wù)器端包含指令(ssi) (10) 支持安全 socket 層(ssl) (11) 提供用戶會(huì)話過(guò)程的跟蹤 (12) 支持 fastcgi (13) 通過(guò)第三方模塊可以支持 java servlets 3.2 php 語(yǔ)言簡(jiǎn)介 php 是英文超級(jí)文本預(yù)處理語(yǔ)

15、言 hypertext preprocessor 的縮寫(xiě),它是一種 html 內(nèi)嵌式的語(yǔ)言,是一種在服務(wù)器端執(zhí)行的嵌入 html 文檔的腳本語(yǔ)言, php 獨(dú)特的語(yǔ)法混合了 c、java、perl 以及 php 自創(chuàng)新的語(yǔ)法。它可以比 cgi 或者 perl 更快速的執(zhí)行動(dòng)態(tài)網(wǎng)頁(yè)。 用 php 做出的動(dòng)態(tài)頁(yè)面與其他的編程語(yǔ)言相比,php 是將程序嵌入到 html 文檔中去執(zhí)行,執(zhí)行效率比完全生成 html 標(biāo)記的 cgi 要高許多;php 還可以執(zhí)行編譯后代碼,編譯可以達(dá)到加密和優(yōu)化代碼運(yùn)行,使代碼運(yùn)行更快。 php 具有非常強(qiáng)大的功能,所有的 cgi 的功能 php 都能實(shí)現(xiàn),而且支持幾乎

16、所有流行的數(shù)據(jù)庫(kù)以及操作系統(tǒng)。 以下羅列了 php 所具有的一些特點(diǎn): (1) 開(kāi)放的源代碼。所有的 php 源代碼事實(shí)上都可以得到。 (2) php 是免費(fèi)的。和其它技術(shù)相比,php 本身免費(fèi)。 6 (3) php 的快捷性。程序開(kāi)發(fā)快,運(yùn)行快,技術(shù)本身容易學(xué)習(xí),上手快。 嵌入 html:因?yàn)?php 可以嵌入 html 語(yǔ)言,它相對(duì)于其他語(yǔ)言, 編輯簡(jiǎn)單,實(shí)用性強(qiáng),更適合初學(xué)者。 (4) 跨平臺(tái)性強(qiáng)。由于 php 是運(yùn)行在服務(wù)器端的腳本,可以運(yùn)行在 unix、linux、windows 下。 (5) 效率高。php 消耗相當(dāng)少的系統(tǒng)資源。 (6) 圖像處理。用 php 動(dòng)態(tài)創(chuàng)建圖像 (7)

17、 面向?qū)ο?。?php5 中,面向?qū)ο蠓矫娑加辛撕艽蟮母倪M(jìn),現(xiàn)在 php 完全可以用來(lái)開(kāi)發(fā)大型商業(yè)程序。 (8) 專業(yè)專注。php 支持腳本語(yǔ)言為主,同為類 c 語(yǔ)言。 3.3 php 連接 mysql 數(shù)據(jù)庫(kù) 3.3.1 php 連接數(shù)據(jù)庫(kù)的兩種方法 (1) 通過(guò) mysql 庫(kù)和 mysqli 庫(kù)函數(shù)連接。這種方法是 php 連接 mysql 最 常用的方法,無(wú)論從易用性和效率上都比用 odbc 接口連接好。 php 存取 mysql 數(shù)據(jù)庫(kù)的四個(gè)步驟是: 建立連接:mysql_connect(); 操縱數(shù)據(jù)庫(kù):mysql_select_db();返回布爾型數(shù)據(jù)值 操縱數(shù)據(jù)庫(kù)中的數(shù)據(jù):my

18、sql_query(); 關(guān)閉連接:mysql_close(); (2) 通過(guò) odbc 接口連接。開(kāi)放式數(shù)據(jù)庫(kù)互聯(lián)(open database connectivity,odbc)是 microsoft 引進(jìn)的一種早期數(shù)據(jù)庫(kù)接口技術(shù)。microsoft 引進(jìn)這種技術(shù)的一個(gè)主要原因是,以非語(yǔ)言專用的方式,提供給程序員一種訪 問(wèn)數(shù)據(jù)庫(kù)內(nèi)容的簡(jiǎn)單方法。php 通過(guò) odbc 不僅可以連接 mysql 數(shù)據(jù)庫(kù),而 且還可以連接 oracle、sybase、informix 和 sql server 等。 3.3.2 php 對(duì) mysql 數(shù)據(jù)庫(kù)的兩種連接方式 無(wú)論是使用 mysql/mysqli

19、庫(kù)函數(shù)還是使用 odbc 接口連接,php 對(duì) mysql 數(shù)據(jù)庫(kù)的連接方式都有兩種。分別是永久連接和非永久連接方式。 (1) 永久連接方式:它的最大的優(yōu)點(diǎn)是效率比非永久連接方式高,當(dāng)客戶 端對(duì) mysql 服務(wù)器的連接請(qǐng)求非常頻繁時(shí),永久連接將更加高效。它使得每 個(gè)子過(guò)程在其生命周期中只做一次連接操作,而非每次在處理一個(gè)頁(yè)面時(shí)都要 向 mysql 服務(wù)器提出連接請(qǐng)求。即每個(gè)子過(guò)程將對(duì)服務(wù)器建立各自獨(dú)立的永 久連接。 7 (2) 非永久連接方式:即短連接方式。當(dāng)客戶端向 web 服務(wù)器請(qǐng)求網(wǎng)頁(yè)時(shí), 服務(wù)器處理這個(gè)請(qǐng)求,并將所請(qǐng)求的網(wǎng)頁(yè)發(fā)送給瀏覽器,然后連接就被斷開(kāi), 直到瀏覽器發(fā)出下一個(gè)請(qǐng)求。

20、對(duì)于大部分網(wǎng)站通常都使用這種連接方式,它雖 然沒(méi)有永久連接方式的效率高,但是可有效避免永久連接所帶來(lái)的問(wèn)題和提高 服務(wù)器承載能力。 3.4 ajax 簡(jiǎn)介 ajax 不是一種新的編程語(yǔ)言,而是一種用于創(chuàng)建更好更快以及交互性更 強(qiáng)的 web 應(yīng)用程序的技術(shù)。 通過(guò) ajax,javascript 可使用 javascript 的 xmlhttprequest 對(duì)象來(lái)直接與 服務(wù)器進(jìn)行通信。通過(guò)這個(gè)對(duì)象,javascript 可在不重載頁(yè)面的情況與 web 服 務(wù)器交換數(shù)據(jù)。ajax 在瀏覽器與 web 服務(wù)器之間使用異步數(shù)據(jù)傳輸(http 請(qǐng)求) ,這樣就可使網(wǎng)頁(yè)從服務(wù)器請(qǐng)求少量的信息,而不是整

21、個(gè)頁(yè)面。 web 應(yīng)用程序較桌面應(yīng)用程序有諸多優(yōu)勢(shì);它們能夠涉及廣大的用戶,它 們更易安裝及維護(hù),也更易開(kāi)發(fā)。ajax 是一種獨(dú)立于 web 服務(wù)器軟件的瀏覽 器技術(shù)??墒挂蛱鼐W(wǎng)應(yīng)用程序更小、更快、更友好。 主要包含的技術(shù): (1) web 標(biāo)準(zhǔn)(standards-based presentation)xhtml+css 的表示; (2) 使用 dom(document object model)進(jìn)行動(dòng)態(tài)顯示及交互; (3) 使用 xml 和 xslt 進(jìn)行數(shù)據(jù)交換及相關(guān)操作; (4) 使用 xmlhttprequest 進(jìn)行異步數(shù)據(jù)查詢、檢索; (5) 使用 javascript 將所有的

22、東西綁定在一起。 8 4 系統(tǒng)概要設(shè)計(jì) 4.1 系統(tǒng)的總體設(shè)計(jì) 根據(jù)系統(tǒng)的功能要求,網(wǎng)絡(luò)考試系統(tǒng)中涉及兩種不同的用戶:考試用戶、 管理員,他們的職能各不相同??荚囉脩暨M(jìn)入網(wǎng)絡(luò)考試系統(tǒng),可以按照學(xué)習(xí)通 知完成查詢考試通知,查詢個(gè)人考試成績(jī),修改密碼,在線考試。管理員能夠 發(fā)布學(xué)習(xí)通知,發(fā)布考試通知,設(shè)置考試時(shí)長(zhǎng),考試時(shí)段,考試題型比例,進(jìn) 行試題庫(kù)維護(hù),包括刪除,添加,及時(shí)更新,按不同條件查詢考生的成績(jī)并進(jìn) 行分析統(tǒng)計(jì)。所有數(shù)據(jù)都存儲(chǔ)在服務(wù)器的數(shù)據(jù)庫(kù)中,具體應(yīng)達(dá)到以下目標(biāo): (1) 采用開(kāi)放、動(dòng)態(tài)的系統(tǒng)框架,加強(qiáng)用戶與網(wǎng)站的交互性。 (2) 具有空間性。被授權(quán)的用戶可以在異地登陸考試系統(tǒng),無(wú)須到

23、指定地點(diǎn) 行進(jìn)行考試。 (3) 操作簡(jiǎn)單方便,界面簡(jiǎn)潔美觀。 (4) 系統(tǒng)提供考試倒計(jì)時(shí)功能,使考生了解考試剩余時(shí)間。 (5) 隨機(jī)抽取試題。 (6) 實(shí)現(xiàn)自動(dòng)提交試卷的功能。當(dāng)考試時(shí)間到達(dá)規(guī)定時(shí)間,如果考生還未提 交試卷,系統(tǒng)將自動(dòng)交卷,以保證考試嚴(yán)肅、公正地進(jìn)行。 (7) 系統(tǒng)自動(dòng)閱卷,保證成績(jī)的真實(shí)準(zhǔn)確。 (8) 考生可以查詢自己的考試成績(jī)。 4.2 數(shù)據(jù)庫(kù)設(shè)計(jì) 數(shù)據(jù)庫(kù)設(shè)計(jì)的任務(wù)是確定系統(tǒng)所需的數(shù)據(jù)庫(kù),它的價(jià)值在于它能夠向用戶 提供有意義的信息,還有向系統(tǒng)供應(yīng)所需的一切數(shù)據(jù)。在 mysql 數(shù)據(jù)庫(kù)系統(tǒng) 中建立一個(gè)名為 db_online 的數(shù)據(jù)庫(kù),在該數(shù)據(jù)庫(kù)中可以創(chuàng)建與實(shí)體對(duì)應(yīng)的數(shù)據(jù) 表

24、,存放考試系統(tǒng)中與考生,管理員,考題類別,考試成績(jī)相關(guān)的數(shù)據(jù)。下面 給出數(shù)據(jù)庫(kù)中所包含的數(shù)據(jù)表的結(jié)構(gòu)圖,如圖 1 所示。 圖 1 db_online 數(shù)據(jù)庫(kù)所包含數(shù)據(jù)表的結(jié)構(gòu)圖 9 4.3 系統(tǒng)結(jié)構(gòu)設(shè)計(jì) 4.3.1 系統(tǒng)功能結(jié)構(gòu) 網(wǎng)絡(luò)考試系統(tǒng)的考生用戶和管理員分別為前臺(tái)用戶和后臺(tái)用戶,他們的功 能職責(zé)不同,其功能結(jié)構(gòu)圖如圖 2 所示。 網(wǎng)絡(luò)考試系統(tǒng) 管理員功能頁(yè)面考試用戶功能頁(yè)面 發(fā) 布 通 知 課 程 管 理 考 試 管 理 題 庫(kù) 管 理 成 績(jī) 查 詢 參 加 考 試 考 試 通 知 查 詢 成 績(jī) 修 改 密 碼 圖 2 網(wǎng)絡(luò)考試系統(tǒng)功能結(jié)構(gòu)圖 考生功能: (1) 參加考試:選擇考試課

25、程之后,考試開(kāi)始并計(jì)時(shí),手動(dòng)和自動(dòng)提交試 卷,自動(dòng)閱卷。 (2) 查詢成績(jī):考生可以查詢本人的成績(jī)信息。 (3) 修改密碼:考生修改自己的密碼。 (4) 學(xué)習(xí)通知:考生可以查看管理員發(fā)布的考試通知。 管理員功能: (1) 發(fā)布通知:管理員進(jìn)入發(fā)布通知頁(yè)面,發(fā)布考試通知。 (2) 考試管理:添加、修改考試科目;修改試卷的題型比例;修改考題類 型,考題類別,確定考試日期和考試時(shí)長(zhǎng)。 (3) 題庫(kù)管理:及時(shí)對(duì)題庫(kù)進(jìn)行更新,刪除舊的題目,插入新的題目等。 (4) 成績(jī)查詢:管理員可以查看權(quán)限范圍內(nèi)所有用戶的成績(jī)信息,并可以 對(duì)所有信息進(jìn)行分析統(tǒng)計(jì)。 10 4.3.2 系統(tǒng)流程圖 考生在網(wǎng)絡(luò)在線考試系統(tǒng)

26、中通過(guò)注冊(cè)為網(wǎng)站用戶,登錄網(wǎng)站進(jìn)行相關(guān)操作。 考生登錄后,可以進(jìn)行在線考試、查詢成績(jī)和修改個(gè)人密碼的操作。在考試前, 考生需要閱讀考試規(guī)則、選擇考試套題后開(kāi)始考試;考試時(shí)間結(jié)束時(shí),考生提 交試卷;提交試卷的同時(shí),系統(tǒng)將自動(dòng)返回本次考試的考試結(jié)果。網(wǎng)站的管理 員通過(guò)登錄模塊可以登錄到網(wǎng)站的后臺(tái)系統(tǒng),對(duì)考生信息、考試信息、管理員 信息進(jìn)行管理。網(wǎng)絡(luò)在線考試系統(tǒng)的系統(tǒng)流程,如圖 3 所示。 圖 3 網(wǎng)絡(luò)在線考試系統(tǒng)流程圖 11 5 系統(tǒng)詳細(xì)設(shè)計(jì) 5.1 數(shù)據(jù)庫(kù)設(shè)計(jì) 數(shù)據(jù)庫(kù)的設(shè)計(jì)過(guò)程一般是從現(xiàn)實(shí)世界出發(fā),進(jìn)行需求分析、概念分析、邏 輯分析和物理設(shè)計(jì)的。其中需求分析是整個(gè)設(shè)計(jì)過(guò)程的基礎(chǔ),是最困難、最耗

27、費(fèi)時(shí)間的一步。需求分析做的不好,甚至?xí)?dǎo)致整個(gè)數(shù)據(jù)庫(kù)設(shè)計(jì)返工重做。概 念結(jié)構(gòu)設(shè)計(jì)師整個(gè)數(shù)據(jù)庫(kù)設(shè)計(jì)的關(guān)鍵,它通過(guò)對(duì)用戶需求進(jìn)行分析、綜合、歸 納與抽象,形成一個(gè)獨(dú)立、具體的數(shù)據(jù)可管理系統(tǒng)的概念模型。邏輯結(jié)構(gòu)設(shè)計(jì) 師將概念轉(zhuǎn)換為某個(gè)數(shù)據(jù)庫(kù)管理系統(tǒng)所支持的數(shù)據(jù)庫(kù)模型,并對(duì)其進(jìn)行優(yōu)化。 物理結(jié)構(gòu)設(shè)計(jì)是為邏輯結(jié)構(gòu)設(shè)計(jì)選擇一個(gè)最適合應(yīng)用環(huán)境的物理結(jié)構(gòu),并對(duì)數(shù) 據(jù)可進(jìn)行布置。 5.1.1 數(shù)據(jù)庫(kù)分析 mysql 是一個(gè)小巧的數(shù)據(jù)庫(kù)系統(tǒng)軟件,特別適用于網(wǎng)站建設(shè)。mysql 的 設(shè)計(jì)目標(biāo)是提供一個(gè)高速、可靠、可擴(kuò)展、易于使用的數(shù)據(jù)庫(kù)管理系統(tǒng)。 apache+php+mysql 不僅僅是開(kāi)源項(xiàng)目,可免費(fèi)獲取,而且

28、它支持 linux、unix、os/2 和 windows 多個(gè)操作系統(tǒng),可移植性好,這種組合是設(shè)計(jì) 動(dòng)態(tài)網(wǎng)站的最佳解決方案。綜上所述,本系統(tǒng)采用 mysql 數(shù)據(jù)庫(kù)。 5.1.2 概念設(shè)計(jì) (1) 考生信息實(shí)體 考生信息實(shí)體包括編號(hào)、考生姓名、聯(lián)系方式、準(zhǔn)考證號(hào)、考試成績(jī)、考 題類別、考試時(shí)間、聯(lián)系地址、考試狀態(tài)和考生密碼等屬性。考生信息實(shí)體的 e-r 圖,如圖 4 所示。 考試成績(jī) 準(zhǔn)考證號(hào) 考題類別 考試時(shí)間 考生 考生密碼 考試狀態(tài) 圖 4 考生信息實(shí)體 e-r 圖 考生姓名聯(lián)系方式 編號(hào) 12 (2) 管理員實(shí)體 管理員實(shí)體包括編號(hào)、管理員名稱和加密密碼屬性。 管理員實(shí)體的 e-r

29、圖如圖 5 所示。 管理員 密碼編號(hào) 管理員姓名 圖 5 管理員信息實(shí)體 e-r 圖 (3) 考題類別實(shí)體 考題類別實(shí)體包括編號(hào)和考題類別名稱。 考題類別實(shí)體的 e-r 圖,如圖 6 所示。 考題類別 編號(hào)類別名稱 圖 6 考題類別實(shí)體 e-r 圖 (4) 考題信息實(shí)體 考題信息實(shí)體包括編號(hào)、考題類別、考試成績(jī)、考題內(nèi)容、考題答案、考 題正確答案及考題所屬套題等屬性。 考試題目實(shí)體的 e-r 圖如圖 7 所示。 考題內(nèi)容 考題信息 考題類別 別 考試成績(jī) 考題答案正確答案 所屬套題 編號(hào) 圖 7 考題信息實(shí)體 e-r 圖 13 5.1.3 數(shù)據(jù)庫(kù)物理結(jié)構(gòu) (1) tb_user(考生信息表)

30、考生信息表用來(lái)保存考生信息,主鍵為 online_id。 該數(shù)據(jù)表結(jié)構(gòu)如圖 8 所示。 圖 8 考生信息結(jié)構(gòu)圖 (2) tb_admin(管理員信息表) 管理員信息表用來(lái)保存管理員的用戶名和密碼。主鍵為 id。 該數(shù)據(jù)表結(jié)構(gòu)如圖 9 所示。 圖 9 管理員信息結(jié)構(gòu)圖 (3) tb_ktlb(考題類別信息表) 考題類別信息表用來(lái)保存考題類別。該數(shù)據(jù)表結(jié)構(gòu)如圖 10 所示。 圖 10 考題類別信息結(jié)構(gòu)圖 14 (4) tb_kt(考題信息表) 考題信息表用來(lái)保存考試題目信息和考題答案等相關(guān)信息。 該數(shù)據(jù)表結(jié)構(gòu)如圖 11 所示。 圖 11 考題信息結(jié)構(gòu)圖 在數(shù)據(jù)庫(kù)系統(tǒng)運(yùn)行過(guò)程中,必須不斷地對(duì)其進(jìn)行評(píng)

31、價(jià)、調(diào)整與修改,內(nèi)容 包括:數(shù)據(jù)庫(kù)的轉(zhuǎn)儲(chǔ)和恢復(fù)、數(shù)據(jù)庫(kù)的安全性、完整性控制、數(shù)據(jù)庫(kù)性能的監(jiān) 督、分析和改進(jìn)、數(shù)據(jù)庫(kù)的重組織和重構(gòu)造等。 5.2 系統(tǒng)詳細(xì)設(shè)計(jì)與實(shí)現(xiàn) 根據(jù)需求分析,我們把在線考試系統(tǒng)分為六個(gè)模塊,即數(shù)據(jù)庫(kù)交互模塊、 功能列表模塊、題庫(kù)模塊、試卷生成模塊、考試生成模塊及在線考試模塊。下 面來(lái)看系統(tǒng)的詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)。 5.2.1 系統(tǒng)配置 系統(tǒng)配置主要包括代碼開(kāi)發(fā)工具配置和服務(wù)器配置。本系統(tǒng)采用的開(kāi)發(fā)工 具是 dreamweaver,數(shù)據(jù)庫(kù)則采用得是 mysql,web 服務(wù)器采用 apache 服務(wù) 器。 b/s 模式系統(tǒng)的目錄結(jié)構(gòu)有一定的規(guī)律性,因此必須遵循規(guī)范,并按照需 求分析

32、建立各個(gè)模塊的目錄結(jié)構(gòu)。整個(gè)目錄結(jié)構(gòu)如下圖: 圖 12 目錄結(jié)構(gòu)圖 首先將 php 連接到 mysql 數(shù)據(jù)庫(kù)服務(wù)器程序(conn.php) ,該程序建立與 mysql 服務(wù)器的連接,打開(kāi) db_online 數(shù)據(jù)庫(kù),代碼如下: 15 在每一個(gè) php 程序的開(kāi)頭通過(guò)以下語(yǔ)句引用 conn.php 程序: require(“./conn.php”); 5.2.2 前臺(tái)詳細(xì)設(shè)計(jì)與實(shí)現(xiàn) 前臺(tái)首頁(yè)設(shè)計(jì) (1) 考生通過(guò)“考生登錄”模塊的驗(yàn)證后,可以登錄到網(wǎng)絡(luò)在線考試系統(tǒng) 的前臺(tái)首頁(yè)。前臺(tái)首頁(yè)主要用于實(shí)現(xiàn)前臺(tái)功能導(dǎo)航,該頁(yè)面主要包括考生注冊(cè)、 考生登錄、修改密碼、成績(jī)查詢、進(jìn)入考場(chǎng)和退出信息 6 個(gè)導(dǎo)

33、航鏈接。 下面為前臺(tái)首頁(yè)頁(yè)面,如圖 13 所示。 圖 13 前臺(tái)首頁(yè)頁(yè)面 16 (2) 網(wǎng)絡(luò)在線考試系統(tǒng)前臺(tái)首頁(yè)主要實(shí)現(xiàn)了考生登錄功能,考生通過(guò)準(zhǔn)考 證號(hào)和密碼進(jìn)行登錄??忌卿涰?yè)面中所涉及到的重要表單元素如表 1 所示。 表 1 考題信息表 名稱 元素類型 重要屬性 含義 form1 form method=post action=denglu_ok.php 表單 online_number text id=online_number size=20 準(zhǔn)考證號(hào)碼 online_pass password id=online_pass size=20 考生密碼 submit submit va

34、lue=提交 “提交”按鈕 (3) 考生在考生登錄頁(yè)面錄入準(zhǔn)確的準(zhǔn)考證號(hào)和密碼后,單擊“提交”按 鈕,提交表單信息到數(shù)據(jù)處理頁(yè),應(yīng)用 mysql_query()函數(shù)檢索考生是否成功登 錄。如果查詢結(jié)果為真,則將準(zhǔn)考證號(hào)存儲(chǔ)在 session 變量中;否則彈出提示信 息。代碼如下: ?php session_start(); include(conn/conn.php); $online_number=isset($_postonline_number); $online_pass=isset($_postonline_pass); $sql=select * from tb_user wher

35、e online_number=$online_number and online_pass=$online_pass; mysql_query($sql); $result=mysql_affected_rows(); if($result1) echo alert(用戶名或密碼錯(cuò)誤);history.go(-1); else session_register(online_number); echo alert(登錄成功!); window.location.href=index.php?online=進(jìn)入考場(chǎng); ? 17 考生信息模塊設(shè)計(jì): (1) 考生信息模塊主要包括考生注冊(cè)、考生登錄

36、、修改密碼 3 個(gè)功能???生首先要注冊(cè)為網(wǎng)站用戶,然后才被授權(quán)登錄網(wǎng)站進(jìn)行一系列操作的權(quán)限;登 錄后考生還可以修改個(gè)人的密碼??忌畔⒛K的系統(tǒng)流程如圖 14 所示。 開(kāi) 始 考生注冊(cè) 考生登錄 結(jié)束 修改密碼 是 否 否 是 圖 14 考生信息模塊的系統(tǒng)流程圖 (2) 在考生注冊(cè)信息模塊中應(yīng)用到 ajax 無(wú)刷新技術(shù)獲取考生的準(zhǔn)考證號(hào) 碼和密碼。在介紹該功能的實(shí)現(xiàn)過(guò)程之前,先對(duì) ajax 技術(shù)中的 xmlhttprequest 對(duì)象的屬性和方法進(jìn)行詳細(xì)的講解。xmlhttprequest 對(duì)象是 ajax 技術(shù)的核心, 有關(guān)該對(duì)象的屬性和方法的詳細(xì)介紹如表 2 和表 3 所示。 表 2 x

37、mlhttprequest 對(duì)象的屬性 屬性 描述 readystate 返回當(dāng)前的請(qǐng)求狀態(tài) onreadystatechange 當(dāng) readystate 屬性改變時(shí)就可以讀取此屬性值 status 返回 http 狀態(tài)碼 responsetext 將返回的響應(yīng)信息用字符串表示 responsebody 返回響應(yīng)信息正文,格式為字節(jié)數(shù)組 responsexml 將響應(yīng)的 domcoment 對(duì)象解析成 xml 文檔并返回 表 3 xmlhttprequest 的方法 方法 描述 open 初始化一個(gè)新請(qǐng)求 send 發(fā)送請(qǐng)求 getallreponseheaders 返回所有http頭信息

38、getresponsehearder 返回指定的http頭信息 setrequestheader 添加指定的http頭信息 abort 停止當(dāng)前的 http 請(qǐng)求 18 考生注冊(cè)時(shí)的關(guān)鍵代碼如下: 在考生注冊(cè)頁(yè)面 zhuce.php 頁(yè)中實(shí)現(xiàn)考生注冊(cè)信息的提交,并且通過(guò) ajax 的頁(yè)面無(wú)刷新技術(shù)獲取考生的準(zhǔn)考證號(hào)和密碼。 zhuce.php 頁(yè)中的關(guān)鍵代碼如下: 在 zhuce_js.js 文件中首先定義一個(gè) createxmlhttprequestobject()對(duì)象,并 獲取 xmlhttprrequest 對(duì)象,然后定義 xmlhttp 用來(lái)存儲(chǔ)將要使用的 xmlhttprreques

39、t 對(duì)象。關(guān)鍵代碼如下: var xmlhttp=createxmlhttprequestobject(); function createxmlhttprequestobject() var xmlhttp; if(window.activexobject) try xmlhttp=new activexobject(microsoft.xmlhttp); catch(e) xmlhttp=false; else try xmlhttp=new xmlhttprequest(); catch(e) xmlhttp=false; if(!xmlhttp) alert(返回創(chuàng)建的對(duì)象或顯示錯(cuò)誤信

40、息); else return xmlhttp; 19 在網(wǎng)絡(luò)在線考試系統(tǒng)首頁(yè),單擊“考生注冊(cè)”超鏈接,即可進(jìn)入考生注冊(cè) 頁(yè)面,輸入個(gè)人的真實(shí)資料后,單擊“注冊(cè)”按鈕,系統(tǒng)將根據(jù)輸入的個(gè)人資 料自動(dòng)生成準(zhǔn)考證號(hào)和考生密碼,下面為考生注冊(cè)的運(yùn)行結(jié)果,如圖 15 所示。 圖 15 考生注冊(cè)運(yùn)行結(jié)果 (3) 考生登錄編號(hào)的生成主要應(yīng)用的是 mt_rand()函數(shù)和 substr()函數(shù)。首 先通過(guò) mt_rand()函數(shù)來(lái)獲取一個(gè) 100000999999 之間的隨機(jī)數(shù),然后應(yīng)用 substr()函數(shù)從該隨機(jī)數(shù)中獲取 6 個(gè)數(shù)字,作為考生編號(hào)。 mt_rand()函數(shù)的功能是獲取隨機(jī)數(shù)的值。語(yǔ)法格式

41、如下: int mt_rand(int min,int max) 下面應(yīng)用 mt_rand()函數(shù)來(lái)獲取 100000999999 之間的隨機(jī)數(shù)。代碼如下: 運(yùn)行結(jié)果為:321864 20 (4) 下面為考生修改密碼運(yùn)行結(jié)果,如圖 16 所示。 圖 16 考生修改密碼運(yùn)行結(jié)果 在線考試模塊設(shè)計(jì): (1) 在線考試模塊的主要功能是允許考生在網(wǎng)站上針對(duì)指定的課程進(jìn)行考 試。在該模塊中,考生首先需要登錄到本系統(tǒng)中,閱讀考試規(guī)則,在同意所列 出的考試規(guī)則后,才能選擇考試類別和套題,然后進(jìn)入考試頁(yè)面進(jìn)行答題,當(dāng) 考生提交試卷或者到達(dá)考試結(jié)束時(shí)間時(shí),系統(tǒng)將自動(dòng)對(duì)考生提交的試卷進(jìn)行評(píng) 分,并給出最終考試成績(jī)

42、。在線考試模塊的系統(tǒng)流程如圖 17 所示。 開(kāi)始 結(jié)束 在線考試 選擇考試科目 顯示本次考試成績(jī) 提交試卷/到達(dá) 考試結(jié)束時(shí)間 21 圖 17 在線考試模塊的系統(tǒng)流程圖 (2) 在線考試模塊中最核心的功能是如何輸出考題/如何對(duì)提交的答案進(jìn)行 判斷,并且將答案輸出到當(dāng)前頁(yè)中,這是在線考試最關(guān)鍵之處。 把系統(tǒng)需要的全部數(shù)據(jù)庫(kù)制作完成以后,將初始化模塊和數(shù)據(jù)庫(kù)模塊聯(lián)系 起來(lái),根據(jù)題型比例,隨機(jī)選出符合規(guī)格的試題,組成一張完整的試卷。考生 根據(jù)考試通知選擇要考試的課程名稱,然后系統(tǒng)根據(jù)管理員設(shè)置的考試信息, 存于 tb_admin 表中,從題庫(kù),即 tb_kt 表中隨機(jī)地抽取一定量的題目,比如 50

43、個(gè),產(chǎn)生隨機(jī)的一張?jiān)嚲怼?流程圖如圖 18 所示。 選擇套題 題 型 分 數(shù) 生成試卷 隨 機(jī) 函 數(shù) 考生選擇 管理員設(shè)置 考題類別 圖 18 試卷產(chǎn)生模塊流程圖 不同的考生抽取的題目都產(chǎn)生于試題庫(kù),但是由于是隨機(jī)抽取所以不同的 人試卷不一樣,所以,這能夠更好地體現(xiàn)的考試的公平性。 由于上述三方面的內(nèi)容都在同一頁(yè)中顯示,所以在技術(shù)實(shí)現(xiàn)的過(guò)程中這三方 面是以一個(gè)整體的形式出現(xiàn)。單選題輸出,答案判斷和考題答案輸出的關(guān)鍵代 碼如下: 分 ?php 22 $array1=explode(*,$myrow1options); if($_postsubmit!=) for($a=0;$acount($a

44、rray1);$a+) if($array1$a!=) if($array1$a=$_post$myrow1kt_id) $str1=$_post$myrow1kt_id; for($a=0;$a input type=radio name= value= ?php if($_post$myrow1kt_id=true) if($myrow1ans=$str1) echo 您輸入的答案; echo .substr($str1,0).; echo 正確分?jǐn)?shù):; echo .$myrow1fenzhi.; $fen1+=$myrow1fenzhi; else echo 您輸入的答案; echo .

45、substr($str1,0).; echo 錯(cuò)誤; echo 正確答案:.substr($myrow1ans,0). ; ? 23 (3) 下面為考生通過(guò)系統(tǒng)驗(yàn)證登錄后,進(jìn)入考場(chǎng)時(shí)的運(yùn)行結(jié)果,如圖 19 所示。 圖 19 考生進(jìn)入考場(chǎng)時(shí)運(yùn)行結(jié)果 (4) 考生閱讀考試考試規(guī)則且同意后,則可進(jìn)行考題的選擇,運(yùn)行結(jié)果如 下圖 20 所示。 圖 20 考生選擇考題運(yùn)行結(jié)果 24 (5) 考生選擇好考試類別和套題之后,則可正式進(jìn)入考試頁(yè)面進(jìn)行答題。 且能進(jìn)行自動(dòng)倒計(jì)時(shí)。如圖 21 所示。 圖 21 考生開(kāi)始考試運(yùn)行結(jié)果 (6) 計(jì)時(shí)模塊的實(shí)現(xiàn) xmlhttprequest 在瀏覽器中運(yùn)行,將其代碼保存

46、在一個(gè)名稱為 xmlhttprequest.js 的文件中,然后在需要應(yīng)用 ajax 技術(shù)的頁(yè)面中應(yīng)用以下代碼 包含該文件。 接下來(lái)編寫(xiě)兩個(gè)自定義的函數(shù) showtime()和 sparetime(),通過(guò) showtime()函 數(shù)來(lái)讀取顯示時(shí)間的文件 showtime.php 中的數(shù)據(jù);通過(guò) sparetime()函數(shù)讀取獲 取剩余時(shí)間的文件 sparetime.php 中的數(shù)據(jù)。 showtime.php 文件中實(shí)現(xiàn)當(dāng)前時(shí)間顯示的原理是:獲取一個(gè)在 session 變量 中存儲(chǔ)的考試時(shí)間戳,然后再應(yīng)用 mktime()函數(shù)來(lái)獲取當(dāng)前時(shí)間的時(shí)間戳,應(yīng) 用當(dāng)前的時(shí)間戳減去考試開(kāi)始時(shí)間的時(shí)間戳

47、,最后應(yīng)用 date()函數(shù)輸出獲取的新 時(shí)間戳的時(shí)間值。 sparetime.php 中獲取剩余時(shí)間的實(shí)現(xiàn)原理是:首先設(shè)置考試時(shí)長(zhǎng)為 30 分鐘, 在考試開(kāi)始計(jì)時(shí)的基礎(chǔ)上加上 30 分鐘,然后用考試時(shí)間減去系統(tǒng)的當(dāng)前時(shí)間, 獲取的就是考試剩余時(shí)間,當(dāng)剩余時(shí)間為零時(shí),系統(tǒng)將自動(dòng)提交試卷。 25 5.2.3 后臺(tái)詳細(xì)設(shè)計(jì)與實(shí)現(xiàn) 后臺(tái)首頁(yè)設(shè)計(jì): (1) 網(wǎng)絡(luò)在線考試系統(tǒng)的后臺(tái)首頁(yè)是管理員對(duì)網(wǎng)站信息進(jìn)行管理的首頁(yè)面。 在該頁(yè)面中,管理員可以清楚地了解網(wǎng)站后臺(tái)管理系統(tǒng)包含的基本操作。網(wǎng)絡(luò) 在線考試網(wǎng)后臺(tái)首頁(yè)包含的主要模塊如下: 管理員信息管理:主要用于修改管理員信息。 考生信息管理:主要包括查看注冊(cè)考

48、生信息列表和考生信息查詢、考 試成績(jī)查詢和刪除已注冊(cè)的考生信息。 考題類別管理:主要包括查看考題類別列表、添加考題類別信息和刪 除考題類別信息。 考題信息添加:主要用于添加為各類套題添加單選題、多選題、問(wèn)答 題和論述題,并設(shè)置每題的分?jǐn)?shù)及內(nèi)容。 考題信息管理:主要包括查看考題類別列表、修改套題信息和刪除套 題信息。 包括查看考試題目列表、添加考試題目、修改考試題目和刪除考試題 目。 退出管理:主要用于退出后臺(tái)管理系統(tǒng)。 (2) 下面為本系統(tǒng)的后臺(tái)登錄頁(yè)面,如圖 22 所示。 圖 22 后臺(tái)登錄首頁(yè) 26 (3) 下面為管理員登錄后臺(tái)系統(tǒng)后,所顯示的后臺(tái)功能頁(yè)面,如圖 23 所示。 圖 23 后

49、臺(tái)功能主頁(yè)面 考題信息管理模塊設(shè)計(jì): 考題信息管理模塊主要包括查詢考題信息、添加考題信息、修改考題信息 和刪除考題信息等 4 個(gè)功能。 在實(shí)現(xiàn)考題信息管理模塊時(shí),為了更好地管理,因此把考題類別單獨(dú)存儲(chǔ) 于一個(gè)數(shù)據(jù)表 tb_lb 中,這樣在錄入考題信息時(shí)就可以把考題類別以下拉列表的 形式從數(shù)據(jù)庫(kù)中讀取出來(lái)。這種從下拉列表中動(dòng)態(tài)顯示數(shù)據(jù)表某列的字段值的 方法,不僅方便管理員更快捷、靈活地操作網(wǎng)絡(luò)在線考試系統(tǒng),更大大提高了 工作效率,達(dá)到事半功倍的效果。 下拉列表是一種最節(jié)省空間的數(shù)據(jù)顯示方式,正常狀態(tài)下只能看到一個(gè)選 項(xiàng),單擊控制按鈕后,可以顯示一定數(shù)量的選項(xiàng),如果超出這個(gè)數(shù)量,會(huì)自動(dòng) 顯示滾動(dòng)條

50、,管理員可以通過(guò)拖動(dòng)滾動(dòng)條來(lái)選擇各選項(xiàng)。 下面介紹從下拉列表中動(dòng)態(tài)顯示數(shù)據(jù)表某列的字段值的方法。 首頁(yè),創(chuàng)建與數(shù)據(jù)庫(kù)的連接。代碼如下: 27 然后應(yīng)用下拉列表框和 select 查詢語(yǔ)句相結(jié)合實(shí)現(xiàn)在下拉列表中顯示數(shù)據(jù) 表中的 online_ktlb 字段的值,通過(guò) while 循環(huán)語(yǔ)句進(jìn)行輸出。代碼如下: option value= (1) 下面為管理員添加考題時(shí)的運(yùn)行界面,考試題目添加包含兩個(gè)步驟: 一是為添加的考試題目選擇專業(yè)、課程以及套題,二是將填寫(xiě)的考試題目信息 插入到數(shù)據(jù)庫(kù)中。 添加考題運(yùn)行結(jié)果如圖 24 所示。 圖 24 添加考題運(yùn)行結(jié)果 28 考題信息添加頁(yè)面涉及到的 html

51、表單的重要元素如表 4 所示。 表 4 考題信息添加頁(yè)面涉及到的 html 表單的重要元素 名稱 類型 重要屬性 含義 form2 form method=”post” action=”ktxx_tj_ok.php” 表單 kt_lb select option value=” kt_small_lb select 所屬套題 第一套題 第二套題 第三套題 第四套題 kt_fs text size=10 考試成績(jī) kt_nr textarea cols=60 rows=5 考題內(nèi)容 kt_daan textarea cols=60 rows=5 考題答案 kt_zqdaan textarea c

52、ols=60 rows=5 考題正確答案 submit2 submit value=提交考題 “提交考題”按 鈕 添加考試題目首先要選擇考題的類別,然后所擇所屬套題,再選擇考題類 型,最后根據(jù)考題類別將考題內(nèi)容添加完整。 提交考題表單到數(shù)據(jù)處理頁(yè),程序處理頁(yè)面首先應(yīng)用變量獲取到表單數(shù)據(jù), 然后應(yīng)用 insertinto 語(yǔ)句將其插入到考題信息表 tb_kt 中。如果考題信息添加 成功,則彈出提示信息,并重新定位到考題信息添加頁(yè)面。 ?php include(./conn/conn.php); if($submit2=提交考題) $queryes=mysql_query(insert into

53、tb_kt (kt_lb,kt_lx,kt_fs,kt_nr,kt_daan,kt_zqdaan,kt_small_lb)values($kt_lb,$kt_lx,$kt_fs, $kt_nr,$kt_daan,$kt_zqdaan,$kt_small_lb); if($queryes) echo alert(考題添加成功!); window.location.href=index.php?htgl=考題信息添加; 29 ? (2) 管理員登錄后,單擊“考題信息管理”超鏈接,進(jìn)入到查詢考題信息 頁(yè)面,選擇考題類別后,單擊“考題查找”按鈕,將查詢出該類別下的所有考 題信息。同時(shí)提供修改考題信息和

54、刪除考題信息的功能。查詢考題信息頁(yè)面的 運(yùn)行結(jié)果如圖 25 所示。 圖 25 考題信息管理運(yùn)行結(jié)果 在考試題目查詢頁(yè)面中,首先建立用于查詢的表單 form1,該表單中包含 “考題類別”列表/菜單控件以及“考題查找”按鈕。 當(dāng)管理員選擇考題類別后,單擊“考題查找”按鈕,提交考題 kt_lb 類別到當(dāng) 前頁(yè),然后根據(jù)獲取到的考題類別檢索考題信息表 tb_kt,并將該類別下的所有 考題信息輸出到瀏覽器。 查詢考題信息頁(yè)面提供了修改考題信息的功能,管理員可對(duì)指定的考題信 息進(jìn)行編輯,單擊“修改”按鈕后,提交 submit2 表單信息到數(shù)據(jù)處理頁(yè) ktxx_gl_ok.php。 查詢考題信息頁(yè)面提供了刪

55、除考題信息的功能,管理員可對(duì)指定的考題信 息進(jìn)行刪除,單擊“刪除”按鈕后,提交 submit3 表單信息到處理頁(yè) ktxx_gl_ok.php。 30 6 系統(tǒng)測(cè)試 6.1 測(cè)試環(huán)境 服務(wù)器端:windows xp pro sp2、apache、mysql 客戶端:windows xp pro sp2、360 安全瀏覽器 5.0 正式版、ie8.0 6.2 什么是軟件測(cè)試 軟件測(cè)試是在軟件投入運(yùn)行前,對(duì)軟件需求分析、設(shè)計(jì)規(guī)格說(shuō)明書(shū)和編碼 的最終的復(fù)審,是軟件質(zhì)量保證的關(guān)鍵步驟。確切的說(shuō),軟件測(cè)試就是為了發(fā) 現(xiàn)錯(cuò)誤而執(zhí)行的過(guò)程。一般分為兩個(gè)階段: (1) 單元測(cè)試:在編完一模塊后進(jìn)行測(cè)試; (2

56、) 綜合測(cè)試:在開(kāi)發(fā)完軟件后進(jìn)行綜合測(cè)試。 6.3 軟件測(cè)試的目標(biāo)與方法 g.myers 給出了關(guān)于測(cè)試的一些規(guī)則,這些規(guī)則可以看作是測(cè)試的目標(biāo)或 定義: (1) 測(cè)試是為了發(fā)現(xiàn)程序中的錯(cuò)誤而執(zhí)行程序的過(guò)程; (2) 好的測(cè)試方案是極可能發(fā)現(xiàn)迄今為止尚未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試; (3) 成功的測(cè)試是發(fā)現(xiàn)了至今為止尚未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試。 測(cè)試任何軟件都有兩種方法:黑盒測(cè)試和白盒測(cè)試法。 黑盒測(cè)試法(又稱功能測(cè)試法)是把程序看成一個(gè)黑盒子,完全不考慮程 序的內(nèi)部結(jié)構(gòu)和處理過(guò)程,是在程序接口進(jìn)行的測(cè)試,它只檢查程序功能是否 按照規(guī)格說(shuō)明書(shū)的規(guī)定正常使用。 白盒測(cè)試法(又稱結(jié)構(gòu)測(cè)試法)是把程序看成裝在一個(gè)透明的白盒子里, 也就是完全了解程序的結(jié)構(gòu)和處理過(guò)程,這種方法按照程序內(nèi)部的邏輯測(cè)試程 序,檢驗(yàn)程序中的每條通路是否都能按照預(yù)定要求正確工作。 通過(guò)測(cè)試并不能證明程序就是完全正確的,但我們的目的就是要通過(guò)測(cè)試 保證軟件的可靠性,因此,必須仔細(xì)設(shè)計(jì)測(cè)試方案

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論