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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、 2012 屆屆畢業(yè)設計說畢業(yè)設計說明明書書 無紙化在線考試系統(tǒng) 系 、 部: 計算機與信息科學學院 學生姓名: 賀玲玲 指導教師: 曾利軍 職稱 講師 專 業(yè): 軟件技術 班 級: 軟件 0902 班 完成時間: 2012 年 5 月 17 日 摘 要 隨著科技的發(fā)展,網(wǎng)絡技術已經(jīng)深入到人們的日常生活中,同時帶來了教 育方式的一次變革。而網(wǎng)絡考試則是一個很重要的方向。基于 web 技術的網(wǎng)絡 考試系統(tǒng)可以借助于遍布全球的 internet 進行。因此考試既可以在本地進行, 也可以在異地進行,大大拓展了考試的靈活性。并且縮短了傳統(tǒng)考試要求老師 打印試卷、安排考試、監(jiān)考、收集試卷、評改試卷、講評

2、試卷和分析試卷,這 個漫長而復雜的過程,使考試更趨于客觀、公正。 本文介紹了一個具有在線考試、及時閱卷、成績查詢以及考題和考生信息 管理等功能的無紙化在線考試系統(tǒng)。該系統(tǒng)是基于 php 和 mysql,為了配合 網(wǎng)上教學建立的“網(wǎng)上考試系統(tǒng)” ,實現(xiàn)網(wǎng)上學習一體化而設計的。設計本系統(tǒng) 要熟悉 html,php 語言及 mysql 數(shù)據(jù)庫的編輯和應用。其中用到了 dreamweaver 幫助進行站點和網(wǎng)頁設計,還用到了 phpmyadmin 對 mysql 數(shù)據(jù) 庫進行可視化操作。 全文共分為緒論、系統(tǒng)分析、設計工具及關鍵技術介紹、系統(tǒng)概要設計、 系統(tǒng)詳細設計、系統(tǒng)測試、 總結展望、參考文獻。詳

3、細闡述了系統(tǒng)分析、系統(tǒng) 設計的方法及其內容。 關鍵詞:在線考試系統(tǒng);及時閱卷;基于 php;mysql abstract with the development of science and technology, network technology has deep into the peoples daily life, and the way of education brings a transformation. and network exam is a very important direction. based on the web technology network

4、exam system can all over the world by internet. so the exam can in local, or in other cities, greatly expand the flexibility of the exam. and shorten the traditional test request print examination paper, arrange the exam teacher, monitors, collection, as a test, evaluation and analysis of the test p

5、aper test papers, the long and complex process, tend to be more objective and fair exam. this paper introduces a on-line exam, timely with scores query scoring, and examination questions and the examinee information management functions of network on-line examination system. the system is based on p

6、hp and mysql, in order to match the online teaching set up online examination system, the realization of online learning and the integration of design. design the system must be familiar with the html, php language and mysql database editors and application. with the help of dreamweaver on site and

7、web design, still use the phpmyadmin mysql database of visual operation. full text is divided into the introduction, system analysis, design tools and key technology is introduced, the system design, system detailed summary design, system test and summarized the outlook and references. expounds the

8、system analysis, system design method and its content. keywords: on-line examination system; timely reading; based on the php; mysql 目 錄 1 緒 論.1 1.1 系統(tǒng)開發(fā)的現(xiàn)狀.1 1.2 系統(tǒng)開發(fā)的目的.2 1.3 系統(tǒng)開發(fā)的意義.2 2 系統(tǒng)分析.3 2.1 可行性分析.3 2.1.1 經(jīng)濟可行性.3 2.1.2 技術可行性.3 2.2 需求分析.3 2.3 開發(fā)環(huán)境.4 3 設計工具及關鍵技術介紹.5 3.1 apache 簡介.5 3.2 php 語言

9、簡介.5 3.3 php 連接 mysql 數(shù)據(jù)庫.6 3.3.1 php 連接數(shù)據(jù)庫的兩種方法 .6 3.3.2 php 對 mysql 數(shù)據(jù)庫的兩種連接方式 .6 3.4 ajax 簡介.7 4 系統(tǒng)概要設計.8 4.1 系統(tǒng)的總體設計.8 4.2 數(shù)據(jù)庫設計.8 4.3 系統(tǒng)結構設計.9 4.3.1 系統(tǒng)功能結構.9 4.3.2 系統(tǒng)流程圖.10 5 系統(tǒng)詳細設計.11 5.1 數(shù)據(jù)庫設計.11 5.1.1 數(shù)據(jù)庫分析.11 5.1.2 概念設計.11 5.1.3 數(shù)據(jù)庫物理結構.13 5.2 系統(tǒng)詳細設計與實現(xiàn).14 5.2.1 系統(tǒng)配置.14 5.2.2 前臺詳細設計與實現(xiàn).15 5

10、.2.3 后臺詳細設計與實現(xiàn).25 6 系統(tǒng)測試.31 6.1 測試環(huán)境.31 6.2 什么是軟件測試.31 6.3 軟件測試的目標與方法.31 6.4 系統(tǒng)評估.32 7 總結與展望.33 參考文獻.34 致 謝.35 附 錄.36 1 緒 論 1.1 系統(tǒng)開發(fā)的現(xiàn)狀 世界各國對教育的發(fā)展給予了前所未有的關注,都試圖在未來的信息社會 中讓教育處于一個優(yōu)勢的位置,從而走在社會發(fā)展的前列,為此許多國家都把 信息技術應用于教育,采取措施推進教育信息化。美國政府在 1996 年提出了 “教育技術規(guī)劃” ,指出到 21 世紀初讓全美國的每間教室和每個圖書館都將聯(lián) 上信息高速公路,讓每個孩子都能在“21

