基于JAVA 的網(wǎng)絡(luò)在線考試的體系結(jié)構(gòu)和具體設(shè)計
《基于JAVA 的網(wǎng)絡(luò)在線考試的體系結(jié)構(gòu)和具體設(shè)計》由會員分享,可在線閱讀,更多相關(guān)《基于JAVA 的網(wǎng)絡(luò)在線考試的體系結(jié)構(gòu)和具體設(shè)計(58頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、重慶郵電大學(xué)本科畢業(yè)設(shè)計(論文) 摘 要 本文闡述了一個基于 WEB 的網(wǎng)絡(luò)在線考試的體系結(jié)構(gòu)和具體設(shè)計以及實現(xiàn)過程。系統(tǒng)采用的三層體系結(jié)構(gòu):表示層、業(yè)務(wù)層、數(shù)據(jù)庫操作層開發(fā),即前端由JSP 網(wǎng)頁實現(xiàn)表現(xiàn)邏輯,中間使用 Java Bean 的組件實現(xiàn)系統(tǒng)內(nèi)部復(fù)雜的業(yè)務(wù)邏輯,后端使用 SQL Server 2000 數(shù)據(jù)庫實現(xiàn)數(shù)據(jù)邏輯。 系統(tǒng)提出了網(wǎng)絡(luò)在線考試系統(tǒng)的解決方案,實現(xiàn)了題目分類的特殊原則:考試題目,試題類型,分?jǐn)?shù)定制等。系統(tǒng)可以完成試題的隨機抽取,試卷的自動生成。試卷的發(fā)布等由后臺控制中心來完成,考試結(jié)束時系統(tǒng)可以根據(jù)考生的答題情況給出分?jǐn)?shù)。系統(tǒng)采用 B/S 模式設(shè)計,符
2、合目前的網(wǎng)絡(luò)趨勢,具有可操作性。系統(tǒng)在 Windows XP 平臺下開發(fā)成功。 【關(guān)鍵字】題庫管理 在線考試 JSP SQL Server 2000 ABSTRACT This article has explained a system structure based on exam administrative system of WEB and designs’s and realizes’s process. Three layers of system structure that the system adopts:JSP-JavaBean-SQL Serve
3、r 2000 develops, and with namelying bow is realized the show logic by JSPs page, and the vocational work logic complicated inside the package realization system of Java Bean is used in the centre, and SQL Servers 2000 data bases realizations data logics are used to the back end. The System puts for
4、ward the complete settlement scheme of online examination system of cross-domain communication, and realized the classified special principle of title: the fraction etc is had something made to order by proposition person oneself degree of difficulty examination questions type examination title. The
5、 system can accomplish having something made to order of examination paper, the voluntarily formation of examination paper, and can look at in advance to the examination paper, and revise. The examination paper issues when accomplishing by the control center. Supervises center control at candidate f
6、or an entrance examinations examination course by the examination, also can be to candidate for an entrance examination the examination state is prohibited or is permitted controls, the examination end is given a mark, and the system can be according to the answer circumstances of candidate for an e
7、ntrance examination to a fraction. The system adopts B / Ss model design, and can add up the functions such as analysis etc to the frequency that the examination questions were drawn. The system developed successfully under the terrace of Windows XP. 【Key words】Question Management Exam On-line
8、JSP SQL Server 2000 目 錄 摘 要 I ABSTRACT II 目 錄 III 前 言 1 第一章 系統(tǒng)概述 3 第一節(jié) 課題背景與意義 3 一、課題開發(fā)背景 3 二、課題開發(fā)意義 3 第二節(jié) 課題開發(fā)工具與環(huán)境 4 一、JAVA和JSP技術(shù)簡介 4 二、SQL Server 2000 服務(wù)器SQL Server概述 5 三、Tomcat 6.0服務(wù)器架構(gòu) 6 四、總體開發(fā) 7 第二章 系統(tǒng)分析 8 第一節(jié) 系統(tǒng)概述 8 一、系統(tǒng)分析原則與方針 8 二、系統(tǒng)需求 8 第二節(jié) 系統(tǒng)功能分析 9 一、 可行
9、性分析: 9 二、 具體功能分析: 9 第三節(jié) 本章小結(jié) 10 第三章 系統(tǒng)設(shè)計 11 第一節(jié) 數(shù)據(jù)庫設(shè)計 11 一、數(shù)據(jù)庫總體設(shè)計 11 二、數(shù)據(jù)庫概念設(shè)計 11 三、數(shù)據(jù)庫邏輯設(shè)計 13 第二節(jié) 系統(tǒng)總體設(shè)計 17 一、總體設(shè)計 17 二、系統(tǒng)邏輯處理 18 三、總體流程圖 19 第三節(jié) 功能設(shè)計 21 一、 系統(tǒng)登錄 21 二、 考生注冊 22 三、 在線考試模塊 22 四、 后臺管理模塊 24 第四節(jié) 本章小結(jié) 25 第四章 系統(tǒng)實現(xiàn)與調(diào)試 26 第一節(jié) 系統(tǒng)實現(xiàn)概論 26 一、 結(jié)構(gòu)化程序編碼原則 26 二、 系統(tǒng)主界面 26 三、
10、 系統(tǒng)功能菜單 27 第二節(jié) 系統(tǒng)功能實現(xiàn) 27 一、 文件結(jié)構(gòu)圖 27 二、 文件詳細(xì)結(jié)構(gòu)圖 28 三、 系統(tǒng)具體文件 28 第三節(jié) 關(guān)鍵技術(shù)實現(xiàn) 31 一、web.xml 31 二、 數(shù)據(jù)庫db_netExam連接部分 31 第四節(jié) 調(diào)試過程中的常見錯誤 32 一、JDK配置錯誤 32 二、SQL空指針異常 33 三、數(shù)據(jù)庫連接錯誤 33 第五節(jié) 本章小結(jié) 34 第五章 系統(tǒng)測試及結(jié)果分析 35 第一節(jié) 系統(tǒng)測試綜述 35 一、系統(tǒng)測試綜述 35 二、具體功能模塊測試 35 第二節(jié) 本章小結(jié) 39 第六章 結(jié)束語 40 致 謝 41 參考文獻 4
11、2 附 錄 43 一、英文原文: 43 二、英文翻譯: 49 41 前 言 近幾年來,隨著Internet的崛起,遠(yuǎn)程教育開始發(fā)展,普及網(wǎng)絡(luò)教育的呼聲日益高漲,其勢頭不亞于電子商務(wù)。聯(lián)合國教科文組織1998年在其一項調(diào)查報告中指出:無論是發(fā)達(dá)國家還是發(fā)展中國家,都不同程度存在教育滯后于現(xiàn)實需要的問題,特別是第三世界國家。而普及遠(yuǎn)程教育,尤其是網(wǎng)絡(luò)教育,不僅是解決這一問題的有效途徑,而且將成為革新傳統(tǒng)教育模式的重要動力。中國的網(wǎng)絡(luò)教育也隨Internet的發(fā)展而同步增長,同時,網(wǎng)絡(luò)教育也為中國的教育事業(yè)開辟了新的天地,其中很重要的一個環(huán)節(jié)就是在線考試系統(tǒng),同時它也是最難實
12、現(xiàn)的環(huán)節(jié)。在我國,雖然遠(yuǎn)程教育已經(jīng)蓬勃地發(fā)展起來,但是目前學(xué)校與社會上的各種考試大都采用傳統(tǒng)的考試方式,在此方式下,組織一次考試至少要經(jīng)過五個步驟,即人工出題、考生考試、人工閱卷、成績評估和試卷分析。顯然,隨著考試類型的不斷增加及考試要求的不斷提高,教師的工作量將會越來越大,并且其工作將是一件十分煩瑣和非常容易出錯的事情,可以說傳統(tǒng)的考試方式已經(jīng)不能適應(yīng)現(xiàn)代考試的需要。隨著計算機應(yīng)用的迅猛發(fā)展,網(wǎng)絡(luò)應(yīng)用不斷擴大,如遠(yuǎn)程教育和虛擬大學(xué)的出現(xiàn)等等,且這些應(yīng)用正逐步深入到千家萬戶。人們迫切要求利用這些技術(shù)來進行在線考試,以減輕教師的工作負(fù)擔(dān)及提高工作效率,與此同時也提高了考試的質(zhì)量,從而使考試更趨于
13、公證、客觀,更加激發(fā)學(xué)生的學(xué)習(xí)興趣。例如目前許多國際著名的計算機公司所舉辦的各種認(rèn)證考試絕大部分采用這種方式。伴隨著遠(yuǎn)程教育的蓬勃發(fā)展,作為教學(xué)當(dāng)中不可分割的一部分的在線考試系統(tǒng)也得到了當(dāng)今遠(yuǎn)程教育研究者的關(guān)注,考試是考察學(xué)生對所學(xué)習(xí)知識的接受和理解程度的重要手段,無紙化的考卷,考試的隨時性,隨地性,這些特點都是研究并開發(fā)網(wǎng)絡(luò)考試系統(tǒng)主要的原因,網(wǎng)絡(luò)考試系統(tǒng)遠(yuǎn)遠(yuǎn)超越了傳統(tǒng)考試固定時間,固定地點的考試模式的限制,將給學(xué)生和老師帶來極大的便利。隨著Internet的相關(guān)技術(shù)的發(fā)展,特別是Web技術(shù)的出現(xiàn),人們開始致力于研究和開發(fā)基于Internet考試系統(tǒng),這也大大推動了遠(yuǎn)程教育的發(fā)展。 術(shù)語列
14、表: JSP:(Java Server Pages),JSP是一種基于Java的技術(shù),用來產(chǎn)生跨平臺和跨Web服務(wù)器的動態(tài)頁面。 JDBC:(Java Database Connectivity),Java數(shù)據(jù)庫連接。它主要是一套讓你訪問數(shù)據(jù)庫的API,程序人員可以利用JDBC API來執(zhí)行SQL語句。 Servlet: Servlet可以稱之為“服務(wù)器小程序”,與Java application不同,它沒有main方法,而是用一些特定的方法用于啟動、執(zhí)行和退出。通過使用Servlet,可以與運行與客戶端的Applet進行交互,也可以直接與HTML頁進行交互。 JavaBeans: J
15、avaBeans是可復(fù)用的平臺中立的軟件組件,可以在軟件開發(fā)工具中被直觀地操作。應(yīng)用程序開發(fā)者可以通過支持JavaBeans的開發(fā)工具,直接使用現(xiàn)成的JavaBeans,也可以在開發(fā)工具容器中,對組件進行必要的修改、測試而不必編寫和編譯程序。在Java模型中,組件可以修改或與其他組件組合以生成新組件或完整的應(yīng)用程序。 HTML:(Hypertext Markup Language)超文本標(biāo)記語言,它是組織多媒體文檔的重要語言,它不僅用來編寫Web網(wǎng)頁,而且可以使用它來制作光盤上的多媒體節(jié)目。HTML可用來編排文檔、創(chuàng)建列表、建立鏈接等等。 XML:(extensible Markup La
16、nguage)可擴展標(biāo)記語言,它是一種具有數(shù)據(jù)描述功能(Meta-language)、高度結(jié)構(gòu)性及可驗證性的語言。 SQL:(Structured Query Language),結(jié)構(gòu)化查詢語言。SQL語言地任務(wù)就是與各種數(shù)據(jù)庫建立關(guān)系,SQL語言是關(guān)系型數(shù)據(jù)庫的標(biāo)準(zhǔn)語言,大多數(shù)關(guān)系型數(shù)據(jù)庫管理系統(tǒng)都支持SQL語言并采用了SQL的語言標(biāo)準(zhǔn)。 MySQL:MySQL是一個可用于各種流行操作系統(tǒng)平臺的關(guān)系數(shù)據(jù)庫系統(tǒng),它具有客戶機/服務(wù)器體系結(jié)構(gòu)的分布式數(shù)據(jù)庫管理系統(tǒng)。按照使用又可以分為DML(Data Manipulation Language),即數(shù)據(jù)操作語言和DDL(Data Defini
17、tion Language)。 第一章 系統(tǒng)概述 第一節(jié) 課題背景與意義 一、課題開發(fā)背景 傳統(tǒng)的考試從出題、組卷、印刷,到試卷分發(fā)、答題、收卷,再到判卷、公布成績,整個過程都需要人工參與,周期長,工作量大,容易出錯,還要有適當(dāng)?shù)谋C芄ぷ鳎沟谜麄€考試的成本較大。所以,實現(xiàn)無紙化、網(wǎng)絡(luò)化、自動化的計算機考試系統(tǒng),具有深遠(yuǎn)的現(xiàn)實意義和實用價值。 網(wǎng)絡(luò)考試系統(tǒng)是傳統(tǒng)考場的延伸,它可以利用網(wǎng)絡(luò)的無限廣闊空間,隨時隨地的對學(xué)生進行考試,加上數(shù)據(jù)庫技術(shù)的利用,大大簡化了傳統(tǒng)考試的過程。因此網(wǎng)絡(luò)考試系統(tǒng)是電子化教學(xué)不可缺少的一個重要環(huán)節(jié)。 網(wǎng)絡(luò)考試系統(tǒng)的實現(xiàn)技術(shù)有多種,可以采
18、用傳統(tǒng)的客戶機/服務(wù)器型的 MIS 型架構(gòu),Web 技術(shù)超越了傳統(tǒng)的"客戶機/服務(wù)器"兩層結(jié)構(gòu),采用了三層體系結(jié)構(gòu):用戶界面層/事務(wù)層/數(shù)據(jù)庫層,因此 Web 結(jié)構(gòu)有著更好的安全性,在用戶機上不需要安裝任何應(yīng)用程序,應(yīng)用程序可以安裝在事務(wù)層所在的計算機上,試題存放在數(shù)據(jù)庫服務(wù)器上,當(dāng)然,事務(wù)層和數(shù)據(jù)庫可以是同一臺機器(如果條件允許,還是應(yīng)該把這兩層分開在不同的計算機上),所以,本文所討論的考試系統(tǒng)采用Web技術(shù)實現(xiàn)。 二、課題開發(fā)意義 用Browser/Web模式來設(shè)計考試系統(tǒng)比較合適,服務(wù)器端我們采用SQL SERVER數(shù)據(jù)庫系統(tǒng)和JSP組件來構(gòu)成考試的應(yīng)用服務(wù)系統(tǒng);客戶端采用瀏覽器
19、來完成考試全過程,同時可進行遠(yuǎn)程系統(tǒng)維護和管理。利用網(wǎng)絡(luò)和數(shù)據(jù)庫技術(shù),結(jié)合目前硬件價格普遍下跌與寬帶網(wǎng)大力建設(shè)的有利優(yōu)勢,應(yīng)用JAVA Server Page 技術(shù),開發(fā)了基于B/S模式多用戶在線考試系統(tǒng)這一程序。它運用方便、操作簡單,效率很高(同時,它要求計算機配置也很高,尤其是服務(wù)器端).基于Web技術(shù)的網(wǎng)絡(luò)考試系統(tǒng)可以借助于遍布全球的因特網(wǎng)進行,因此考試既可以在本地進行,也可以在異地進行,大大拓展了考試的靈活性。試卷可以根據(jù)題庫中的內(nèi)容即時生成,可避免考試前的壓題;而且采用大量標(biāo)準(zhǔn)化試題,從而使用計算機判卷,大大提高閱卷效率;還可以直接把成績送到數(shù)據(jù)庫中,進行統(tǒng)計、排序等操作??忌ㄟ^姓
20、名、準(zhǔn)考證號碼和口令進行登錄,考試答案也存放在服務(wù)器中,這樣考試的公平性、答案的安全性可以得到有效的保證。因此,采用網(wǎng)絡(luò)考試方式將是以后考試發(fā)展的趨勢。 第二節(jié) 課題開發(fā)工具與環(huán)境 一、JAVA和JSP技術(shù)簡介 1、將內(nèi)容的生成和顯示進行分離 用JSP技術(shù),Web頁面開發(fā)人員可以使用HTML或者XML標(biāo)識來設(shè)計和格式化最終頁面,并使用JSP標(biāo)識或者小腳本來生成頁面上的動態(tài)內(nèi)容(內(nèi)容是根據(jù)請求變化的,例如請求賬戶信息或者特定的一瓶酒的價格等)。生成內(nèi)容的邏輯被封裝在標(biāo)識和JavaBeans組件中,并且捆綁在腳本中,所有的腳本在服務(wù)器端運行。由于核心邏輯被封裝在標(biāo)識和Java
21、Beans 中,所以 Web 管理人員和頁面設(shè)計者,能夠編輯和使用 JSP 頁面,而不影響內(nèi)容的生成。在服務(wù)器 端,JSP引擎解釋JSP標(biāo)識和腳本,生成所請求的內(nèi)容(例如,通過訪問JavaBeans 組件,使用JDBC技術(shù)訪問數(shù)據(jù)庫或者包含文件),并且將結(jié)果以HTML(或者XML)頁面的形式發(fā)送回瀏覽器。這既有助于作者保護自己的代碼,又能保證任何基于HTML的Web瀏覽器的完全可用性。 2、可重用組件 大多數(shù) JSP 頁面依賴于可重用的、跨平臺的組件(JavaBeans)來執(zhí)行應(yīng)用程序所要求的復(fù)雜的處理。開發(fā)人員能夠共享和交換執(zhí)行普通操作的組件,或者使得這些組件為更多的使用者和客戶團體所使
22、用?;诮M件的方法加速了總體開發(fā)過程,并且使得各種組織在他們現(xiàn)有的技能和優(yōu)化結(jié)果的開發(fā)努力中得到平衡。 3、采用標(biāo)識 Web頁面開發(fā)人員不會都是熟悉腳本語言的編程人員。JSP技術(shù)封裝了許多功能,這些功能是在易用的、與JSP相關(guān)的 XML 標(biāo)識中進行動態(tài)內(nèi)容生成所需要的。標(biāo)準(zhǔn)的 JSP 標(biāo)識能夠訪問和實例化JavaBeans 組件,設(shè)置或者檢索組件屬性,下載Applet,以及執(zhí)行用其他方法更難于編碼和耗時的功能。 4、適應(yīng)平臺 幾乎所有平臺都支持 Java,JSP+JavaBeans 幾乎可以在所有平臺下通行無阻。從一個平臺移植到另外一個平臺,JSP 和 JavaBeans 甚至不用重新
23、編譯,因為Java 字節(jié)碼都是標(biāo)準(zhǔn)的與平臺無關(guān)的。 5、數(shù)據(jù)庫連接 Java 中連接數(shù)據(jù)庫的技術(shù)是 JDBC,Java 程序通過 JDBC 驅(qū)動程序與數(shù)據(jù)庫相連,執(zhí)行查詢、提取數(shù)據(jù)等操作。Sun 公司還開發(fā)了 JDBC-ODBC bridge,利用此技術(shù) Java 程序可以訪問帶有 ODBC 驅(qū)動程序的數(shù)據(jù)庫,目前大多數(shù)數(shù)據(jù)庫系統(tǒng)都帶有 ODBC 驅(qū)動程序,所以Java 程序能訪問諸如 Oracle、Sybase、MS SQL Server 和 MS Access 等數(shù)據(jù)庫。 二、SQL Server 2000 服務(wù)器SQL Server概述 SQL Server 是美國Mic
24、rosoft公司開發(fā)的一個關(guān)系型數(shù)據(jù)庫管理系統(tǒng),是目前世界上最著名的關(guān)系數(shù)據(jù)庫管理系統(tǒng)之一。它在性能和可擴展方面確立了世界領(lǐng)先的地位,是一套完全的數(shù)據(jù)庫和數(shù)據(jù)分析解決方案,使用戶可以快速創(chuàng)建下一代的可擴展電子商務(wù)和數(shù)據(jù)倉庫解決方案。Microsoft SQL Server 2000 在數(shù)據(jù)庫服務(wù)器自動調(diào)整和自動管理技術(shù)方面在數(shù)據(jù)庫領(lǐng)域中處于領(lǐng)先地位,使客戶可以集中精力處理商業(yè)戰(zhàn)略上的問題,而不是去細(xì)微調(diào)整數(shù)據(jù)庫服務(wù)器的各項參數(shù)。SQL Server 的主要功能: ①數(shù)據(jù)庫管理功能 作為數(shù)據(jù)庫管理系統(tǒng),SQL Server 自然應(yīng)該具有數(shù)據(jù)庫管理功能。它的數(shù)據(jù)庫由包含數(shù)據(jù)的表集合和其他對象(
25、如視圖、索引、存儲過程和觸發(fā)器)組成,目的是為執(zhí)行與數(shù)據(jù)有關(guān)的活動提供支持。存儲在數(shù)據(jù)庫中的數(shù)據(jù)通常與特定的主題或過程相關(guān)。 ②數(shù)據(jù)倉庫功能 SQL Server 2000提供了一套全新的綜合分析服務(wù)系統(tǒng)。分析服務(wù)為商業(yè)活動提供了集成的OLAP服務(wù)和數(shù)據(jù)挖掘功能。OLAP可以通過多維存儲技術(shù)對大型、復(fù)雜數(shù)據(jù)集執(zhí)行快速、高級的分析工作。數(shù)據(jù)挖掘功能能夠揭示出隱藏在大量數(shù)據(jù)中的傾向及趨勢。SQL Server針對包括集成數(shù)據(jù)挖掘、OLAP服務(wù)、安全性服務(wù)及通過Internet對多維數(shù)據(jù)集進行訪問和鏈接分析提供新的數(shù)據(jù)倉庫功能。 ③電子商務(wù) SQL Server 不僅提供電子商務(wù)所需的可伸縮
26、性與可擴展性之外,還提供了豐富的數(shù)據(jù)庫編程能力,以確保系統(tǒng)的協(xié)同工作和靈活性。SQL Server2000 不僅支持集中化數(shù)據(jù)庫管理功能,而且還最大程度地實現(xiàn)了管理與優(yōu)化工作的自動化,從而,減輕了有關(guān)管理人員的負(fù)擔(dān)。 ④完備的 Web 功能 SQL Server2000允許通過HTTP協(xié)議,在 Web上進行高性能、基于標(biāo)準(zhǔn)的安全訪問?;赪eb的客戶端擁有訪問關(guān)系型數(shù)據(jù)存儲和訪問分析服務(wù)的能力。 ⑤分布式數(shù)據(jù)復(fù)制功能它可以將一個數(shù)據(jù)庫中的數(shù)據(jù)復(fù)制到通過局域網(wǎng)、廣域網(wǎng)或 Internet 網(wǎng)絡(luò)連接的不同地點服務(wù)器或同一服務(wù)器中的不同數(shù)據(jù)庫中,并能夠自動保持這些數(shù)據(jù)同步,使各個數(shù)據(jù)庫中具有相
27、同的數(shù)據(jù)。 三、Tomcat 6.0服務(wù)器架構(gòu) Tomcat 6.0由Apache 組織開發(fā)的一種常用 Web 服務(wù)器,提供 Web 服務(wù)。一種 JSP 引擎,本身具有 Web 功能,可以作為獨立的 Web 服務(wù)器使用。但是,在作為 Web 服務(wù)器方面,Tomcat 處理靜態(tài) HTML 頁面時不如 Apache 迅速,也沒有Apache 健壯,一般選用 Tomcat 與 Apache 結(jié)合的方式,讓后者對網(wǎng)站的靜態(tài)頁面的請求提供服務(wù),而 Tomcat 作為專用的 JSP 引擎,提供 JSP 解析,得以更好的性能。 1.JDK 的安裝與配置 (1)找到 path 變量后單擊[編輯]按
28、鈕;彈出[編輯系統(tǒng)變量]對話框。在[變 量值]文本框中輸入“c:\jdk\bin”,然后單擊[確定]按鈕。同時新建 CLASSPATH 變量; (2)在[系統(tǒng)變量]選項組中單擊[新建]按鈕,在[變量名]文本框中輸入“CLASSPATH”, 在 [變量值]文本框中輸入“ c:\jdk\lib\tools.jar ;c:\jdk\lib\dt.jar;”然后單擊[確定]按鈕。 (3)用同樣的方法把 c:\jdk 添加到 JAVA_HOME 環(huán)境變量中; 2.TOMCAT 的安裝與配置 在這里我們設(shè)默認(rèn)安裝目錄為 c:\Tomcat 安裝完畢,更改環(huán)境變量,用同樣 的方法把 c:\Tomc
29、at 添加到 TOMCAT_HOME 環(huán)境變量中。啟動 Tomcat,在瀏覽器 的[地址]下拉列表框中輸入“http://localhost:8080/”,如果看到的是在左上 方有一只可愛的小貓,則表示 Tomcat 安裝成功。 四、總體開發(fā) 1、JAVA 三層模式架構(gòu): 界面表示層:Web 層,JSP+JavaScript+HTML(XML); 業(yè)務(wù)邏輯層:JSP(JavaBeans); 數(shù)據(jù)存儲層:SQL SERVER 2000。 2、開發(fā)工具采用 Eclipse,Dream weaver 2004 網(wǎng)頁編輯工具 數(shù)據(jù)庫 SQL Server2000, 服務(wù)器:Ap
30、ache Tomcat 6.0。 Java 中連接數(shù)據(jù)庫的技術(shù)是 JDBC 3、系統(tǒng)總體架構(gòu) 網(wǎng)絡(luò)在線考試系統(tǒng)采用 B/S 結(jié)構(gòu)設(shè)計 用戶系統(tǒng) 考題考試管理系統(tǒng) Tomcat6.0以上服務(wù)器 SQL Server2000 以上版本 Windows XP ,2000, 98, Linux ,Unix 等版本運行 基于 JAVA 的強大網(wǎng)絡(luò)功能以及 JSP 的靈活性,易維護性 圖1.1 系統(tǒng)總體架構(gòu) 第二章 系統(tǒng)分析 第一節(jié) 系統(tǒng)概述 一、系統(tǒng)分析原則與方針 采用結(jié)構(gòu)化系統(tǒng)分析的方法,建立新系統(tǒng)的邏輯模型,此
31、模型盡量避免使用計算機術(shù)語,便于企業(yè)的計算機人員與系統(tǒng)開發(fā)人員的共同討論。本系統(tǒng)的結(jié)構(gòu)是層次化的暗盒模塊結(jié)構(gòu)。對高層模塊,將采用以事物為中心的設(shè)計策略,把一個大的復(fù)雜的系統(tǒng)逐步分解成小的相對簡單的暗盒模塊,對低層模塊,采用以變換為中心的設(shè)計策略。因此,為了提高模塊的內(nèi)聚性,降低模塊的耦合程度,數(shù)據(jù)庫的設(shè)計原則是把它作為模塊間的郵政信箱,從而為實現(xiàn)數(shù)據(jù)共享由提高了模塊的獨立性,使系統(tǒng)具有很高的可修改性。 二、系統(tǒng)需求 考生登陸系統(tǒng) 在線考試 提交顯示成績 部門和管理 命題人 相關(guān)部門 生成試卷 系統(tǒng)控制 網(wǎng)絡(luò)在線考試是在網(wǎng)絡(luò)上的模擬考試應(yīng)用程序,它維護著一個數(shù)據(jù)庫,存儲著
32、考生,題庫,管理員信息,主要包括命題人出題,部門管理,系統(tǒng)管理,學(xué)生在線考試,自動評分以及相關(guān)的系統(tǒng)維護功能。 題庫 圖2.1 系統(tǒng)功能流程圖 第二節(jié) 系統(tǒng)功能分析 一、 可行性分析: 1.技術(shù)可行性:本系統(tǒng)的配置(Tomcat 與 Microsoft SQL Server 2000)在這種中小規(guī)模的情況下能夠提供較快的數(shù)據(jù)訪問,技術(shù)上可行。 2.經(jīng)濟可行性:系統(tǒng)的配置,不需要昂貴的 EJB 服務(wù)器,除 Microsoft SQL Server 2000 外大部分軟件都是可以免費獲得,開發(fā)成本低。 3.操作可行性:訪問系統(tǒng)的主要
33、有兩種:學(xué)生,管理員。目前資源的利用情況和可操作性,只需少量的對數(shù)據(jù)庫中的表的直接操作就可以實現(xiàn)系統(tǒng)的完整、穩(wěn)定的運行,不會造成系統(tǒng)的巨大壓力。 二、 具體功能分析: 系統(tǒng)前臺 系統(tǒng)后臺 考生注冊 在線考試 退出系統(tǒng) 修改個人信息 成績查詢 考試規(guī)則 顯示考試成績 自動閱卷 開始考試 準(zhǔn)備考試 選擇考試 課程 管理員信息 管理 考生信息管理 考生成績查詢 退出后臺管理 考試題目管理 套題信息管理 課程信息管理 圖2.2 系統(tǒng)功能結(jié)構(gòu)圖 1.系統(tǒng)前臺:考生注冊、查詢成績、修改個人信息、退出系統(tǒng)。 2.系統(tǒng)后臺:管理員信
34、息管理、考生信息管理、考生成績查詢、課程信息管理、套題信息管理、考試題目管理、退出后臺管理。 系統(tǒng)后臺模塊大致分析: 1 用戶管理: (1)考生管理主要完成注冊,登錄系統(tǒng),查詢成績,進入考試等。 (2)管理員管理主要是完成系統(tǒng)管理員的添加,刪除,權(quán)限的修改,考試的信息的維護添加,試題的管理,學(xué)生信息的查詢等。 2 考試管理: 命題人可根據(jù)自己的權(quán)限對試題進行定制,可以對考試科目的標(biāo)題,題的類型(本系統(tǒng)試題類型分為:單選題,多選題,判斷題,填空題),題目數(shù)量,題目的問題以及選項個數(shù),題目的難易程度,分?jǐn)?shù)等進行控制,也可以根據(jù)自己的需要從現(xiàn)有題庫中隨機抽取需要的試題的類型,試題的數(shù)
35、量,難易程度,分?jǐn)?shù)等進行控制。對已經(jīng)定制的試卷進行預(yù)覽,并隨時修改。 第三節(jié) 本章小結(jié) 本系統(tǒng)使用 JSP 技術(shù)作為表現(xiàn)手段,服務(wù)器采用 Tomcat6.0 作為JSP引擎,系統(tǒng)業(yè)務(wù)邏輯由 Java Bean 組件完成,使用 JDBC-ODBC橋連接方式訪問數(shù)據(jù)庫。由于系統(tǒng)測試需要成熟的數(shù)據(jù)庫支持,因此系統(tǒng)采用 SQL server 2000 數(shù)據(jù)庫作為數(shù)據(jù)庫服務(wù)器。 第三章 系統(tǒng)設(shè)計 第一節(jié) 數(shù)據(jù)庫設(shè)計 一、數(shù)據(jù)庫總體設(shè)計 本系統(tǒng)采用關(guān)系型數(shù)據(jù)庫模式,因此數(shù)據(jù)庫由若干個二維表(即數(shù)據(jù)文件)構(gòu)成。本系統(tǒng)的數(shù)據(jù)文件全為數(shù)據(jù)數(shù)據(jù)。數(shù)據(jù)的保存方法有很多種,最長
36、用的方式是使用DBMS(數(shù)據(jù)庫管理系統(tǒng))。 市場上流行的 DBMS 主要有 Oracle、SYBASE、MS SQL Server、DB2、Informix 等,而 MS SQL Server 可作為中小型數(shù)據(jù)管理系統(tǒng)的首選。根據(jù)以上分析,本系統(tǒng)后臺數(shù)據(jù)庫決定采用 MS SQL Server 為后臺數(shù)據(jù)庫。 本系統(tǒng)的數(shù)據(jù)表主要由兩個部分組成:系統(tǒng)表和功能表。 系統(tǒng)表是該系統(tǒng)中存儲基本數(shù)據(jù)信息表,例如:考生信息表(tb_Student)、管理員信息表(tb_manager)。 功能表是系統(tǒng)為了完成一定的功能,要求把一定的數(shù)據(jù)信息存儲在數(shù)據(jù)庫中,這就需要專門新建表來存儲相應(yīng)信息。例如:、
37、課程信息表(tb_Lesson)、試題信息表(tb_Questions)、考生成績表(tb_StuResult)、套題表(tb_TaoTi)等。 二、數(shù)據(jù)庫概念設(shè)計 根據(jù)對系統(tǒng)所做的需求分析和總體設(shè)計,可以規(guī)劃出要使用的數(shù)據(jù)庫實體分別為考生信息實體、管理員信息實體、課程信息實體、套題實體、考試題目實體和考生成績實體。 1、考生信息實體: 考生信息實體包括編號、姓名、密碼、性別、注冊時間、提示問題、問題答案、專業(yè)和身份證屬性。 姓名 身份證號碼 編號 注冊時間 專業(yè) 問題答案 提示問題 性別 密碼 考生信息 圖3.1
38、考生信息實體圖 2、套題實體: 套題實體包括編號、名稱、所屬課程和添加時間等屬性。 編號 所屬課程 添加時間 套題名稱 套題 圖3.2 套題信息實體圖 3、考試題目實體: 考試題目實體包括編號、問題類型、所屬課程、所屬套題、選項A、選項B、選項C、選項D、添加時間、正確答案和備注等屬性。 編號 正確答案 備注 添加時間 選項D 選項C 選項B 選項A 所屬套題 所屬課程 問題類型 考試題目 圖3.3 考試題目實體圖 三、數(shù)據(jù)庫邏輯設(shè)計 根據(jù)概念設(shè)計,可以創(chuàng)建與實體對應(yīng)的數(shù)據(jù)表和關(guān)系。本系統(tǒng)
39、共包含6張數(shù)據(jù)表: 表3.1 數(shù)據(jù)庫設(shè)計所需的表 表名 注釋 tb_Lesson 課程表 tb_manager 管理員表 tb_Questions 試題表 tb_Student 考生表 tb_StuResult 考試成績表 tb_TaoTi 套題表 各數(shù)據(jù)表的結(jié)構(gòu): 1. 名稱:管理員信息表 標(biāo)識:tb_manager 數(shù)據(jù)來源:前臺頁面取得。 表3.2管理員信息表 字段名 數(shù)據(jù)類型及長度 說明 備注 ID Bigint(8) 準(zhǔn)考證號碼 主鍵 Name Varchar(30) 姓名 不允許為空 PWD Varc
40、har(30) 密碼 不允許為空 圖3.4 管理員信息表 2.名稱:考生信息表 標(biāo)識:tb_Student 數(shù)據(jù)來源:前臺頁面取得。 表3.3考生信息表 字段名 數(shù)據(jù)類型及長度 說明 備注 ID Varchar(16) 準(zhǔn)考證號 主關(guān)鍵字 Name Varchar(20) 姓名 不允許為空 Pwd Varchar(20) 密碼 不允許為空 Sex Varchar(2) 性別 不允許為空 Jointime Datetime(8) 注冊時間 不允許為空 Question Varchar(50) 密碼提示問題
41、不允許為空 Answer Varchar(50) 密碼回答答案 不允許為空 Profession Varchar(30) 專業(yè) 允許為空 cardNo Varchar(18) 身份證號碼 不允許為空 圖3.5 考生信息表 3.考生成績表 標(biāo)識:tb_StuResult 數(shù)據(jù)來源:前臺頁面取得。 表3.4考生成績表 字段名 數(shù)據(jù)類型及長度 說明 備注 ID Bigint(8) 管理員賬號 主關(guān)鍵字 Stuid Varchar(16) 準(zhǔn)考證號 不允許為空 Whichlesson Varchar(60) 所屬課程 不允許
42、為空 Ressingle Varchar(4) 單選題成績 不允許為空 Resmore Datetime(4) 多選題成績 不允許為空 Restotal Varchar(4) 總成績 允許為空 Jointime Varchar(8) 注冊時間 不允許為空 圖3.6 考生成績表 4.考試科目信息表 標(biāo)識:tb_Lesson 數(shù)據(jù)來源:前臺頁面取得。 表3.5考試科目信息表 字段名 數(shù)據(jù)類型及長度 說明 備注 ID Bigint(8) 管理員賬號 主鍵 Name Varchar(60) 科目名稱 不允許為空 Joi
43、ntime datetime(8) 加入時間 不允許為空 圖3.7 考試科目信息表 5.套題表 標(biāo)識:tb_TaoTi 數(shù)據(jù)來源:前臺頁面取得。 表3.6 套題表 字段名 數(shù)據(jù)類型及長度 說明 備注 ID Bigint(8) 套題標(biāo)識 主鍵 Name Varchar(50) 套題名稱 不允許為空 LessonID Bigint(8) 課程編號 不允許為空 Jointime Datetime(8) 加入時間 不允許為空 圖3.8 考試套題表 6.試題信息表 標(biāo)識:tb_Questions 數(shù)據(jù)來源:前臺頁面取
44、得。 表3.7試題信息表 字段名 數(shù)據(jù)類型及長度 說明 備注 ID Bigint(8) 管理員賬號 主關(guān)鍵字 Subject Varchar(50) 所屬課程 不允許為空 Type char(6) 題目類型 不允許為空 Jointime Datetime(8) 加入時間 不允許為空 LessonID Int(4) 課程編號 不允許為空 taoTiID Bigint(8) 套題編號 不允許為空 optionA Varchar(50) 選項A 不允許為空 OptionB Varchar(50) 選項B 不允許為空 Op
45、tionC Varchar(50) 選項C 不允許為空 OptionD Varchar(50) 選項D 不允許為空 Answer Varchar(10) 答案 不允許為空 Note Varchar(50) 備注 允許為空 圖3.9試題信息表 數(shù)據(jù)表之間的關(guān)系設(shè)計: 圖3.10 各數(shù)據(jù)表之間的關(guān)系 第二節(jié) 系統(tǒng)總體設(shè)計 一、總體設(shè)計 本系統(tǒng)設(shè)計遵循結(jié)構(gòu)化設(shè)計原則: 1. 模塊獨立性、適度性原則 模塊獨立的概念是模塊化、抽象、信息隱蔽和局部化概念的直接結(jié)果。模塊獨立性是通過指定具有單一功能并且和其它模塊沒有過多聯(lián)系的模塊來實現(xiàn)
46、的。模塊獨立性是由內(nèi)聚性和偶合性兩個定性指標(biāo)來度量的。內(nèi)聚性是度量一個模塊功能強度的一個相對指標(biāo)。偶合性是用來度量模塊之間的相互聯(lián)系的程度。模塊過大時,模塊的可理解性會迅速下降。另外對過大的模塊分解時,也不 應(yīng)降低模塊的獨立性。因為當(dāng)對一個大的模塊分解時,可能會增加模塊間的依賴。 2. 系統(tǒng)結(jié)構(gòu)深度、寬度、扇出、扇入適當(dāng)原則 深度表示從根模塊到最低層模塊的層數(shù);寬度表示控制的總分布;扇出數(shù)指由一模塊直接控制的其它模塊數(shù);扇入數(shù)指有多少模塊直接控制一個給定的模塊。好的系統(tǒng)結(jié)構(gòu)通常頂層扇出比較大,中間扇出比較少,底層模塊大扇入。 3. 模塊的作用范圍保持在該模塊的控制范圍內(nèi) 模塊的作用范圍
47、是指受該模塊內(nèi)一個判定影響的所有模塊的集合。模塊的控制范圍是指這個模塊本身以及所有直接或者間接從屬于它的模塊的集合。 4. 系統(tǒng)模塊的單入口,單出口原則這一準(zhǔn)則是要防止內(nèi)容耦合性。如果模塊都是從頂部入口,從底部出口的話,這樣系統(tǒng)更容易理解和維護。如可以避免病態(tài)連接(病態(tài)連接關(guān)系是指從中間進入或者訪問一個模塊)等。 5. 模塊結(jié)果可預(yù)測原則如果一個模塊可以當(dāng)作一個黑箱,即只要輸入的數(shù)據(jù)相同就產(chǎn)生同樣的輸出,這個模塊的功能就是可以預(yù)測的。 6. 數(shù)據(jù)一致性原則 二、系統(tǒng)邏輯處理 系統(tǒng)采用三層結(jié)構(gòu),在客戶端用戶通過瀏覽器完成數(shù)據(jù)下載與模擬操作,瀏覽器端的表現(xiàn)邏輯通過 JSP 網(wǎng)頁
48、完成。而系統(tǒng)內(nèi)部復(fù)雜的業(yè)務(wù)邏輯主要通過Java Bean 的組件(Component)實現(xiàn),Java Bean 組件在 WWW 服務(wù)器上運行,通過 JSP 返回到客戶瀏覽器。通過表現(xiàn)邏輯與業(yè)務(wù)邏輯的分離,使網(wǎng)頁內(nèi)容簡潔,系統(tǒng)的可維護性和可擴充性增強。在服務(wù)器端,系統(tǒng)使用 JDBC 中間件訪問數(shù)據(jù)庫,數(shù)據(jù)庫服務(wù)器定義了本系統(tǒng)所需要的事務(wù)邏輯和數(shù)據(jù)邏輯。 圖3.11 系統(tǒng)邏輯關(guān)系圖 本系統(tǒng)使用 JSP 技術(shù)作為表現(xiàn)手段,服務(wù)器采用 Tomcat 6.0 作為 JSP 引擎,系統(tǒng)業(yè)務(wù)邏輯由 Java Bean 組件完成,使用 JDBC-ODBC 橋連接方式訪問數(shù)據(jù)庫。由于系統(tǒng)測試需要成熟的數(shù)
49、據(jù)庫支持,因此系統(tǒng)采用 SQL SERVER 2000數(shù)據(jù)庫作為數(shù)據(jù)庫服務(wù)器。 三、總體流程圖 1 系統(tǒng)業(yè)務(wù)流程圖: 圖3.12 系統(tǒng)流程圖 2 庫輸出邏輯流程圖 圖3.13庫輸出邏輯流程圖 3 Java Bean 邏輯流程圖 圖3.14 Java Bean 邏輯流程圖 第三節(jié) 功能設(shè)計 題庫管理模塊包括:系統(tǒng)登錄、考生注冊、在線考試、后臺管理四個模塊。 一、 系統(tǒng)登錄 輸入: 管理員賬號或者學(xué)生的準(zhǔn)考證號和對應(yīng)的密碼。 處理: 在數(shù)據(jù)庫中查詢,查找該用戶名是否存在,如果存在則在數(shù)據(jù)庫中查找該用戶名對應(yīng)的密碼是否正確,再根據(jù)個人的權(quán)限進入相
50、應(yīng)的業(yè)務(wù)范圍和正常的流程,同時記錄人員的 session 這樣在沒退出系統(tǒng)之前可以在自己的權(quán)限范圍內(nèi)操作,否則可能因長時間沒有任何操作會被注銷,需要重新登錄系統(tǒng)如果沒有找到該用戶或密碼錯誤則需要重新登錄,如下圖所示: 輸出: 相應(yīng)權(quán)限的頁面。 圖3.15 系統(tǒng)登錄關(guān)系圖 二、 考生注冊 考生注冊單元根據(jù)個人的實際情況注冊主要是用來考試,對考生的自然信息沒有聯(lián)系,考生注冊時學(xué)號和準(zhǔn)考證號不能夠重復(fù),一個學(xué)號只能注冊一次,應(yīng)有相應(yīng)的檢測措施避免非法注冊。 1、設(shè)計添加注冊信息的頁面 圖3.16 考生注冊 2、保存考生的注冊信息 需要編寫一個insert方法。在該方法中
51、,首先從數(shù)據(jù)表tb_student中查詢輸入的身份證是否存在,如果存在,將標(biāo)志變量設(shè)置為2;否則,先生成準(zhǔn)考證號,再將輸入的信息保存到考生信息表中,并將生成的準(zhǔn)考證號賦給標(biāo)志變量,最后返回該標(biāo)志變量。 三、 在線考試模塊 1、在線考試模塊的概述 在線考試模塊的主要功能是允許考生在網(wǎng)站上針對指定的課程進行考試。在該模塊中,考生首先需要閱讀考試規(guī)則,在同意后,才能選擇考試課程,在選擇課程后,系統(tǒng)將隨機抽取 試題,然后進入考試頁面進行答題,當(dāng)提交試卷時系統(tǒng)將自動進行評分,并給出考試成績。系統(tǒng)流程如下: 結(jié)束 開始 同意規(guī)則 準(zhǔn)備考試 選擇考試課程 隨機取題 提交試卷 顯示考試成
52、績 否 是 是 否 圖3.17 在線考試模塊的系統(tǒng)流程圖 2、在線考試模塊的技術(shù)分析 ①編寫在線考試模塊的動態(tài)表格類 該模塊涉及的數(shù)據(jù)表是tb_Lesson、tb_Questions、tb_stuResult,通過這三個數(shù)據(jù)表可以創(chuàng)建出對應(yīng)的ActionForm類,由于這3個數(shù)據(jù)表又分別對應(yīng)于3個不同的模塊,所以這3個數(shù)據(jù)表對應(yīng)的ActionForm類,可以在各自對應(yīng)的模塊中創(chuàng)建。 ②創(chuàng)建在線考試系統(tǒng)模塊的Action實現(xiàn)類 在線考試模塊的Action實現(xiàn)類Student繼承了Action類。在該類中,首先需要在該類的構(gòu)造方法中分別實例化模塊中的StartExamDAO
53、類。Action實現(xiàn)類的主要方法是execute(),該方法會被自動執(zhí)行,這個方法本身沒有具體的事務(wù),它是根據(jù)HttpServletRequest的getParameter()方法獲取的action參數(shù)值執(zhí)行相應(yīng)方法的。 輸入:考生的準(zhǔn)考證號。 處理:個人信息查詢,根據(jù)輸入的準(zhǔn)考證號,系統(tǒng)會將這個準(zhǔn)考證號的所有考生信息全部顯示出來。個人信息情況如例子。 輸出:個人的詳細(xì)信息。 3、隨機抽取試題并生成試卷 ①隨機抽取試題 由于開始考試頁面會調(diào)用action類中的startExam()方法。在該方法中,首先獲取準(zhǔn)考證號,然后調(diào)用LessonDAO類中的query()方法,并將獲取的準(zhǔn)考
54、證號作為query()方法的參數(shù),最后根據(jù)query()方法返回的List集合的大小,轉(zhuǎn)到相應(yīng)的頁面。 在實現(xiàn)隨機抽取試題并生成試卷時,需要調(diào)用StartExamDAO類中的randomGetQuestion()、stratSaveResult()、queryExam()3個方法。 ②生成試卷 在實現(xiàn)生成試卷前,首先需要在試題頁面中添加一個用于收集試題信息的表單,然后設(shè)置收集試題信息的表單元素。 4、自動閱卷并顯示考試成績 當(dāng)考生提交試卷時,會調(diào)用action類中的submitTestPaper()方法,然后調(diào)用LessonDAO類中的query()方法,并將獲取的準(zhǔn)考證號作為que
55、ry()方法的參數(shù),最后根據(jù)query()方法返回的List集合的大小,轉(zhuǎn)到相應(yīng)的頁面。 在自動閱卷并顯示考試成績時,需要調(diào)用StartExamDAO類中的getRightAnswer()和saveResult()兩個方法。 考生考試成績?yōu)椋嚎偡?單項選擇題分?jǐn)?shù)+多項選擇題分?jǐn)?shù) 四、 后臺管理模塊 1、后臺管理模塊概述 后臺管理模塊主要包括查看考試題目列表、添加考試題目信息、修改考試題目信息、刪除考試題目信息4個功能??蚣苋鐖D: 查看考試題目列表 添加考試題目信息 修改考試題目信息 刪除考試題目信息 考試題目列表 圖3.18
56、 后臺管理模塊框架圖 查看考試題目列表的實現(xiàn)過程 查看考試題目列表會調(diào)用方法questionsQuery()。在該方法中,首先調(diào)用QuestionsDAO類中的query()方法查詢?nèi)靠荚囶}目,再將返回的查詢結(jié)果保存到HttpservletRequest對象的參數(shù)questionsQuery中。 添加考試題目信息的實現(xiàn)過程 添加考試題目信息使用的QuestionsDAO類的方法是insert()。在insert()方法中,首先數(shù)據(jù)表tb_Questions中查詢輸入的考試題目是否存在,如果存在,將標(biāo)志變量設(shè)置為2,否則將輸入的信息保存到考試題目信息表中,并將返回值賦給標(biāo)志變量,最后返
57、回標(biāo)志變量。 刪除考試題目信息的實現(xiàn)過程 刪除考試題目信息使用的是QuestionsDAO類的方法delete()。在該方法中,首先需要將獲取的要刪除記錄的ID轉(zhuǎn)換為以逗號分隔的字符串,然后再應(yīng)用SQL語句中的DELETE語句批量刪除記錄,最后返回執(zhí)行結(jié)果。 第四節(jié) 本章小結(jié) 本章主要是系統(tǒng)的設(shè)計,本論文在寫的過程中在以前的分析基礎(chǔ)上又加入一些已經(jīng)實現(xiàn)的例子,更利于對系統(tǒng)的了解和感性認(rèn)識,主要介紹了一些主要的模塊的基本設(shè)計情況。 數(shù)據(jù)庫的設(shè)計是 MIS(管理信息系統(tǒng))系統(tǒng)的核心部分,設(shè)計數(shù)據(jù)庫,首先要進行需求分析,然后進行數(shù)據(jù)庫的概念結(jié)構(gòu)設(shè)計、邏輯結(jié)構(gòu)設(shè)計、數(shù)據(jù)庫結(jié)構(gòu)實
58、現(xiàn)等步驟。本章對數(shù)據(jù)庫進行了詳細(xì)的設(shè)計,并列出了數(shù)據(jù)庫中使用的表結(jié)構(gòu),本系統(tǒng)選擇使用 MS SQL Server 作后臺數(shù)據(jù)庫。 第四章 系統(tǒng)實現(xiàn)與調(diào)試 第一節(jié) 系統(tǒng)實現(xiàn)概論 一、 結(jié)構(gòu)化程序編碼原則 1、系統(tǒng)實現(xiàn)遵循結(jié)構(gòu)化程序設(shè)計的思想,為了確保每個模塊的邏輯清晰,應(yīng)該盡量使各個模塊使用單入口,單出口和順序、選擇和循環(huán)三種基本控制結(jié)構(gòu)。另外為了增強系統(tǒng)的編碼效率,也采用擴展的結(jié)構(gòu)程序設(shè)計,即除了使用三種 基本的控制結(jié)構(gòu)以外,還使用多分支的選擇結(jié)構(gòu)和下部判斷循環(huán)條件的循環(huán)結(jié)構(gòu)。 2、良好的程序編寫風(fēng)格為了提高程序的可讀性和易維護性,關(guān)鍵是使程序結(jié)構(gòu)簡單清晰,因此在程序編寫過程
59、中應(yīng)保持良好的程序設(shè)計風(fēng)格。主要在以下方面體現(xiàn):采用序言性和描述性兩種注釋對程序進行解釋;變量說明盡量使其具有實際意義;程序語句構(gòu)造應(yīng)該簡單直接,應(yīng)直接反映意圖,不必過于巧妙和深奧。 二、 系統(tǒng)主界面 圖4.1 系統(tǒng)首頁 三、 系統(tǒng)功能菜單 在本系統(tǒng)中,將所有能夠共用的信息單獨做出來,然后包含到各個頁面中,其中包括左部導(dǎo)航條left.jsp,下部版權(quán)信息頁面copyright.jsp,功能部分,包含提示信息,主要有錯誤提示信息頁面error.jsp,沒有考試科目信息、noenLesson.jsp、成功處理頁面(個別成功提示信息頁面為方便單獨制作)。 圖4.2 后臺功能菜單
60、圖 第二節(jié) 系統(tǒng)功能實現(xiàn) 一、 文件結(jié)構(gòu)圖 文件結(jié)構(gòu)的良好設(shè)計,對自己的開發(fā)過程有很大的好處,在設(shè)計的最初,應(yīng)該想到自己要用的文件資源,一般來說:Tomcat 中 webapps是默認(rèn)存放應(yīng)用程序的地方,把編寫好的源代碼目錄放到該文件夾下,里面的 WEB-INF 主要存放一些需要的包(lib文件夾)和自己用到的 classes 文件,Images 是圖片文件存放位置, 這樣在自己改進系統(tǒng)或書寫文檔以及書寫使用說明時都可以簡明扼要的寫出自己的程序結(jié)構(gòu)。 二、 文件詳細(xì)結(jié)構(gòu)圖 圖4.3 文檔結(jié)構(gòu)關(guān)系圖 三、 系統(tǒng)具體文件 1、根目錄 Database用于保存數(shù)據(jù)
61、庫文件;Images用于保存系統(tǒng)中應(yīng)用的圖片文件;JS用于保存系統(tǒng)中應(yīng)用的JavaScript文件。
圖4.4 系統(tǒng)根目錄文件列表
2、Manager
manager用于保存系統(tǒng)中后臺管理涉及到的JSP文件。
圖4.5 Manager文件列表
3、Src
Src用于保存系統(tǒng)中應(yīng)用的類的源文件。
圖4.6 Src文件列表
4、WEB-INF
WEB-INF用于保存系統(tǒng)中編譯后的類文件和相應(yīng)的驅(qū)動包。
圖4.7 WEB-INF文件列表
第三節(jié) 關(guān)鍵技術(shù)實現(xiàn)
一、web.xml
-
62、g
63、rtup>0
- 64、1433;DatabaseName=db_netExam";
private static String dbUser = "sa";
private static String dbPwd = "";
public ConnDB() { //定義構(gòu)造方法
try { //捕捉異常
//將Properties文件讀取到InputStream對象中
InputStream in = getClass().getResourceAsStream(propFileName);
prop.load(in); // 通過輸入流對象加載Properties文件 65、
dbClassName = prop.getProperty("DB_CLASS_NAME"); // 獲取數(shù)據(jù)庫驅(qū)動
dbUrl = prop.getProperty("DB_URL", dbUrl); //獲取URL
dbUser = prop.getProperty("DB_USER", dbUser); //獲取登錄用戶
dbPwd = prop.getProperty("DB_PWD", dbPwd); //獲取密碼
第四節(jié) 調(diào)試過程中的常見錯誤
一、JDK配置錯誤
圖4.8 JDK配置錯誤
解決方法:
JAVA_HOM 66、E: C:\Program Files\Java\jdk1.6.0_02
CLASSPATH: .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
Path: %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
二、SQL空指針異常
圖4.9 空指針異常
解決方法:
由于該系統(tǒng)用ConnDB這個工具類連接數(shù)據(jù)庫,但是執(zhí)行到第58行SQL為null,所以才會拋出異常。斷點調(diào)試。在ConnDB類中58行設(shè)置一個斷點,發(fā)現(xiàn)調(diào)用ManagerDao類時有值未初始化。
三、數(shù)據(jù)庫連接錯誤
圖4.10 數(shù)據(jù)庫連接錯誤
解決方法:
選擇的順序和數(shù)據(jù)庫順序不一致,獲得結(jié)果集中的次序不對,避免的方法是 SQL 語句時就按數(shù)據(jù)庫中的順序?qū)懀≈禃r亦按照順序嚴(yán)格取值。
第五節(jié) 本章小結(jié)
本章主要介紹一些設(shè)計中技巧的實現(xiàn),對于一部分實現(xiàn)已經(jīng)在第三章中做出了介紹,以及系統(tǒng)實現(xiàn)后文件的結(jié)構(gòu)和布局,系統(tǒng)中關(guān)鍵技術(shù)的實現(xiàn)代碼和開發(fā)本系統(tǒng)中出現(xiàn)的一些問題調(diào)試,通過調(diào)試掌握
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 6.煤礦安全生產(chǎn)科普知識競賽題含答案
- 2.煤礦爆破工技能鑒定試題含答案
- 3.爆破工培訓(xùn)考試試題含答案
- 2.煤礦安全監(jiān)察人員模擬考試題庫試卷含答案
- 3.金屬非金屬礦山安全管理人員(地下礦山)安全生產(chǎn)模擬考試題庫試卷含答案
- 4.煤礦特種作業(yè)人員井下電鉗工模擬考試題庫試卷含答案
- 1 煤礦安全生產(chǎn)及管理知識測試題庫及答案
- 2 各種煤礦安全考試試題含答案
- 1 煤礦安全檢查考試題
- 1 井下放炮員練習(xí)題含答案
- 2煤礦安全監(jiān)測工種技術(shù)比武題庫含解析
- 1 礦山應(yīng)急救援安全知識競賽試題
- 1 礦井泵工考試練習(xí)題含答案
- 2煤礦爆破工考試復(fù)習(xí)題含答案
- 1 各種煤礦安全考試試題含答案