11、 世紀教師”網(wǎng)絡服務。澳大利亞國家公 共資源管理局已于 1995 年 4 月建立“澳大利亞教育網(wǎng)” ,并聯(lián)通 internet,該網(wǎng) 絡不僅包括全部高等院校,而且還覆蓋全澳大利亞所有的中小學。 網(wǎng)絡化在線考試作為網(wǎng)上遠程教育的重要組成部分和發(fā)展分支,己經(jīng)在國 外一些發(fā)達國家得到蓬勃發(fā)展,人們選學課程和考試都是通過網(wǎng)上進行。特別 是 internet 業(yè)務的普及,構筑高性能、低成本的計算機網(wǎng)絡化在線考試,從技 術條件和經(jīng)濟條件上己經(jīng)成熟。例如在美國,一些著名的考試就采用了網(wǎng)上在 線考試的形式包括 microsoft 公司的 mcse(微軟系統(tǒng)工程師認證考試)gmat(工 商管理碩士入學考試)、托

12、福考試、gre(美國研究生入學考試)等等,并己在全 范應用。 在國內,普遍地看絕大多數(shù)遠程教育的考試還停留在傳統(tǒng)考試方式。在此 方式下,組織一次考試至少要經(jīng)過 5 個步驟,即人工出卷、考生考試、人工閱 卷、試卷分析和成績評估。顯然,隨著考試類型的不斷增加及考試要求的不斷 提高,教師的工作量將會越來越大,并且這樣工作將是一件十分煩瑣和非常容 易出錯的事情。但是對互聯(lián)網(wǎng)的真正應用僅限于網(wǎng)上報名工作和網(wǎng)上成績查詢, 還沒有真正形成上網(wǎng)考試的規(guī)模。而在國外一些國家,網(wǎng)上提交作業(yè)和網(wǎng)上考 試已經(jīng)相當普及了。所以說傳統(tǒng)的考試方式已經(jīng)不能適應現(xiàn)代考試的需要。 近幾年來,借鑒發(fā)達國家的成功經(jīng)驗,結合我國的實際

13、情況,伴隨著網(wǎng)絡 應用的不斷擴大,遠程教育和虛擬大學的出現(xiàn),網(wǎng)絡應用正不斷深入人心。人 們迫切要求利用網(wǎng)絡技術進行在線考試,來提高了考試的質量,突出公正和客 觀性,減輕組織及保障工作的負擔,提高工作效率。于是許多教育教學類的課 程在線考試軟件應運而生,高等學校,企事業(yè)單位也都紛紛組織研究此類應用 的解決方案,并研制開發(fā)了大量的不同類型計算機在線考試軟件,也推出了一 批優(yōu)秀的在線考試軟件產(chǎn)品。比如全國計算機等級考試軟件、職稱計算機能力 考試等等。有力地推動了我國網(wǎng)絡化在線考試的發(fā)展水平,并積累了大量有價 值的經(jīng)驗。 1.2 系統(tǒng)開發(fā)的目的 信息技術的發(fā)展對教育的影響是巨大的,隨著信息技術和網(wǎng)絡技

14、術的迅速 發(fā)展,教育信息化和網(wǎng)絡化也將成為必然的趨勢。作為教育評價和衡量學生能 力的考試也正經(jīng)歷著無紙化和網(wǎng)絡化的飛躍。網(wǎng)絡的開放性和分布性的特點以 及基于互聯(lián)網(wǎng)的巨大計算能力使得考試突破了時間和空間的限制?;诰W(wǎng)絡技 術的考試系統(tǒng)正成為人們的研究熱點之一,其中,基于 web 技術的考試系統(tǒng)已 成為互聯(lián)網(wǎng)的重要應用之一。 目前教師采用在線考試系統(tǒng)的還不多見,因為教師個體精力確實有限。但 隨著教研組制度的完善和教學交流活動的增加。對題庫的創(chuàng)建將提上議事的日 程,在線考試系統(tǒng)將大有用武之地,且能確??硷L考紀的根本好轉。 在線考試具有動態(tài)出題、自動閱卷、成績分析等優(yōu)點,不僅大大減輕了教 師人工組卷繁

15、瑣的工作量,提高資源利用率,其運行過程中,組卷速度較快, 較少出現(xiàn)重復的現(xiàn)象,而且有利于教考分離的實施,符合目前教學改革的目標。 更節(jié)省紙張資源,增強環(huán)保意識。因此,在線考試系統(tǒng)具有潛在的巨大商機和 研究價值,是未來數(shù)字化校園系統(tǒng)研究的熱點內容。 1.3 系統(tǒng)開發(fā)的意義 很多學校學生的期末考試仍采用任課教師(個人或集體)考前出題的方式。 為解決學生壓題,考前漏題,補(緩)考試題與正式考試試題題量及難度差異 問題,教務管理部門通常要求教師同時出多套試卷,其題量與難度要求相同, 并且要同時給出答案和評分標準。 若建立題庫,每次考試前由題庫中題目隨機生成試卷,則可較好地解決考 教分離的問題,也可將廣

16、大教師從每學期末繁重的命題工作中解放出來。近年 來,部分學校陸續(xù)開發(fā)了一些基于微機的題庫系統(tǒng),并作為成果向其它學校推 廣,但這些題庫一般都是結合本校具體情況,針對單一課程的小型題庫,甚至 某些學校購得的題庫系統(tǒng)中的題目本身是不可維護的,即使題目已不適合自己 的學生考試使用,也無法更新題庫中的題目。 為解決題庫系統(tǒng)中存在的這些問題,作者經(jīng)過研究幾種不同的網(wǎng)上系統(tǒng), 經(jīng)充分的考慮,最后給出了一個較為理想的題庫系統(tǒng)解決方案,并結合當前比 較使用的 b/s 結構開發(fā)一個功能較完備的網(wǎng)上考試系統(tǒng)。 2 系統(tǒng)分析 2.1 可行性分析 可行性分析的目的就是要用最小的代價在盡可能短的時間內確定問題是否 能夠解

17、決。通過分析解法的利弊,來判定系統(tǒng)目標和規(guī)模是否現(xiàn)實,系統(tǒng)完成 后所能帶來的效益是否達到值得去投資開發(fā)這個系統(tǒng)的程度。網(wǎng)絡在線考試系 統(tǒng)的可行性可從以下兩方面考慮。 2.1.1 經(jīng)濟可行性 定期的組織考試是各個院校及時掌握學生學習成績的有效方式,利用網(wǎng)絡 在線考試系統(tǒng),一方面可以節(jié)省人力資源,降低考試成本。另一方面,在線考 試系統(tǒng)能夠快速進行考試和評分,體現(xiàn)出考試的客觀與公正性。 2.1.2 技術可行性 開發(fā)一個網(wǎng)絡在線考試系統(tǒng),涉及到的最核心的技術問題就是如何實現(xiàn)在 不刷新頁面的情況下實時顯示考試時間及剩余時間,并做到到達考試結束時間 時自動提交試卷的功能。通過 ajax 技術可以輕松實現(xiàn)這

18、些功能,這為網(wǎng)絡在線 考試系統(tǒng)的開發(fā)提供了技術保障。 2.2 需求分析 隨著計算機技術的發(fā)展和網(wǎng)絡技術的日益成熟,通過網(wǎng)絡進行信息交流已 成為一種快捷的交互方式。在這種網(wǎng)絡環(huán)境下,學校或考試機構希望通過建立 網(wǎng)絡在線考試網(wǎng)站來擴大知名度、降低管理成本和減少人力物力的投資,從而 為考生提供更全面、更靈活的服務,并全面、準確地對考試進行跟蹤和評價。 與此同時,考生希望根據(jù)自己的學習情況進行測試,并能夠得到客觀、科學的 評價;教務人員希望能夠有效地改進現(xiàn)有的考試模式,提高考試效率。 通過實際情況的調查,要求網(wǎng)絡在線考試系統(tǒng)具有以下功能: 界面設計美觀大方、方便、快捷、操作靈活,樹立企業(yè)形象。 要求實

19、現(xiàn)在線考試功能,自動核算考試成績。 要求提供考試時間倒計時功能,使考生實時了解考試剩余時間。 要求系統(tǒng)自動閱卷,保證考試成績真實有效。 要求考生憑準考證號查詢考試成績,以保證信息安全。 2.3 開發(fā)環(huán)境 apache 是目前應用最廣的 web 服務器;php 是一種類似 asp 的服務器端 腳本語言,而 mysql 是一個小巧的數(shù)據(jù)庫系統(tǒng)軟件,它們特別適用于網(wǎng)站建 設。apache+php+mysql 不僅僅是開源項目,可免費獲取,而且它支持 linux、unix、os/2 和 windows 多個操作系統(tǒng),可移植性好。因此,這種組合 是設計動態(tài)網(wǎng)站的最佳解決方案。 (1) 硬件需求:計算機(

20、winxp 系統(tǒng)) (2) 軟件需求: 開發(fā)工具:dreamweaver cs5 服務器端開發(fā)環(huán)境:wampserver version2(apache 2.2.11+php 5.2.9+ mysql 5.1.32+ phpmyadmin 3.1.3) 3 設計工具及關鍵技術介紹 3.1 apache 簡介 apache 是世界使用排名第一的 web 服務器軟件。它可以運行在幾乎所有 廣泛使用的計算機平臺上,由于其跨平臺和安全性被廣泛使用,是最流行的 web 服務器端軟件之一。apache web 服務器軟件擁有以下特性: (1) 支持最新的 http/1.1 通信協(xié)議 (2) 擁有簡單而強有

21、力的基于文件的配置過程 (3) 支持通用網(wǎng)關接口 (4) 支持基于 ip 和基于域名的虛擬主機 (5) 支持多種方式的 http 認證 (6) 集成 perl 處理模塊 (7) 集成代理服務器模塊 (8) 支持實時監(jiān)視服務器狀態(tài)和定制服務器日志 (9) 支持服務器端包含指令(ssi) (10) 支持安全 socket 層(ssl) (11) 提供用戶會話過程的跟蹤 (12) 支持 fastcgi (13) 通過第三方模塊可以支持 java servlets 3.2 php 語言簡介 php 是英文超級文本預處理語言 hypertext preprocessor 的縮寫,它是一種 html 內嵌

22、式的語言,是一種在服務器端執(zhí)行的嵌入 html 文檔的腳本語言, php 獨特的語法混合了 c、java、perl 以及 php 自創(chuàng)新的語法。它可以比 cgi 或者 perl 更快速的執(zhí)行動態(tài)網(wǎng)頁。 用 php 做出的動態(tài)頁面與其他的編程語言相比,php 是將程序嵌入到 html 文檔中去執(zhí)行,執(zhí)行效率比完全生成 html 標記的 cgi 要高許多;php 還可以執(zhí)行編譯后代碼,編譯可以達到加密和優(yōu)化代碼運行,使代碼運行更快。 php 具有非常強大的功能,所有的 cgi 的功能 php 都能實現(xiàn),而且支持幾乎 所有流行的數(shù)據(jù)庫以及操作系統(tǒng)。 以下羅列了 php 所具有的一些特點: (1) 開

23、放的源代碼。所有的 php 源代碼事實上都可以得到。 (2) php 是免費的。和其它技術相比,php 本身免費。 (3) php 的快捷性。程序開發(fā)快,運行快,技術本身容易學習,上手快。 嵌入 html:因為 php 可以嵌入 html 語言,它相對于其他語言, 編輯簡單,實用性強,更適合初學者。 (4) 跨平臺性強。由于 php 是運行在服務器端的腳本,可以運行在 unix、linux、windows 下。 (5) 效率高。php 消耗相當少的系統(tǒng)資源。 (6) 圖像處理。用 php 動態(tài)創(chuàng)建圖像 (7) 面向對象。在 php5 中,面向對象方面都有了很大的改進,現(xiàn)在 php 完全可以用來

24、開發(fā)大型商業(yè)程序。 (8) 專業(yè)專注。php 支持腳本語言為主,同為類 c 語言。 3.3 php 連接 mysql 數(shù)據(jù)庫 3.3.1 php 連接數(shù)據(jù)庫的兩種方法 (1) 通過 mysql 庫和 mysqli 庫函數(shù)連接。這種方法是 php 連接 mysql 最 常用的方法,無論從易用性和效率上都比用 odbc 接口連接好。 php 存取 mysql 數(shù)據(jù)庫的四個步驟是: 建立連接:mysql_connect(); 操縱數(shù)據(jù)庫:mysql_select_db();返回布爾型數(shù)據(jù)值 操縱數(shù)據(jù)庫中的數(shù)據(jù):mysql_query(); 關閉連接:mysql_close(); (2) 通過 odb

25、c 接口連接。開放式數(shù)據(jù)庫互聯(lián)(open database connectivity,odbc)是 microsoft 引進的一種早期數(shù)據(jù)庫接口技術。microsoft 引進這種技術的一個主要原因是,以非語言專用的方式,提供給程序員一種訪 問數(shù)據(jù)庫內容的簡單方法。php 通過 odbc 不僅可以連接 mysql 數(shù)據(jù)庫,而 且還可以連接 oracle、sybase、informix 和 sql server 等。 3.3.2 php 對 mysql 數(shù)據(jù)庫的兩種連接方式 無論是使用 mysql/mysqli 庫函數(shù)還是使用 odbc 接口連接,php 對 mysql 數(shù)據(jù)庫的連接方式都有兩種。

26、分別是永久連接和非永久連接方式。 (1) 永久連接方式:它的最大的優(yōu)點是效率比非永久連接方式高,當客戶 端對 mysql 服務器的連接請求非常頻繁時,永久連接將更加高效。它使得每 個子過程在其生命周期中只做一次連接操作,而非每次在處理一個頁面時都要 向 mysql 服務器提出連接請求。即每個子過程將對服務器建立各自獨立的永 久連接。 (2) 非永久連接方式:即短連接方式。當客戶端向 web 服務器請求網(wǎng)頁時, 服務器處理這個請求,并將所請求的網(wǎng)頁發(fā)送給瀏覽器,然后連接就被斷開, 直到瀏覽器發(fā)出下一個請求。對于大部分網(wǎng)站通常都使用這種連接方式,它雖 然沒有永久連接方式的效率高,但是可有效避免永久

27、連接所帶來的問題和提高 服務器承載能力。 3.4 ajax 簡介 ajax 不是一種新的編程語言,而是一種用于創(chuàng)建更好更快以及交互性更 強的 web 應用程序的技術。 通過 ajax,javascript 可使用 javascript 的 xmlhttprequest 對象來直接與 服務器進行通信。通過這個對象,javascript 可在不重載頁面的情況與 web 服 務器交換數(shù)據(jù)。ajax 在瀏覽器與 web 服務器之間使用異步數(shù)據(jù)傳輸(http 請求) ,這樣就可使網(wǎng)頁從服務器請求少量的信息,而不是整個頁面。 web 應用程序較桌面應用程序有諸多優(yōu)勢;它們能夠涉及廣大的用戶,它 們更易安裝

28、及維護,也更易開發(fā)。ajax 是一種獨立于 web 服務器軟件的瀏覽 器技術??墒挂蛱鼐W(wǎng)應用程序更小、更快、更友好。 主要包含的技術: (1) web 標準(standards-based presentation)xhtml+css 的表示; (2) 使用 dom(document object model)進行動態(tài)顯示及交互; (3) 使用 xml 和 xslt 進行數(shù)據(jù)交換及相關操作; (4) 使用 xmlhttprequest 進行異步數(shù)據(jù)查詢、檢索; (5) 使用 javascript 將所有的東西綁定在一起。 4 系統(tǒng)概要設計 4.1 系統(tǒng)的總體設計 根據(jù)系統(tǒng)的功能要求,網(wǎng)絡考試系

29、統(tǒng)中涉及兩種不同的用戶:考試用戶、 管理員,他們的職能各不相同??荚囉脩暨M入網(wǎng)絡考試系統(tǒng),可以按照學習通 知完成查詢考試通知,查詢個人考試成績,修改密碼,在線考試。管理員能夠 發(fā)布學習通知,發(fā)布考試通知,設置考試時長,考試時段,考試題型比例,進 行試題庫維護,包括刪除,添加,及時更新,按不同條件查詢考生的成績并進 行分析統(tǒng)計。所有數(shù)據(jù)都存儲在服務器的數(shù)據(jù)庫中,具體應達到以下目標: (1) 采用開放、動態(tài)的系統(tǒng)框架,加強用戶與網(wǎng)站的交互性。 (2) 具有空間性。被授權的用戶可以在異地登陸考試系統(tǒng),無須到指定地點 行進行考試。 (3) 操作簡單方便,界面簡潔美觀。 (4) 系統(tǒng)提供考試倒計時功能,

30、使考生了解考試剩余時間。 (5) 隨機抽取試題。 (6) 實現(xiàn)自動提交試卷的功能。當考試時間到達規(guī)定時間,如果考生還未提 交試卷,系統(tǒng)將自動交卷,以保證考試嚴肅、公正地進行。 (7) 系統(tǒng)自動閱卷,保證成績的真實準確。 (8) 考生可以查詢自己的考試成績。 4.2 數(shù)據(jù)庫設計 數(shù)據(jù)庫設計的任務是確定系統(tǒng)所需的數(shù)據(jù)庫,它的價值在于它能夠向用戶 提供有意義的信息,還有向系統(tǒng)供應所需的一切數(shù)據(jù)。在 mysql 數(shù)據(jù)庫系統(tǒng) 中建立一個名為 db_online 的數(shù)據(jù)庫,在該數(shù)據(jù)庫中可以創(chuàng)建與實體對應的數(shù)據(jù) 表,存放考試系統(tǒng)中與考生,管理員,考題類別,考試成績相關的數(shù)據(jù)。下面 給出數(shù)據(jù)庫中所包含的數(shù)據(jù)表

31、的結構圖,如圖 1 所示。 圖 1 db_online 數(shù)據(jù)庫所包含數(shù)據(jù)表的結構圖 4.3 系統(tǒng)結構設計 4.3.1 系統(tǒng)功能結構 網(wǎng)絡考試系統(tǒng)的考生用戶和管理員分別為前臺用戶和后臺用戶,他們的功 能職責不同,其功能結構圖如圖 2 所示。 網(wǎng)絡考試系統(tǒng) 管理員功能頁面考試用戶功能頁面 發(fā) 布 通 知 課 程 管 理 考 試 管 理 題 庫 管 理 成 績 查 詢 參 加 考 試 考 試 通 知 查 詢 成 績 修 改 密 碼 圖 2 網(wǎng)絡考試系統(tǒng)功能結構圖 考生功能: (1) 參加考試:選擇考試課程之后,考試開始并計時,手動和自動提交試 卷,自動閱卷。 (2) 查詢成績:考生可以查詢本人的成績

32、信息。 (3) 修改密碼:考生修改自己的密碼。 (4) 學習通知:考生可以查看管理員發(fā)布的考試通知。 管理員功能: (1) 發(fā)布通知:管理員進入發(fā)布通知頁面,發(fā)布考試通知。 (2) 考試管理:添加、修改考試科目;修改試卷的題型比例;修改考題類 型,考題類別,確定考試日期和考試時長。 (3) 題庫管理:及時對題庫進行更新,刪除舊的題目,插入新的題目等。 (4) 成績查詢:管理員可以查看權限范圍內所有用戶的成績信息,并可以 對所有信息進行分析統(tǒng)計。 4.3.2 系統(tǒng)流程圖 考生在網(wǎng)絡在線考試系統(tǒng)中通過注冊為網(wǎng)站用戶,登錄網(wǎng)站進行相關操作。 考生登錄后,可以進行在線考試、查詢成績和修改個人密碼的操作

33、。在考試前, 考生需要閱讀考試規(guī)則、選擇考試套題后開始考試;考試時間結束時,考生提 交試卷;提交試卷的同時,系統(tǒng)將自動返回本次考試的考試結果。網(wǎng)站的管理 員通過登錄模塊可以登錄到網(wǎng)站的后臺系統(tǒng),對考生信息、考試信息、管理員 信息進行管理。網(wǎng)絡在線考試系統(tǒng)的系統(tǒng)流程,如圖 3 所示。 圖 3 網(wǎng)絡在線考試系統(tǒng)流程圖 5 系統(tǒng)詳細設計 5.1 數(shù)據(jù)庫設計 數(shù)據(jù)庫的設計過程一般是從現(xiàn)實世界出發(fā),進行需求分析、概念分析、邏 輯分析和物理設計的。其中需求分析是整個設計過程的基礎,是最困難、最耗 費時間的一步。需求分析做的不好,甚至會導致整個數(shù)據(jù)庫設計返工重做。概 念結構設計師整個數(shù)據(jù)庫設計的關鍵,它通過

34、對用戶需求進行分析、綜合、歸 納與抽象,形成一個獨立、具體的數(shù)據(jù)可管理系統(tǒng)的概念模型。邏輯結構設計 師將概念轉換為某個數(shù)據(jù)庫管理系統(tǒng)所支持的數(shù)據(jù)庫模型,并對其進行優(yōu)化。 物理結構設計是為邏輯結構設計選擇一個最適合應用環(huán)境的物理結構,并對數(shù) 據(jù)可進行布置。 5.1.1 數(shù)據(jù)庫分析 mysql 是一個小巧的數(shù)據(jù)庫系統(tǒng)軟件,特別適用于網(wǎng)站建設。mysql 的 設計目標是提供一個高速、可靠、可擴展、易于使用的數(shù)據(jù)庫管理系統(tǒng)。 apache+php+mysql 不僅僅是開源項目,可免費獲取,而且它支持 linux、unix、os/2 和 windows 多個操作系統(tǒng),可移植性好,這種組合是設計 動態(tài)網(wǎng)站

35、的最佳解決方案。綜上所述,本系統(tǒng)采用 mysql 數(shù)據(jù)庫。 5.1.2 概念設計 (1) 考生信息實體 考生信息實體包括編號、考生姓名、聯(lián)系方式、準考證號、考試成績、考 題類別、考試時間、聯(lián)系地址、考試狀態(tài)和考生密碼等屬性??忌畔嶓w的 e-r 圖,如圖 4 所示。 考試成績 準考證號 考題類別 考試時間 考生 考生密碼 考試狀態(tài) 圖 4 考生信息實體 e-r 圖 考生姓名聯(lián)系方式 編號 (2) 管理員實體 管理員實體包括編號、管理員名稱和加密密碼屬性。 管理員實體的 e-r 圖如圖 5 所示。 管理員 密碼編號 管理員姓名 圖 5 管理員信息實體 e-r 圖 (3) 考題類別實體 考題類別

36、實體包括編號和考題類別名稱。 考題類別實體的 e-r 圖,如圖 6 所示。 考題類別 編號類別名稱 圖 6 考題類別實體 e-r 圖 (4) 考題信息實體 考題信息實體包括編號、考題類別、考試成績、考題內容、考題答案、考 題正確答案及考題所屬套題等屬性。 考試題目實體的 e-r 圖如圖 7 所示。 考題內容 考題信息 考題類別 別 考試成績 考題答案正確答案 所屬套題 編號 圖 7 考題信息實體 e-r 圖 5.1.3 數(shù)據(jù)庫物理結構 (1) tb_user(考生信息表) 考生信息表用來保存考生信息,主鍵為 online_id。 該數(shù)據(jù)表結構如圖 8 所示。 圖 8 考生信息結構圖 (2) t

37、b_admin(管理員信息表) 管理員信息表用來保存管理員的用戶名和密碼。主鍵為 id。 該數(shù)據(jù)表結構如圖 9 所示。 圖 9 管理員信息結構圖 (3) tb_ktlb(考題類別信息表) 考題類別信息表用來保存考題類別。該數(shù)據(jù)表結構如圖 10 所示。 圖 10 考題類別信息結構圖 (4) tb_kt(考題信息表) 考題信息表用來保存考試題目信息和考題答案等相關信息。 該數(shù)據(jù)表結構如圖 11 所示。 圖 11 考題信息結構圖 在數(shù)據(jù)庫系統(tǒng)運行過程中,必須不斷地對其進行評價、調整與修改,內容 包括:數(shù)據(jù)庫的轉儲和恢復、數(shù)據(jù)庫的安全性、完整性控制、數(shù)據(jù)庫性能的監(jiān) 督、分析和改進、數(shù)據(jù)庫的重組織和重構

38、造等。 5.2 系統(tǒng)詳細設計與實現(xiàn) 根據(jù)需求分析,我們把在線考試系統(tǒng)分為六個模塊,即數(shù)據(jù)庫交互模塊、 功能列表模塊、題庫模塊、試卷生成模塊、考試生成模塊及在線考試模塊。下 面來看系統(tǒng)的詳細設計與實現(xiàn)。 5.2.1 系統(tǒng)配置 系統(tǒng)配置主要包括代碼開發(fā)工具配置和服務器配置。本系統(tǒng)采用的開發(fā)工 具是 dreamweaver,數(shù)據(jù)庫則采用得是 mysql,web 服務器采用 apache 服務 器。 b/s 模式系統(tǒng)的目錄結構有一定的規(guī)律性,因此必須遵循規(guī)范,并按照需 求分析建立各個模塊的目錄結構。整個目錄結構如下圖: 圖 12 目錄結構圖 首先將 php 連接到 mysql 數(shù)據(jù)庫服務器程序(con

39、n.php) ,該程序建立與 mysql 服務器的連接,打開 db_online 數(shù)據(jù)庫,代碼如下: 在每一個 php 程序的開頭通過以下語句引用 conn.php 程序: require(“./conn.php”); 5.2.2 前臺詳細設計與實現(xiàn) 前臺首頁設計 (1) 考生通過“考生登錄”模塊的驗證后,可以登錄到網(wǎng)絡在線考試系統(tǒng) 的前臺首頁。前臺首頁主要用于實現(xiàn)前臺功能導航,該頁面主要包括考生注冊、 考生登錄、修改密碼、成績查詢、進入考場和退出信息 6 個導航鏈接。 下面為前臺首頁頁面,如圖 13 所示。 圖 13 前臺首頁頁面 (2) 網(wǎng)絡在線考試系統(tǒng)前臺首頁主要實現(xiàn)了考生登錄功能,考生

40、通過準考 證號和密碼進行登錄??忌卿涰撁嬷兴婕暗降闹匾韱卧厝绫?1 所示。 表 1 考題信息表 名稱 元素類型 重要屬性 含義 form1 form method=post action=denglu_ok.php 表單 online_number text id=online_number size=20 準考證號碼 online_pass password id=online_pass size=20 考生密碼 submit submit value=提交 “提交”按鈕 (3) 考生在考生登錄頁面錄入準確的準考證號和密碼后,單擊“提交”按 鈕,提交表單信息到數(shù)據(jù)處理頁,應用 mys

41、ql_query()函數(shù)檢索考生是否成功登 錄。如果查詢結果為真,則將準考證號存儲在 session 變量中;否則彈出提示信 息。代碼如下: ?php session_start(); include(conn/conn.php); $online_number=isset($_postonline_number); $online_pass=isset($_postonline_pass); $sql=select * from tb_user where online_number=$online_number and online_pass=$online_pass; mysql_que

42、ry($sql); $result=mysql_affected_rows(); if($result1) echo alert(用戶名或密碼錯誤);history.go(-1); else session_register(online_number); echo alert(登錄成功!); window.location.href=index.php?online=進入考場; ? 考生信息模塊設計: (1) 考生信息模塊主要包括考生注冊、考生登錄、修改密碼 3 個功能???生首先要注冊為網(wǎng)站用戶,然后才被授權登錄網(wǎng)站進行一系列操作的權限;登 錄后考生還可以修改個人的密碼??忌畔⒛K的系統(tǒng)

43、流程如圖 14 所示。 開 始 考生注冊 考生登錄 結束 修改密碼 是 否 否 是 圖 14 考生信息模塊的系統(tǒng)流程圖 (2) 在考生注冊信息模塊中應用到 ajax 無刷新技術獲取考生的準考證號 碼和密碼。在介紹該功能的實現(xiàn)過程之前,先對 ajax 技術中的 xmlhttprequest 對象的屬性和方法進行詳細的講解。xmlhttprequest 對象是 ajax 技術的核心, 有關該對象的屬性和方法的詳細介紹如表 2 和表 3 所示。 表 2 xmlhttprequest 對象的屬性 屬性 描述 readystate 返回當前的請求狀態(tài) onreadystatechange 當 ready

44、state 屬性改變時就可以讀取此屬性值 status 返回 http 狀態(tài)碼 responsetext 將返回的響應信息用字符串表示 responsebody 返回響應信息正文,格式為字節(jié)數(shù)組 responsexml 將響應的 domcoment 對象解析成 xml 文檔并返回 表 3 xmlhttprequest 的方法 方法 描述 open 初始化一個新請求 send 發(fā)送請求 getallreponseheaders 返回所有http頭信息 getresponsehearder 返回指定的http頭信息 setrequestheader 添加指定的http頭信息 abort 停止當前的

45、 http 請求 考生注冊時的關鍵代碼如下: 在考生注冊頁面 zhuce.php 頁中實現(xiàn)考生注冊信息的提交,并且通過 ajax 的頁面無刷新技術獲取考生的準考證號和密碼。 zhuce.php 頁中的關鍵代碼如下: 在 zhuce_js.js 文件中首先定義一個 createxmlhttprequestobject()對象,并 獲取 xmlhttprrequest 對象,然后定義 xmlhttp 用來存儲將要使用的 xmlhttprrequest 對象。關鍵代碼如下: var xmlhttp=createxmlhttprequestobject(); function createxmlhtt

46、prequestobject() 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)建的對象或顯示錯誤信息); else return xmlhttp; 在網(wǎng)絡在線考試系統(tǒng)首頁,單擊“考生注冊”超鏈接,即可進入考生注冊 頁面,輸入個人的真實資料后,單擊“注

47、冊”按鈕,系統(tǒng)將根據(jù)輸入的個人資 料自動生成準考證號和考生密碼,下面為考生注冊的運行結果,如圖 15 所示。 圖 15 考生注冊運行結果 (3) 考生登錄編號的生成主要應用的是 mt_rand()函數(shù)和 substr()函數(shù)。首 先通過 mt_rand()函數(shù)來獲取一個 100000999999 之間的隨機數(shù),然后應用 substr()函數(shù)從該隨機數(shù)中獲取 6 個數(shù)字,作為考生編號。 mt_rand()函數(shù)的功能是獲取隨機數(shù)的值。語法格式如下: int mt_rand(int min,int max) 下面應用 mt_rand()函數(shù)來獲取 100000999999 之間的隨機數(shù)。代碼如下:

48、運行結果為:321864 (4) 下面為考生修改密碼運行結果,如圖 16 所示。 圖 16 考生修改密碼運行結果 在線考試模塊設計: (1) 在線考試模塊的主要功能是允許考生在網(wǎng)站上針對指定的課程進行考 試。在該模塊中,考生首先需要登錄到本系統(tǒng)中,閱讀考試規(guī)則,在同意所列 出的考試規(guī)則后,才能選擇考試類別和套題,然后進入考試頁面進行答題,當 考生提交試卷或者到達考試結束時間時,系統(tǒng)將自動對考生提交的試卷進行評 分,并給出最終考試成績。在線考試模塊的系統(tǒng)流程如圖 17 所示。 開始 結束 在線考試 選擇考試科目 顯示本次考試成績 提交試卷/到達 考試結束時間 圖 17 在線考試模塊的系統(tǒng)流程圖

49、(2) 在線考試模塊中最核心的功能是如何輸出考題/如何對提交的答案進行 判斷,并且將答案輸出到當前頁中,這是在線考試最關鍵之處。 把系統(tǒng)需要的全部數(shù)據(jù)庫制作完成以后,將初始化模塊和數(shù)據(jù)庫模塊聯(lián)系 起來,根據(jù)題型比例,隨機選出符合規(guī)格的試題,組成一張完整的試卷??忌?根據(jù)考試通知選擇要考試的課程名稱,然后系統(tǒng)根據(jù)管理員設置的考試信息, 存于 tb_admin 表中,從題庫,即 tb_kt 表中隨機地抽取一定量的題目,比如 50 個,產(chǎn)生隨機的一張試卷。 流程圖如圖 18 所示。 選擇套題 題 型 分 數(shù) 生成試卷 隨 機 函 數(shù) 考生選擇 管理員設置 考題類別 圖 18 試卷產(chǎn)生模塊流程圖 不同

50、的考生抽取的題目都產(chǎn)生于試題庫,但是由于是隨機抽取所以不同的 人試卷不一樣,所以,這能夠更好地體現(xiàn)的考試的公平性。 由于上述三方面的內容都在同一頁中顯示,所以在技術實現(xiàn)的過程中這三方 面是以一個整體的形式出現(xiàn)。單選題輸出,答案判斷和考題答案輸出的關鍵代 碼如下: 分 ?php $array1=explode(*,$myrow1options); if($_postsubmit!=) for($a=0;$acount($array1);$a+) if($array1$a!=) if($array1$a=$_post$myrow1kt_id) $str1=$_post$myrow1kt_id; f

51、or($a=0;$a input type=radio name= value= ?php if($_post$myrow1kt_id=true) if($myrow1ans=$str1) echo 您輸入的答案; echo .substr($str1,0).; echo 正確分數(shù):; echo .$myrow1fenzhi.; $fen1+=$myrow1fenzhi; else echo 您輸入的答案; echo .substr($str1,0).; echo 錯誤; echo 正確答案:.substr($myrow1ans,0). ; ? (3) 下面為考生通過系統(tǒng)驗證登錄后,進入考場時

52、的運行結果,如圖 19 所示。 圖 19 考生進入考場時運行結果 (4) 考生閱讀考試考試規(guī)則且同意后,則可進行考題的選擇,運行結果如 下圖 20 所示。 圖 20 考生選擇考題運行結果 (5) 考生選擇好考試類別和套題之后,則可正式進入考試頁面進行答題。 且能進行自動倒計時。如圖 21 所示。 圖 21 考生開始考試運行結果 (6) 計時模塊的實現(xiàn) xmlhttprequest 在瀏覽器中運行,將其代碼保存在一個名稱為 xmlhttprequest.js 的文件中,然后在需要應用 ajax 技術的頁面中應用以下代碼 包含該文件。 接下來編寫兩個自定義的函數(shù) showtime()和 spare

53、time(),通過 showtime()函 數(shù)來讀取顯示時間的文件 showtime.php 中的數(shù)據(jù);通過 sparetime()函數(shù)讀取獲 取剩余時間的文件 sparetime.php 中的數(shù)據(jù)。 showtime.php 文件中實現(xiàn)當前時間顯示的原理是:獲取一個在 session 變量 中存儲的考試時間戳,然后再應用 mktime()函數(shù)來獲取當前時間的時間戳,應 用當前的時間戳減去考試開始時間的時間戳,最后應用 date()函數(shù)輸出獲取的新 時間戳的時間值。 sparetime.php 中獲取剩余時間的實現(xiàn)原理是:首先設置考試時長為 30 分鐘, 在考試開始計時的基礎上加上 30 分鐘

54、,然后用考試時間減去系統(tǒng)的當前時間, 獲取的就是考試剩余時間,當剩余時間為零時,系統(tǒng)將自動提交試卷。 5.2.3 后臺詳細設計與實現(xiàn) 后臺首頁設計: (1) 網(wǎng)絡在線考試系統(tǒng)的后臺首頁是管理員對網(wǎng)站信息進行管理的首頁面。 在該頁面中,管理員可以清楚地了解網(wǎng)站后臺管理系統(tǒng)包含的基本操作。網(wǎng)絡 在線考試網(wǎng)后臺首頁包含的主要模塊如下: 管理員信息管理:主要用于修改管理員信息。 考生信息管理:主要包括查看注冊考生信息列表和考生信息查詢、考 試成績查詢和刪除已注冊的考生信息。 考題類別管理:主要包括查看考題類別列表、添加考題類別信息和刪 除考題類別信息。 考題信息添加:主要用于添加為各類套題添加單選題、

55、多選題、問答 題和論述題,并設置每題的分數(shù)及內容。 考題信息管理:主要包括查看考題類別列表、修改套題信息和刪除套 題信息。 包括查看考試題目列表、添加考試題目、修改考試題目和刪除考試題 目。 退出管理:主要用于退出后臺管理系統(tǒng)。 (2) 下面為本系統(tǒng)的后臺登錄頁面,如圖 22 所示。 圖 22 后臺登錄首頁 (3) 下面為管理員登錄后臺系統(tǒng)后,所顯示的后臺功能頁面,如圖 23 所示。 圖 23 后臺功能主頁面 考題信息管理模塊設計: 考題信息管理模塊主要包括查詢考題信息、添加考題信息、修改考題信息 和刪除考題信息等 4 個功能。 在實現(xiàn)考題信息管理模塊時,為了更好地管理,因此把考題類別單獨存儲

56、 于一個數(shù)據(jù)表 tb_lb 中,這樣在錄入考題信息時就可以把考題類別以下拉列表的 形式從數(shù)據(jù)庫中讀取出來。這種從下拉列表中動態(tài)顯示數(shù)據(jù)表某列的字段值的 方法,不僅方便管理員更快捷、靈活地操作網(wǎng)絡在線考試系統(tǒng),更大大提高了 工作效率,達到事半功倍的效果。 下拉列表是一種最節(jié)省空間的數(shù)據(jù)顯示方式,正常狀態(tài)下只能看到一個選 項,單擊控制按鈕后,可以顯示一定數(shù)量的選項,如果超出這個數(shù)量,會自動 顯示滾動條,管理員可以通過拖動滾動條來選擇各選項。 下面介紹從下拉列表中動態(tài)顯示數(shù)據(jù)表某列的字段值的方法。 首頁,創(chuàng)建與數(shù)據(jù)庫的連接。代碼如下: 然后應用下拉列表框和 select 查詢語句相結合實現(xiàn)在下拉列表

57、中顯示數(shù)據(jù) 表中的 online_ktlb 字段的值,通過 while 循環(huán)語句進行輸出。代碼如下: option value= (1) 下面為管理員添加考題時的運行界面,考試題目添加包含兩個步驟: 一是為添加的考試題目選擇專業(yè)、課程以及套題,二是將填寫的考試題目信息 插入到數(shù)據(jù)庫中。 添加考題運行結果如圖 24 所示。 圖 24 添加考題運行結果 考題信息添加頁面涉及到的 html 表單的重要元素如表 4 所示。 表 4 考題信息添加頁面涉及到的 html 表單的重要元素 名稱 類型 重要屬性 含義 form2 form method=”post” action=”ktxx_tj_ok.ph

58、p” 表單 kt_lb select option value=” kt_small_lb select 所屬套題 第一套題 第二套題 第三套題 第四套題 kt_fs text size=10 考試成績 kt_nr textarea cols=60 rows=5 考題內容 kt_daan textarea cols=60 rows=5 考題答案 kt_zqdaan textarea cols=60 rows=5 考題正確答案 submit2 submit value=提交考題 “提交考題”按 鈕 添加考試題目首先要選擇考題的類別,然后所擇所屬套題,再選擇考題類 型,最后根據(jù)考題類別將考題內容添

59、加完整。 提交考題表單到數(shù)據(jù)處理頁,程序處理頁面首先應用變量獲取到表單數(shù)據(jù), 然后應用 insertinto 語句將其插入到考題信息表 tb_kt 中。如果考題信息添加 成功,則彈出提示信息,并重新定位到考題信息添加頁面。 ?php include(./conn/conn.php); if($submit2=提交考題) $queryes=mysql_query(insert into 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,

60、$kt_zqdaan,$kt_small_lb); if($queryes) echo alert(考題添加成功!); window.location.href=index.php?htgl=考題信息添加; ? (2) 管理員登錄后,單擊“考題信息管理”超鏈接,進入到查詢考題信息 頁面,選擇考題類別后,單擊“考題查找”按鈕,將查詢出該類別下的所有考 題信息。同時提供修改考題信息和刪除考題信息的功能。查詢考題信息頁面的 運行結果如圖 25 所示。 圖 25 考題信息管理運行結果 在考試題目查詢頁面中,首先建立用于查詢的表單 form1,該表單中包含 “考題類別”列表/菜單控件以及“考題查找”按鈕

溫馨提示

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

評論

0/150

提交評論