C語言考試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)(計(jì)算機(jī)科學(xué)與技術(shù)專業(yè))_第1頁
C語言考試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)(計(jì)算機(jī)科學(xué)與技術(shù)專業(yè))_第2頁
C語言考試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)(計(jì)算機(jī)科學(xué)與技術(shù)專業(yè))_第3頁
C語言考試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)(計(jì)算機(jī)科學(xué)與技術(shù)專業(yè))_第4頁
C語言考試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)(計(jì)算機(jī)科學(xué)與技術(shù)專業(yè))_第5頁
已閱讀5頁,還剩44頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

華北水利水電大學(xué)碩士學(xué)位論文緒論引言本次設(shè)計(jì)的C語言網(wǎng)上測(cè)試系統(tǒng),從傳統(tǒng)的同步互動(dòng)模式轉(zhuǎn)變?yōu)楫惒交?dòng)模式,網(wǎng)頁在后臺(tái)根據(jù)需要,前端部分進(jìn)行升級(jí),節(jié)約了帶寬,加快了網(wǎng)絡(luò)的反應(yīng)。建立該體系有兩個(gè)目的:一是讓同學(xué)們有機(jī)會(huì)通過C語言在線測(cè)試來提升他們的水平。第二,減輕了教師的工作負(fù)擔(dān),同時(shí),教師要對(duì)學(xué)生的知識(shí)進(jìn)行評(píng)價(jià),從而使課堂教學(xué)的質(zhì)量得到改善,從而達(dá)到雙贏的目的。課題內(nèi)容及意義近年來疫情嚴(yán)重,很多考試也伴隨著疫情而不得不暫停。在教育發(fā)展的今天,考試已成為我們的重要學(xué)習(xí)內(nèi)容,網(wǎng)上測(cè)試也逐漸受到人們的關(guān)注。C語言課程的網(wǎng)上測(cè)試是一種新興的教學(xué)手段,是一個(gè)值得關(guān)注的課題;與傳統(tǒng)的筆試相比,C語言計(jì)算機(jī)網(wǎng)絡(luò)測(cè)試系統(tǒng)有很多優(yōu)點(diǎn):可以節(jié)約圖書資源、節(jié)約人力、物力、加速考試進(jìn)程。這樣,電腦就可以在考試的過程中應(yīng)用,比如設(shè)定一系列的測(cè)試問題,以及對(duì)測(cè)試的結(jié)果進(jìn)行分析,從而提供有用的考試結(jié)果。隨著測(cè)試需求的增加,考試形式的改變,老師的工作量也隨之增加。在這種背景下,傳統(tǒng)的測(cè)驗(yàn)方法已經(jīng)無法適應(yīng)現(xiàn)代測(cè)驗(yàn)的需要,對(duì)考試方式進(jìn)行改革顯得尤為重要。本文組織結(jié)構(gòu)在開發(fā)之前,先參考了一下一些軟件工程的書籍,這次系統(tǒng)選擇使用的是MyEclipse的開發(fā)工具,使用的是SSH的框架技術(shù),MYSQL的數(shù)據(jù)庫。全文共分七章:第一章為緒論,主要有引言,課題的內(nèi)容及意義,以及本文的組織結(jié)構(gòu)等方面進(jìn)行了闡述。第二章為背景技術(shù),主要介紹了本文所使用的一些技術(shù)的優(yōu)缺點(diǎn)。第三章是對(duì)系統(tǒng)的需求進(jìn)行了詳細(xì)的分析,其中包含了可行性分析,功能分析,系統(tǒng)用例分析,系統(tǒng)業(yè)務(wù)等。第四章是C語言網(wǎng)上測(cè)試系統(tǒng)的整體設(shè)計(jì),這一章主要敘述了本系統(tǒng)的數(shù)據(jù)庫設(shè)計(jì),著重介紹了部分網(wǎng)頁的前臺(tái)和后臺(tái)的功能,并通過繪制結(jié)構(gòu)圖了解網(wǎng)站的主要功能。第五章是C語言網(wǎng)上測(cè)試系統(tǒng)的具體實(shí)施,本章重點(diǎn)介紹了網(wǎng)站的功能實(shí)現(xiàn),詳細(xì)說明了每個(gè)模塊的實(shí)現(xiàn)方式。第六章是測(cè)試,這一章主要采用了“黑盒”和其它的測(cè)試手段,對(duì)網(wǎng)站的性能進(jìn)行了測(cè)試,其中有沒有BUG,這是最關(guān)鍵的一章。第七章為結(jié)束語,本章主要是對(duì)本次畢業(yè)設(shè)計(jì)撰寫過程中的問題進(jìn)行分析,以及一些心得體會(huì)。

背景技術(shù)JSP技術(shù)本系統(tǒng)在JSP技術(shù)的基礎(chǔ)上進(jìn)行了開發(fā)。有些動(dòng)態(tài)頁面可以使用JSP進(jìn)行配置,使用起來非常方便。大部分用戶都能輕松地訪問該站點(diǎn),而且該站點(diǎn)具有多種表現(xiàn)和編程接口。設(shè)計(jì)還可以更加的豐富。當(dāng)然,最大的特點(diǎn)就是軟件能夠在很多人都能訪問的地方正常工作。JSP在Java,HTML,JS等方面共同進(jìn)行了開發(fā)和創(chuàng)建。以前也有人想出過許多辦法,概念發(fā)展也從邏輯程式碼中分離出網(wǎng)頁程式碼。這樣可以提高代碼的可用性,降低技術(shù)人員的工作負(fù)擔(dān),讓他們能夠更方便地使用軟件開發(fā)。在JSP站點(diǎn)的開發(fā)過程中,服務(wù)器必須先提供對(duì)應(yīng)的請(qǐng)求。在接收到某些結(jié)果之后,使用者會(huì)在網(wǎng)頁上看見伺服器的資料。用戶可以下載JSP網(wǎng)頁,但是Java軟件僅對(duì)用戶開放。JSP的開發(fā)以Java和HTML為基礎(chǔ),它要求采用各種技術(shù),當(dāng)用戶訪問該站點(diǎn)時(shí),會(huì)有一個(gè)對(duì)應(yīng)的網(wǎng)頁,通過java代碼對(duì)服務(wù)器的請(qǐng)求進(jìn)行響應(yīng),并通過java代碼將其上傳到站點(diǎn)上。JSP的誕生旨在迅速地創(chuàng)建動(dòng)態(tài)網(wǎng)頁,讓用戶無需再進(jìn)行復(fù)雜的操作,無需指定用戶即可完成;允許開發(fā)具有多種服務(wù)和網(wǎng)頁編排的軟件。其主要目標(biāo)是讓該軟件可以在服務(wù)器和瀏覽器上正常工作,并允許多個(gè)用戶訪問和使用。JSP技術(shù)主要采用Java、HTML等語言進(jìn)行開發(fā)。它包括了一種確定的構(gòu)造框架和其他不同的方法。他們的設(shè)計(jì)把邏輯運(yùn)算碼從網(wǎng)頁程式碼中分離出來,讓程式碼能夠重復(fù)地利用,是一種邏輯清楚的開發(fā)流程,降低了工作負(fù)擔(dān),簡化了開發(fā)。當(dāng)客戶機(jī)存取網(wǎng)站伺服器時(shí),程式會(huì)先傳送至JSP,完成程式后,會(huì)在網(wǎng)頁上向使用者呈現(xiàn)作業(yè)的成果。該軟件的Java代碼主要是用來進(jìn)行數(shù)據(jù)處理和準(zhǔn)確地顯示數(shù)據(jù)庫的數(shù)據(jù),從而實(shí)現(xiàn)了簡單的網(wǎng)絡(luò)編程。JSP站點(diǎn)的開發(fā)和Java的目的是要滿足用戶對(duì)代碼匹配的要求,在得到操作的結(jié)果之后,會(huì)把結(jié)果反饋給用戶。JSP站點(diǎn)的開發(fā)涉及到很多技術(shù),其中有HTML技術(shù)和Java技術(shù),用戶在訪問站點(diǎn)時(shí),會(huì)把一個(gè)請(qǐng)求發(fā)送到服務(wù)器,然后對(duì)該請(qǐng)求進(jìn)行處理,得到結(jié)果,再把結(jié)果反饋給用戶,并在客戶端站點(diǎn)上發(fā)布。Servlet技術(shù)是JSP開發(fā)中的一種主要JSP技術(shù),它把網(wǎng)頁和邏輯層分離開來,而JSP網(wǎng)站的設(shè)計(jì),則可以利用Servlet實(shí)現(xiàn)JSP的功能,從而簡化JSP。Java語言Java是一種可以用于多種平臺(tái)的編程語言。Java開發(fā)的軟件不能在瀏覽器里直接運(yùn)行,它需要向服務(wù)器請(qǐng)求數(shù)據(jù),然后進(jìn)行編譯,最終在用戶端的瀏覽器中出現(xiàn)。當(dāng)使用者存取網(wǎng)站的時(shí)候,程式會(huì)先執(zhí)行Java程式,然后再將程式碼送回使用者檢視。Java代碼的開發(fā)使數(shù)據(jù)庫工作更加簡單,能夠更加精確地在站點(diǎn)上展示數(shù)據(jù)庫的信息,從而實(shí)現(xiàn)站點(diǎn)的開發(fā)。JavaScript是一種基于Web的腳本語言,它擁有如下的特性:利用JavaScript以及其它易于學(xué)習(xí)的腳本語言將HTML代碼結(jié)合起來,從而產(chǎn)生一種動(dòng)態(tài)的效果,從而引起用戶的關(guān)注和注意[4]。JAVA具有很強(qiáng)的語言能力,C++不太安全,但C和C++是被大眾認(rèn)可的,因此Java采用了C和C++格式,易于掌握。Java去掉了很多C和C++的功能,變得更加簡潔,并且增加了很多有用的功能。它具有以下特性:分布式:Java是以先進(jìn)的,是以TCP/IP為基礎(chǔ)的。Kuser功能可以通過HTTP和FTTP協(xié)議來傳送和接收數(shù)據(jù),這讓編程人員可以很容易地處理網(wǎng)絡(luò)文件,就像在處理一個(gè)本地的文件。安全:Java的安全是雙向的。一方面,為了阻止非法的可疑操作,Java語言會(huì)刪除C++游標(biāo)并將其公開。另一方面,當(dāng)你用Java創(chuàng)建一個(gè)模塊時(shí),您可以將您的語言能力與您能夠提供的某些特性相結(jié)合,這樣你就會(huì)更加的安全。說明:Java譯碼器(RuntimeSystem)能夠直接完成目的代碼指令。創(chuàng)建一個(gè)源程序所需的資源往往要少于編譯器,這樣程序員就能節(jié)省更多的時(shí)間。高性能:Java可以把譯碼器在執(zhí)行時(shí)直接轉(zhuǎn)化成機(jī)器指令,如果譯碼器的速度很慢。通過直接轉(zhuǎn)換,幾十萬個(gè)程序可以在一秒之內(nèi)被調(diào)用。在Java中,對(duì)象代碼的轉(zhuǎn)換速度并不比C/C++慢多少。多任務(wù):Java提供了一種多線程功能,可以在一次的程序中完成多項(xiàng)小型任務(wù)。動(dòng)態(tài):Java使用盡可能多的面向?qū)ο蟮募夹g(shù)。Java不會(huì)嘗試在運(yùn)行之前綁定所有模塊,更新的存儲(chǔ)庫功能不需要對(duì)源代碼進(jìn)行任何更改,就能正確執(zhí)行。MYSQL數(shù)據(jù)庫介紹本系統(tǒng)采用MYSQL數(shù)據(jù)庫,采用的MYSQL作為一個(gè)受大眾認(rèn)可并且免費(fèi)的數(shù)據(jù)庫,這樣我們?cè)谑褂玫臅r(shí)候會(huì)更加的便捷。這是一個(gè)能夠把數(shù)據(jù)信息儲(chǔ)存到多張表格中的關(guān)系數(shù)據(jù)庫,并不需要把所有的數(shù)據(jù)庫都集中起來。由于MYSQL具有體積小、靈活性高、又是自由的等特點(diǎn),因此在大多數(shù)中小網(wǎng)站的開發(fā)中都采用MYSQL作為數(shù)據(jù)庫。Mysql隸屬于Oracle公司,是一款多使用者、多執(zhí)行者資料庫。這個(gè)系統(tǒng)的體積很小并且快速、一次性處理上萬個(gè)數(shù)據(jù)、支持SQL語句等特點(diǎn),具有良好的移植性。這些特性讓很多系統(tǒng)都會(huì)使用MySQL數(shù)據(jù)庫。而且體積小,執(zhí)行速度快,一次處理數(shù)萬個(gè)數(shù)據(jù),支持SQL語句,具有良好的數(shù)據(jù)移植性能這些功能,讓很多的系統(tǒng)使用MySQL來減少了技術(shù)方面的開銷,受到大眾的認(rèn)可。MySQL具有多線程特性,能夠有效地使用系統(tǒng)的資源,提高運(yùn)行效率,盡管它的功能很少,但是在擴(kuò)充數(shù)據(jù)庫表的結(jié)構(gòu)空間和二次開發(fā)方面,它已經(jīng)足夠了。因此,在開發(fā)C語言網(wǎng)絡(luò)測(cè)試系統(tǒng)時(shí),我慎重地選擇了MySQL作為后臺(tái)支持系統(tǒng)。MySql數(shù)據(jù)庫的特性:(1)對(duì)C、C++進(jìn)行測(cè)試,保證編譯程序的可移植性和靈活性。(2)多種操作系統(tǒng)的支持。(3)將API提供給各種編程語言。(4)對(duì)多線程的支持利用CPU資源。(5)對(duì)SQL查詢進(jìn)行了優(yōu)化,使檢索效率得到了顯著的提高。(6)您可以在任何獨(dú)立的程式設(shè)計(jì)環(huán)境中使用,以供網(wǎng)絡(luò)上的客戶機(jī)以及服務(wù)器使用。有中文圖書館、BIG5、日語、多國語言、多國語言。(7)建立TCP/IP、ODBC、JDBC等數(shù)據(jù)庫,并可與其他資料庫進(jìn)行互聯(lián)。(8)管理工具,用于對(duì)數(shù)據(jù)庫的運(yùn)行進(jìn)行管理、控制和調(diào)整。(9)幾千萬條記錄可以被記錄在一個(gè)大的數(shù)據(jù)庫中。另外,MySQL數(shù)據(jù)庫還具有很多其他的特性:比如,MySQL能夠支持很多大的數(shù)據(jù)庫,這樣就可以更好地處理和對(duì)相關(guān)的系統(tǒng)的支持。在開發(fā)C語言考試系統(tǒng)時(shí)選擇Mysql能夠省去很多麻煩。SSH框架SSH是一個(gè)整合了Struts+Spring+Hibernate的系統(tǒng),同時(shí)也是一個(gè)受歡迎的Java網(wǎng)絡(luò)應(yīng)用軟件開放源代碼框架。Struts是一種以J2EESun為基礎(chǔ)的MVC系統(tǒng),采用Servlet技術(shù)和JSP技術(shù)來完成該任務(wù)。STRUTS可以很好地適應(yīng)軟件的開發(fā)需要,使用起來非常方便、靈活、快速。Struts能夠?qū)⒎?wù)小程序,JSP,定制標(biāo)簽,以及內(nèi)容資源整合在一起。利用這種機(jī)制來開發(fā)MVC模型,無需進(jìn)行任何的開發(fā)和實(shí)現(xiàn),可以節(jié)約大量的時(shí)間。因此,Struts是一個(gè)很好的平臺(tái)。Spring是解決許多J2EE開發(fā)中的普遍問題的有力基礎(chǔ).Spring提供了一種統(tǒng)一的企業(yè)對(duì)象管理方法,通過界面而非課堂教學(xué)。Spring架構(gòu)是以JavaBean屬性為基礎(chǔ),用于控制轉(zhuǎn)換。Spring是一個(gè)綜合的抽象數(shù)據(jù)訪問機(jī)制,它包括一個(gè)簡化的JDBC系統(tǒng),可以大大的提高工作效率和減少潛在的錯(cuò)誤。采用基本的管理方法。Spring是一個(gè)AOP系統(tǒng),它在Java標(biāo)準(zhǔn)的基礎(chǔ)上,能夠在必要時(shí)為Pojos提供聲明性的管理和其它商業(yè)服務(wù),同時(shí)也能夠完成自己的工作。通過引入EJB的核心業(yè)務(wù),本系統(tǒng)功能強(qiáng)大,可以降低EJB的復(fù)雜性。Spring還提供了一個(gè)功能強(qiáng)大的MVCWeb框架,靈活地整合到IOC容器中的Web框架。這是一個(gè)完全自動(dòng)化的關(guān)系/物件解決方案,可以讓你在沒有復(fù)雜SQL表達(dá)式的情況下,保持一個(gè)包含類、映射文件和組態(tài)檔的相關(guān)資訊的資料庫。ORM技術(shù)是通過描述對(duì)象和數(shù)據(jù)庫之間的映射元數(shù)據(jù)來存儲(chǔ)對(duì)象。它在對(duì)象數(shù)據(jù)庫與Java關(guān)系之間設(shè)置了特別的綁定,并且可以直接存儲(chǔ)Java對(duì)象。ORM架構(gòu)與其它MVC架構(gòu)有很大的區(qū)別,它的作用域也和MVC有很大的區(qū)別。B/S結(jié)構(gòu)B/S的英文名稱是Browser/Server,也就是瀏覽器/服務(wù)器。在這個(gè)架構(gòu)下,用戶不必再去開發(fā)其他的應(yīng)用程序。不要通過網(wǎng)頁瀏覽器來訪問有關(guān)的站點(diǎn),并進(jìn)行相應(yīng)的處理。這是網(wǎng)絡(luò)形成后的網(wǎng)絡(luò)拓?fù)淠P汀T谶@種結(jié)構(gòu)化模式下客戶不再需要開發(fā)其他應(yīng)用軟件。而不是使用網(wǎng)絡(luò)瀏覽器訪問相關(guān)網(wǎng)站并執(zhí)行相關(guān)操作。B/S系統(tǒng)具有三個(gè)層次的架構(gòu)。用戶可以通過多種瀏覽器在不同的網(wǎng)絡(luò)上發(fā)送不同的請(qǐng)求,大大降低了客戶端的工作效率。客戶機(jī)只需要安裝和配置少量的客戶端程序。伺服器主要負(fù)責(zé)資料庫存取及應(yīng)用程式的功能。第一個(gè)客戶機(jī)是整個(gè)系統(tǒng)的界面,并且已被擴(kuò)充為標(biāo)準(zhǔn)的瀏覽器軟件,例如網(wǎng)頁導(dǎo)航,微軟網(wǎng)絡(luò)資源管理器。網(wǎng)頁將HTML轉(zhuǎn)換為圖像,并為用戶提供了各種互動(dòng)的功能,用戶可以在網(wǎng)站上完成表格,并在后臺(tái)完成。此模塊包括用于處理此請(qǐng)求的二級(jí)Web服務(wù)器。備份Web服務(wù)器執(zhí)行對(duì)應(yīng)的處理程序以回應(yīng)這個(gè)要求。產(chǎn)生動(dòng)態(tài)HTML碼,內(nèi)嵌處理的結(jié)果,并將其傳回至用戶端。在客戶端請(qǐng)求訪問數(shù)據(jù)的時(shí)候,還需要聯(lián)系數(shù)據(jù)庫的服務(wù)器進(jìn)行處理。該系統(tǒng)采用C/S模式,對(duì)來自不同網(wǎng)絡(luò)服務(wù)器的SQ請(qǐng)求進(jìn)行協(xié)調(diào)。B/S模式的目的是為了讓顧客的經(jīng)驗(yàn)更加簡單。B/S服務(wù)比C/S更有彈性。當(dāng)情況改變時(shí),請(qǐng)不要對(duì)所有已存在的客戶機(jī)應(yīng)用進(jìn)行更新。簡單地在Web服務(wù)器上查看ServiceManager。這樣既能增加企業(yè)的生產(chǎn)力,又能節(jié)約大量的人力資源。在企業(yè)有成千上萬的顧客時(shí),這種服務(wù)就顯得特別重要了。同時(shí),用戶體驗(yàn)也得到了簡化。用戶必須經(jīng)過專業(yè)的訓(xùn)練,而B/S模式下的Client是一款簡單、便捷的瀏覽器。政策制定者和企業(yè)雇員不需要經(jīng)過訓(xùn)練就可以直接使用。B/S模型的這個(gè)特點(diǎn)減少了MIS系統(tǒng)的維護(hù)。B/S是一種很好的網(wǎng)上信息交流平臺(tái)。這就使得傳統(tǒng)的MIS系統(tǒng)效率得到了提升,C/S無法實(shí)現(xiàn),而網(wǎng)絡(luò)上的新的信息發(fā)布方法恰恰是現(xiàn)代公司所急需的,它使公司的很多文檔都可以用電子文檔取代,從而大大的提高了公司的管理效率。圖2.2B/S體系結(jié)構(gòu)圖如圖2.2所示;該瀏覽器向Web服務(wù)器發(fā)送一個(gè)請(qǐng)求。這個(gè)Web服務(wù)器可以通過這個(gè)數(shù)據(jù)庫逐漸地把這個(gè)過程的結(jié)果反饋給客戶機(jī)。該模式使客戶機(jī)協(xié)調(diào)一致,使其能夠?qū)W⒂谙到y(tǒng)的某些主要功能。本系統(tǒng)采用了全新的系統(tǒng)的架構(gòu)方式,其功能十分強(qiáng)大,能夠在復(fù)雜的用戶程序中使用,從而使系統(tǒng)的開發(fā)、維護(hù)和使用變得更加簡單,從而大大縮短開發(fā)周期,減少開發(fā)費(fèi)用。目前,該體系結(jié)構(gòu)已經(jīng)被越來越多的應(yīng)用所采納,并且已經(jīng)被引入到了這個(gè)體系結(jié)構(gòu)中。

系統(tǒng)分析和設(shè)計(jì)可行性分析1.技術(shù)可行性以B/S模型為基礎(chǔ),以開發(fā)客戶機(jī)應(yīng)用為核心。建立及維持后臺(tái)資料庫。功能與易用性是應(yīng)用程式發(fā)展的關(guān)鍵。建立和維護(hù)數(shù)據(jù)庫是建立和維護(hù)數(shù)據(jù)庫的基礎(chǔ)。數(shù)據(jù)的安全性及穩(wěn)定性。該系統(tǒng)以JSP、MySQL為主要的開發(fā)工具,易于學(xué)習(xí),易于使用。 我了解了JSP的基礎(chǔ),同時(shí),本文還對(duì)MySQL數(shù)據(jù)庫作了較深度的調(diào)查。總體而言,數(shù)據(jù)庫的設(shè)計(jì)與運(yùn)行是整個(gè)系統(tǒng)的關(guān)鍵。本人對(duì)軟件開發(fā),軟件測(cè)試,UML等有系統(tǒng)的學(xué)習(xí)。我也可以通過一些系統(tǒng)開發(fā)和確認(rèn)的技巧來學(xué)習(xí)。在學(xué)校里,我學(xué)習(xí)了JSP,J2EE,Java以及其他的技術(shù)支援項(xiàng)目。本系統(tǒng)采用B/S結(jié)構(gòu),在保證數(shù)據(jù)完整性的前提下,SQL數(shù)據(jù)庫能夠有效地處理海量數(shù)據(jù),并增加了很多先進(jìn)的管理功能。它具有很好的靈活性和易用性,是一個(gè)很好的數(shù)據(jù)庫設(shè)計(jì)平臺(tái)。2.經(jīng)濟(jì)可行性主要目的是評(píng)估項(xiàng)目的成本效益。系統(tǒng)發(fā)展基金具有經(jīng)濟(jì)意義.此外,推行這個(gè)制度,將可大大提高教育的效率和質(zhì)素。因此,這個(gè)制度在經(jīng)濟(jì)上是可行的。根據(jù)分析結(jié)果,系統(tǒng)開發(fā)是可行的。功能分析在調(diào)查分析的基礎(chǔ)上,C語言課程在線考試系統(tǒng)主要涵蓋教師和學(xué)生。我會(huì)集中分析用戶的功能。1.管理員和教師(1)用戶管理在管理系統(tǒng)中,系統(tǒng)管理員可以對(duì)用戶進(jìn)行請(qǐng)求、管理、授權(quán)、刪除、修改。(2)課程管理在考試管理系統(tǒng)中,首頁設(shè)置考試課程,管理人員可以添加和刪除課程信息。(3)題庫管理在管理考題信息時(shí),選取相應(yīng)科目進(jìn)行考庫信息管理,并在管理界面中選取考題進(jìn)行修改。主題類型包括主題選擇、空白填充、問題解決以及管理員添加和解決的簡單問題。(4)考卷管理考試管理是整個(gè)考試制度的核心。管理員可以創(chuàng)建新卷、手動(dòng)創(chuàng)建卷或自動(dòng)創(chuàng)建卷。手動(dòng)創(chuàng)建測(cè)試,管理員選擇主題和主題類型,然后手動(dòng)選擇主題創(chuàng)建考試;自動(dòng)測(cè)試使用隨機(jī)數(shù)據(jù)庫算法生成一組測(cè)試,設(shè)置測(cè)試題類型和每種類型的問題數(shù)量,并自動(dòng)生成一組試卷供學(xué)生考試。(5)閱卷管理考試管理是教師在學(xué)生完成考試時(shí)使用的一種功能性較強(qiáng)的功能,可以選擇考試試卷進(jìn)行考試驗(yàn)證。通常,選擇和判斷是系統(tǒng)自動(dòng)批閱的。簡答題是讓教師手動(dòng)檢查并給出標(biāo)記,最終自動(dòng)生成教師手動(dòng)設(shè)置的標(biāo)注和標(biāo)記,綜合給出學(xué)生成績。2.學(xué)生(1)參加考試進(jìn)入系統(tǒng)的考生,只能在考前進(jìn)行考試和成績查詢,在考試中,可以選擇所考的科目,通過之后,再將考卷交上去。(2)成績查詢學(xué)生通過考試后,教師在檢查考試后將成績系統(tǒng)地存儲(chǔ)在數(shù)據(jù)庫中,下次學(xué)生可以訪問系統(tǒng)了解他們的考試情況。據(jù)分析得到的模塊系統(tǒng)圖如下:圖3.1系統(tǒng)功能模塊圖系統(tǒng)用例分析管理員管理用例圖關(guān)鍵用例包括管理學(xué)生信息的用例、管理教師信息的用例、管理試題的用例、管理其他信息的用例以及管理用例的測(cè)試活動(dòng)。圖3.2管理員用例圖教師管理用例圖教師可以輸入并提供試題。他們的工作主要是負(fù)責(zé)系統(tǒng)的試題庫的管理,添加、刪除和編輯試題,提供分?jǐn)?shù)基準(zhǔn),并結(jié)合學(xué)生的日常表現(xiàn)提供最終評(píng)估。該系統(tǒng)的用例包括管理證據(jù)應(yīng)用信息的用例和評(píng)估證據(jù)文件的用例,如下圖所示。圖3.3教師管理用例圖學(xué)生管理用例圖考生可以按照考試系統(tǒng)上的時(shí)間和科目,輸入考生的編號(hào)和口令即可進(jìn)入考場(chǎng)。考試時(shí),考生可自行選擇或由系統(tǒng)推薦。因?yàn)槊總€(gè)人的學(xué)習(xí)水平和學(xué)習(xí)的深度都不一樣,所以系統(tǒng)會(huì)根據(jù)每天的平均分?jǐn)?shù),為他們提供一套適合自己的測(cè)試。不過,這并不是必需的。學(xué)生還可以按照他們目前的情況進(jìn)行學(xué)習(xí)或從敢于挑戰(zhàn)自己的角度自主選擇更合適的試題。他們還將在全面的最終評(píng)估中參考上述情況。當(dāng)作答完成時(shí),考生可以選擇將試卷在此時(shí)送達(dá),或者可以使系統(tǒng)將在此時(shí)自動(dòng)送達(dá)考卷,如果考試時(shí)間截止,將停止交卷。此外,課程的考試信息以及考試題目等由代課老師進(jìn)行設(shè)置,學(xué)生統(tǒng)一進(jìn)行在線考試非常的方便。包括管理個(gè)人信息,選擇科目的測(cè)試,并查詢分?jǐn)?shù)。如圖3.4所示。圖3.4學(xué)生管理用例圖系統(tǒng)業(yè)務(wù)分析B/S模式下的測(cè)試管理系統(tǒng)的運(yùn)行過程:用戶要對(duì)C語言的網(wǎng)上測(cè)試系統(tǒng)進(jìn)行檢驗(yàn),如未登錄,應(yīng)先轉(zhuǎn)入注冊(cè),然后由管理員進(jìn)行系統(tǒng)管理員的補(bǔ)充。管理員可以在此發(fā)布各種資訊、資料匯入、管理。圖3.5系統(tǒng)業(yè)務(wù)流圖數(shù)據(jù)流圖分析系統(tǒng)分為管理員、教師、學(xué)生三大用戶功能,系統(tǒng)完成了賬戶和密碼驗(yàn)證三大用戶功能登錄在線考試系統(tǒng),管理員主要負(fù)責(zé)課程、師生、課堂基本信息維護(hù)等,教師主要負(fù)責(zé)存儲(chǔ)任務(wù),測(cè)試、隨機(jī)創(chuàng)建、驗(yàn)證等。學(xué)生主要參加網(wǎng)上隨堂測(cè)驗(yàn)及考試,查詢分析結(jié)果則是根據(jù)考試系統(tǒng)所得。(1)如圖3.6所示圖:圖3.6試題信息數(shù)據(jù)流圖(2)系統(tǒng)總數(shù)據(jù)流圖如圖3.7所示:圖3.7系統(tǒng)總數(shù)據(jù)流圖(3)試卷信息是考試信息的重要組成部分,管理員可以修改、修改、刪除、增加等信息;如圖3.8所示:圖3.8試題信息數(shù)據(jù)流圖系統(tǒng)性能分析系統(tǒng)需要安全穩(wěn)定的運(yùn)行。用戶在輸入相關(guān)數(shù)據(jù)時(shí)必須能夠有效地提供正確、有效的資料,保證資料的準(zhǔn)確性與連貫性,保證資料與實(shí)際需求相符。整個(gè)系統(tǒng)要求即時(shí)回應(yīng)文字提示、優(yōu)美的頁面以及友好的人機(jī)交互。根據(jù)目前的技術(shù)條件,該運(yùn)行條件能夠滿足。C語言在線測(cè)試系統(tǒng)的開發(fā)過程中,為了確保系統(tǒng)的安全、高效,必須要有充足的資源。 安全問題:在當(dāng)今信息社會(huì),特別是對(duì)個(gè)人信息的保護(hù),更是刻不容緩。先進(jìn)性:根據(jù)目前的潮流,開發(fā)出符合使用者需要、迅速、精確地管理考生。擴(kuò)展性:隨著技術(shù)的發(fā)展,以SSH為基礎(chǔ)的網(wǎng)上測(cè)試系統(tǒng)需求也在不斷地改變,因此系統(tǒng)必須進(jìn)行升級(jí),并在最初階段進(jìn)行了較好的擴(kuò)充;便于以后的系統(tǒng)升級(jí)。在設(shè)計(jì)以SSH為基礎(chǔ)的在線考試系統(tǒng)時(shí),必須盡可能地考慮客戶的需要[10]。

數(shù)據(jù)庫設(shè)計(jì)數(shù)據(jù)庫的應(yīng)用這個(gè)數(shù)據(jù)庫的目的是存儲(chǔ)容器,存儲(chǔ)容器中的數(shù)據(jù),通過多種方式將數(shù)據(jù)分布到容器中,擴(kuò)展容器的應(yīng)用和發(fā)展這是一個(gè)很關(guān)鍵的技術(shù)。數(shù)據(jù)庫的構(gòu)造并沒有表面上看起來的那樣簡單,當(dāng)你可以使用相應(yīng)的軟件時(shí),數(shù)據(jù)庫就會(huì)變得很復(fù)雜。因此,要做更好的設(shè)計(jì),就必須循序漸進(jìn)地進(jìn)行,這就相當(dāng)于將數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行高效的組織,方便管理。E-R設(shè)計(jì)ER圖是一種描述數(shù)據(jù)類型間關(guān)系的數(shù)據(jù)描述方法。ER曲線能很好地反映出模型和模型之間的聯(lián)系。在數(shù)據(jù)庫開發(fā)過程中,主體關(guān)系模型體現(xiàn)了真實(shí)的實(shí)體之間的相互關(guān)系,是一種描述數(shù)據(jù)庫體系結(jié)構(gòu)的方法。他使用了當(dāng)前項(xiàng)目參與者的現(xiàn)有數(shù)據(jù)模式。E-R曲線能反映物體之間的關(guān)系。可見性,描述對(duì)象之間的關(guān)系。為實(shí)體設(shè)計(jì)屬性時(shí),通過定義主鍵和外鍵之間的聯(lián)系,以及定義實(shí)體的可擴(kuò)展性。它們可以在E-R圖上可視化。這種將數(shù)據(jù)分類成組的做法建立一個(gè)與關(guān)聯(lián)群不同的信任,讓使用者可以更方便地觀察和進(jìn)行實(shí)際的分析。E-R圖的三大要素是實(shí)體、屬性以及關(guān)系。通過對(duì)數(shù)據(jù)庫的需求進(jìn)行分析,可以生成符合要求的各類目標(biāo)和它們之間的關(guān)系,并在E-R圖中給出。圖4.1試題與試卷E-R圖圖4.2學(xué)生與試卷E-R圖數(shù)據(jù)庫表設(shè)計(jì)根據(jù)本C語言課程在線考試系統(tǒng)的設(shè)計(jì)要求,共設(shè)計(jì)了5個(gè)表格,用于存儲(chǔ)所有考生和考試信息:用戶信息表(姓名、性別、考試編號(hào)、身份證號(hào)碼以及學(xué)校)題目清單(題目編號(hào)、題目、標(biāo)注、考卷)考生試卷表(題號(hào)、考生編號(hào))科目清單(編號(hào)、科目名稱)分?jǐn)?shù)表(題目分?jǐn)?shù)、總分)然后把它作為表格的密鑰。確定各應(yīng)試者的測(cè)驗(yàn)時(shí)間及測(cè)驗(yàn)狀況。在作業(yè)中設(shè)定屬性(考生號(hào))作為主要的關(guān)鍵詞,以避免出現(xiàn)重復(fù)的主題。并在候選列表、正確答案表和候選答案列表中設(shè)置屬性(考生編號(hào))作為外鍵與存儲(chǔ)庫中的任務(wù)號(hào)匹配的單詞可以減少這些表中的屬性。確保整個(gè)數(shù)據(jù)庫結(jié)構(gòu)的完整。在考生答題卡和考生核對(duì)表中設(shè)置屬性(題號(hào)和考生號(hào))作為外部關(guān)鍵字,為考生分配問題。它還通過匹配唯一標(biāo)識(shí)每個(gè)候選人的測(cè)試項(xiàng)目和答案來促進(jìn)測(cè)試項(xiàng)目的未來分配和每個(gè)候選人的評(píng)估。對(duì)應(yīng)數(shù)據(jù)表的結(jié)構(gòu)和功能如下:對(duì)應(yīng)的數(shù)據(jù)表的設(shè)計(jì)及功能如下:表4.1試卷表表4.2題目表表4.3成績表表4.4科目表表4.5用戶表接口設(shè)計(jì)外部接口1.用戶界面界面應(yīng)該易于使用,以便用戶易于使用。因此,創(chuàng)建一個(gè)CSS樣式表。(1)對(duì)于用戶來說,它易于理解且易于使用。(2)用戶界面要適合于軟件的功能。(3)要有防錯(cuò)的處理。(4)一定要滿足用戶業(yè)務(wù)流程。(5)布局合理,色彩圖案合適,布局要清晰簡潔。2.軟件接口Tomcat6Web服務(wù)器可以使用JavaBean中間件來處理所有MySQL請(qǐng)求。MySQL數(shù)據(jù)庫,既要確保數(shù)據(jù)的存取,又要實(shí)現(xiàn)系統(tǒng)的自動(dòng)化。MySQL擁有一個(gè)多用戶、多線程的強(qiáng)大數(shù)據(jù)庫服務(wù)器。如今把Tomcat和MySQL結(jié)合起來使用,是非常受歡迎的。TomcatServer是基于SunJSDK的優(yōu)秀Servlet/JSP容器。該系統(tǒng)不但能夠?qū)崿F(xiàn)Servlet和JSP,還有一些商業(yè)JavaWeb容器的特性。Tomcat是一款開源軟件,能夠在大多數(shù)主要的HTTP服務(wù)器上工作,并且非常穩(wěn)定、有效。3.硬件接口在打字時(shí),可以用鼠標(biāo)和鍵盤來完成。使用輸出區(qū)、使用打印機(jī)連接、網(wǎng)絡(luò)設(shè)備部分和網(wǎng)絡(luò)傳送部分。內(nèi)部接口在內(nèi)部界面上,模塊間的資訊是透過超鏈接及表格的形式傳送。每一個(gè)模型模塊都可以在對(duì)應(yīng)的類中調(diào)用接口的方法和功能,同時(shí),數(shù)據(jù)庫的添加、刪除和修改都可以由引用類完成。

系統(tǒng)的實(shí)現(xiàn)登錄界面在登錄界面輸入登錄名稱和口令,點(diǎn)擊登錄,系統(tǒng)就會(huì)利用Ajax來比較登入的資料和資料庫的內(nèi)容,并將兩者進(jìn)行比較。驗(yàn)證通過后,請(qǐng)進(jìn)入登錄頁面,否則將會(huì)向登陸界面發(fā)送驗(yàn)證出錯(cuò)信息。JSP會(huì)將用戶所記錄的動(dòng)作傳送到XML文檔中的模組內(nèi)容。Struts會(huì)從行為的名字中尋找對(duì)應(yīng)的類別屬性。使用者動(dòng)作會(huì)在XML檔案中發(fā)現(xiàn)對(duì)應(yīng)的內(nèi)容與類別,并在springXML檔案中執(zhí)行對(duì)應(yīng)的Dao,并傳回結(jié)果。如圖5-1所示:開始結(jié)束密碼開始結(jié)束密碼登錄成功登錄功YN管理員在登錄頁面上輸入用戶的賬號(hào)和安全密碼,如果此用戶信息存在于數(shù)據(jù)庫表中,成功登錄,否則頁面刷新,提示錯(cuò)誤信息,重新輸入賬號(hào)和密碼。圖5.2登錄界面核心代碼:publicStringlogin(){ Stringusername=this.getUsername(); Stringpassword=this.getPassword(); if("admin".equalsIgnoreCase(username) &&"admin".equalsIgnoreCase(password) &&this.loginType.equals("0")){ ActionContext.getContext().getSession().put( Const.ACTION_PUT_SESSION_USRE_TYPE,"0"); ActionContext.getContext().getSession().put( Const.ACTION_PUT_SESSION_USRE_NAME,"admin"); returnConst.ACTION_ADMIN_LOGIN_SUCCESS; }elseif(!loginType.equals("0")){ booleanhasUser=this.sysAdminManager.isUserExit(username); if(hasUser){ booleanisPwdCorrect=this.sysAdminManager.checkPassword( username,password); if(isPwdCorrect){ SysAdminadm=this.sysAdminManager .getSysAdminById(username); adm.setLoginTime(DateUtil.getCurrentDateTime()); try{ this.sysAdminManager.updateUser(adm); }catch(Exceptione){ ActionContext.getContext().put( Const.ACTION_PUT_ERROR_MSG, e.getMessage()+"/更具體信息請(qǐng)查看日志"); LogFactory.getLogger().error( "用戶登錄發(fā)生錯(cuò)誤,可能是數(shù)據(jù)連接不存在,請(qǐng)檢查數(shù)據(jù)庫的鏈接"); returnConst.ACTION_RETURN_ERROR; } Stringtype=String.valueOf(adm.getUserType()); if(!type.equals(this.loginType)){ ActionContext.getContext().put(Const.ACTION_PUT_ERROR_MSG,"用戶賬戶和用戶類型不匹配"); returnConst.ACTION_RETURN_ERROR; } if("1".equals(type)||"2".equals(type)){ ActionContext.getContext().getSession().put( Const.ACTION_PUT_SESSION_USRE_TYPE,type);管理員管理界面管理界面有用戶、科目、題庫和試卷管理等功能。圖5.3管理員管理界面Administrator管理模組可以建立、變更、發(fā)現(xiàn)及移除管理員。在加入管理員后,系統(tǒng)會(huì)先設(shè)定管理員的資料,例如管理員密碼等,以保證管理員資料不是空的。如果您的資料庫中沒有新的Administrator,那么您就可以建立一個(gè)新的Administrator。編輯有關(guān)現(xiàn)有管理員的信息時(shí),還必須在不使用數(shù)據(jù)的情況下執(zhí)行驗(yàn)證。調(diào)用基本信息,然后調(diào)用數(shù)據(jù)庫。如果更改消息滿足條件,則可以將操作存儲(chǔ)在數(shù)據(jù)庫中。當(dāng)您與管理員聯(lián)系時(shí),將根Administrator號(hào)碼來完成要求。當(dāng)資料庫中有管理員的資料時(shí),會(huì)傳回系統(tǒng)。當(dāng)需要?jiǎng)h除對(duì)應(yīng)的管理員時(shí),系統(tǒng)管理員的狀態(tài)碼會(huì)變成“N”,這樣就會(huì)導(dǎo)致管理員不適應(yīng),等于是把管理員給刪除了。該設(shè)計(jì)的優(yōu)勢(shì)在于,當(dāng)使用者需要瀏覽系統(tǒng)中的管理員資料時(shí),可以得到更全面、更詳盡的資料。你可以看到所有關(guān)于管理員的資料,包括“N”的狀態(tài)碼。 因?yàn)橄到y(tǒng)管理員的權(quán)限不同,所以當(dāng)您登錄時(shí),界面會(huì)相應(yīng)地顯示,并能獲得管理員的相關(guān)信息。核心代碼:<managername="用戶管理"type="0"> <linkhref="./sys_jsp/admin/admin_add.jsp"name="添加用戶"type="0"/> <linkhref="./sys_jsp/admin/admin_query.jsp"name="管理用戶"type="0"/> </manager> <managername="科目管理"type="0"> <linkhref="./exam_jsp/subject/subject_add.jsp"name="添加科目"type="0"/> <linkhref="./exam_jsp/subject/subject_query.jsp"name="管理科目"type="0"/> </manager> <managername="題庫管理"type="0"> <linkhref="item/item_addBlank.do"name="添加填空題"type="0"/> <linkhref="item/item_addSingle.do"name="添加單選題"type="0"/> <linkhref="item/item_addMulti.do"name="添加多選題"type="0"/> <linkhref="item/item_addJudge.do"name="添加判斷題"type="0"/> <linkhref="item/item_addShort.do"name="添加簡答題"type="0"/> <linkhref="./exam_jsp/item/item_query.jsp"name="管理題庫"type="0"/> </manager> <managername="試卷管理"type="0"> <linkhref="exam/exam_add.do"name="生成試卷"type="0"/> <linkhref="./exam_jsp/exam/exam_query.jsp"name="查詢?cè)嚲?type="0"/> </manager> <managername="成績管理"type="0"> <linkhref="./exam_jsp/exam/exam_adminScoreQuery.jsp"name="成績查詢"type="0"/> </manager> <managername="個(gè)人信息管理"type="1"> <linkhref="admin/admin_changePwd.do"name="修改密碼"type="0"/> </manager> <managername="閱卷管理"type="1"> <linkhref="./exam_jsp/correct/correct_result.jsp"name="開始閱卷"type="0"/> <linkhref="./exam_jsp/correct/correct_query.jsp"name="閱卷查詢"type="0"/> </manager> <!--<managername="科目管理"type="1"> <linkhref="./exam_jsp/subject/subject_add.jsp"name="添加科目"type="0"/> <linkhref="subject/subject_query2.do"name="管理科目"type="0"/> </manager> <managername="題庫管理"type="1"> <linkhref="item/item_addBlank.do"name="添加填空題"type="0"/> <linkhref="item/item_addSingle.do"name="添加單選題"type="0"/> <linkhref="item/item_addMulti.do"name="添加多選題"type="0"/> <linkhref="item/item_addJudge.do"name="添加判斷題"type="0"/> <linkhref="./exam_jsp/item/item_query.jsp"name="管理題庫"type="0"/> </manager> <managername="試卷管理"type="1"> <linkhref="exam/exam_add.do"name="生成試卷"type="0"/> <linkhref="exam/exam_query2.do"name="查詢?cè)嚲?type="0"/> </manager> <managername="成績管理"type="1"> <linkhref="./exam_jsp/exam/exam_adminScoreQuery2.jsp"name="成績查詢"type="0"/> </manager>添加試題考題管理模塊能夠根據(jù)測(cè)試題的不同,添加考題清單、題型等。圖5.4試題管理模塊流程圖在對(duì)試題信息進(jìn)行管理的時(shí)候,在選擇一個(gè)對(duì)應(yīng)的課程進(jìn)行題庫信息進(jìn)行管理,在管理的界面下選擇試題進(jìn)行修改,此外,還可以選擇和修改各種題型。圖5.5試題信息修改核心代碼:publicStringaddSingle(){ HttpServletRequestrequest=ServletActionContext.getRequest(); if("commitAdd".equals(request.getParameter("ACT_TYPE"))){ if(this.itemManager.isExistItemId(this.itemId)){ ActionContext.getContext().put("errorMsg","試題編號(hào)已經(jīng)存在"); returnActionSupport.ERROR; } Itemitem=newItem(); ActionContext.getContext().put(Const.PAGE_FORWARD_LOCATION,CommonUtil.getRootPath(request)+"item/item_addSingle.do"); returnActionSupport.SUCCESS; }catch(Exceptione){ ActionContext.getContext().put(Const.ACTION_RETURN_ERROR,e.getMessage()); returnActionSupport.ERROR; } }else{ StringsubHtml=subjectManager.genSubjectHtml(); ActionContext.getContext().put("subHtml",subHtml); return"toAdd"; } } publicStringaddMulti(){ HttpServletRequestrequest=ServletActionContext.getRequest(); String[]results=request.getParameterValues("result"); Stringresult=StringUtils.StringArr2String(results); if("commitAdd".equals(request.getParameter("ACT_TYPE"))){ if(this.itemManager.isExistItemId(this.itemId)){ ActionContext.getContext().put("errorMsg","試題編號(hào)已經(jīng)存在"); returnActionSupport.ERROR; }生成試卷考卷管理是整個(gè)考試體系的中心環(huán)節(jié),管理員可以自行創(chuàng)建試題,手工制作試題,手工編寫試題,管理員選定題目,手工選取試題,制作試題;采用隨機(jī)數(shù)據(jù)庫算法,設(shè)定了試題種類、任務(wù)數(shù)量,并實(shí)現(xiàn)了對(duì)試題的自動(dòng)生成。其流程如圖5.6所示:具體的算法如下所示:=1\*GB3①用戶通過進(jìn)入考題管理界面;=2\*GB3②連接數(shù)據(jù)庫,把已經(jīng)建立好的信息展示給用戶;=3\*GB3③管理進(jìn)行增加、刪除、改寫等;=4\*GB3④結(jié)束。圖5.6試卷制定流程圖圖5.7試卷生成核心代碼:publicvoidrandom(){ HttpServletRequestrequest=ServletActionContext.getRequest(); HttpServletResponseresponse=ServletActionContext.getResponse(); //4簡答題 Itemitem1=newItem(); item1.setSubject(getDecodeString(this.subject)); item1.setItemType("4"); condition=newDefaultQueryCondition<Item>(item1); StringactionType=request.getParameter("generatorExam"); if(CommonUtil.isNotEmpty(actionType)){ request.setAttribute("isGenerator",actionType); } simpleItems=this.itemManager.getRand(condition); //0單選題 Itemitem2=newItem(); item2.setSubject(getDecodeString(this.subject)); item2.setItemType("0"); condition=newDefaultQueryCondition<Item>(item2); actionType=request.getParameter("generatorExam"); if(CommonUtil.isNotEmpty(actionType)){ request.setAttribute("isGenerator",actionType); } singleItems=this.itemManager.getRand(condition); //1多選題 Itemitem3=newItem(); item3.setSubject(getDecodeString(this.subject)); item3.setItemType("1"); condition=newDefaultQueryCondition<Item>(item3); actionType=request.getParameter("generatorExam"); if(CommonUtil.isNotEmpty(actionType)){ request.setAttribute("isGenerator",actionType); } multiItems=this.itemManager.getRand(condition); //2判斷題 Itemitem4=newItem(); item4.setSubject(getDecodeString(this.subject)); item4.setItemType("2"); condition=newDefaultQueryCondition<Item>(item4); actionType=request.getParameter("generatorExam"); if(CommonUtil.isNotEmpty(actionType)){ request.setAttribute("isGenerator",actionType); } judgeItems=this.itemManager.getRand(condition); //3填空題 Itemitem5=newItem(); item5.setSubject(getDecodeString(this.subject)); item5.setItemType("3"); condition=newDefaultQueryCondition<Item>(item5); actionType=request.getParameter("generatorExam"); if(CommonUtil.isNotEmpty(actionType)){ request.setAttribute("isGenerator",actionType); }添加用戶在管理用戶的過程中,管理員可以對(duì)用戶進(jìn)行管理、查詢、添加到用戶的權(quán)限,由管理員進(jìn)行刪除、修改。所述方法包含:該方法包括:①訪問對(duì)應(yīng)的用戶管理網(wǎng)頁;②連接數(shù)據(jù)庫,向管理員展示創(chuàng)建的記錄集合;=3\*GB3③對(duì)增加的作業(yè)進(jìn)行管理;=4\*GB3④結(jié)束;流程圖如圖5.8所示:圖5.8添加用戶流程圖圖5.9查詢學(xué)生考卷核心代碼:publicStringquery(){ SysAdminadm=newSysAdmin(); adm.setUsername(username); condition=newDefaultQueryCondition(adm); HttpServletRequestrequest=ServletActionContext.getRequest(); StringcurPage=request.getParameter("curPage"); StringpageSize=request.getParameter("pageSize"); if(CommonUtil.isNotEmpty(curPage)){ condition.setPageIndex(Integer.parseInt(curPage)); } if(CommonUtil.isNotEmpty(pageSize)){ condition.setPageSize(Integer.parseInt(pageSize)); } Page<SysAdmin>page=sysAdminManager.getRecords(condition); List<SysAdmin>user=page.getList(); ActionContext.getContext().put(Const.ACTION_PUT_RESULT,user); ActionContext.getContext().put(Const.ACTION_PUT_PAGE_INFO, page.getNavigation()); ActionContext.getContext().put("curPage",page.getCurrentPage()); ActionContext.getContext().put("username",username); returnConst.ACTION_RETURN_QUERY; }學(xué)生界面修改密碼在修改后的口令中,先輸入一個(gè)新的口令,緊接著重復(fù)再輸入一次,然后按一下“確定”鍵,新的口令就會(huì)被更新到資料庫的表格里。修改密碼的流程圖如圖5.10所示:圖5.10修改密碼流程圖圖5.11修改密碼核心代碼:publicStringchangePwd(){ HttpSessionsession=ServletActionContext.getRequest().getSession(); Stringusername=(String)session.getAttribute("userName"); SysAdminuser=this.sysAdminManager.getSysAdminById(username); ActionContext.getContext().put(Const.ACTION_PUT_RESULT,user); returnConst.ACTION_RETURN_QUERY; }考試學(xué)生登錄到系統(tǒng)中,只能選擇考試和進(jìn)行成績查詢,在進(jìn)行考試的時(shí)候,選擇具體的考試科目和試卷,之后進(jìn)行考試,試卷做完后,可以選擇提交考試的試卷。其流程如圖5.12所示:圖5.12學(xué)生考試流程圖具體算法如下:=1\*GB3①考生進(jìn)入考試頁面;=2\*GB3②完成考試信息;=3\*GB3③在數(shù)據(jù)庫連接后,向數(shù)據(jù)庫中寫入數(shù)據(jù);=4\*GB3④結(jié)束。圖5.13學(xué)生考卷測(cè)試圖核心代碼:publicStringgotoExamId(){ StringsubHtml=this.examManager.genSubjectIDHtml(this.subject); ActionContext.getContext().put("subHtml",subHtml); return"toAdd"; } publicStringgotoExamById(){ HttpServletRequestrequest=ServletActionContext.getRequest(); try{ //Examexam=this.examManager.getRandomExam(this.subject); Examexam=this.examManager.getRandom_Exam(this.examId); Stringusername=(String)request.getSession().getAttribute(Const.ACTION_PUT_SESSION_USRE_NAME); Scorescore=this.scoreManager.getViaExamId(this.examId,username); if(score!=null){ ActionContext.getContext().put(Const.ACTION_PUT_ERROR_MSG,"已參加了最近的課程編號(hào)測(cè)試"); returnConst.ACTION_RETURN_ERROR; } Stringhtml=this.examManager.genExamHtml(exam); exam.getId(); ActionContext.getContext().put(Const.ACTION_PUT_RESULT2,html); request.setAttribute("limitTimes",exam.getAllowTimes()*60); return"toAdd"; }catch(Exceptione){ ActionContext.getContext().put(Const.ACTION_PUT_ERROR_MSG,e.getMessage()); returnActionSupport.ERROR; } } publicStringgotoExam(){ HttpServletRequestrequest=ServletActionContext.getRequest(); if("commitAdd".equals(request.getParameter("ACT_TYPE"))){ try{ //Examexam=this.examManager.getRandomExam(this.subject); Examexam=this.examManager.getRandom_Exam(this.examId); Stringusername=(String)request.getSession().getAttribute(Const.ACTION_PUT_SESSION_USRE_NAME); Scorescore=this.scoreManager.getViaExamId(this.examId,username); if(score!=null){ ActionContext.getContext().put(Const.ACTION_PUT_ERROR_MSG,"已參加了最近的課程編號(hào)測(cè)試"); returnConst.ACTION_RETURN_ERROR; } Stringhtml=this.examManager.genExamHtml(exam); exam.getId(); ActionContext.getContext().put(Const.ACTION_PUT_RESULT2,html); request.setAttribute("limitTimes",exam.getAllowTimes()*60); return"toAdd"; }教師登錄界面考試管理是教師在學(xué)生完成考試時(shí)使用的一種實(shí)用性較強(qiáng)的功能,可以在考試中選擇學(xué)生的試題進(jìn)行確認(rèn)。一般情況下,選擇題目和判斷題目的打分都會(huì)由C語言課程在線考試系統(tǒng)自動(dòng)完成。而在簡答題中,老師會(huì)手工核對(duì)并標(biāo)注,最后,學(xué)生的得分是計(jì)算機(jī)計(jì)算出來的選擇題和判斷題得分總分和老師手工計(jì)算出來的簡答題得分的相加。其流程如圖5.14所示:圖5.14試卷評(píng)閱模塊流程圖具體算法如下:=1\*GB3①考卷批改頁面;=2\*GB3②查閱考卷;=3\*GB3③連接數(shù)據(jù)庫,在數(shù)據(jù)庫之中寫入數(shù)據(jù)信息;=4\*GB3④結(jié)束。圖5.15閱卷管理核心代碼:publicStringmdy(){ Scorescore=this.scoreManager.getById(id); ActionContext.getContext().put(Const.ACTION_PUT_RESULT2,score); returnConst.ACTION_RETURN_QUERY; } publicStringmdyCommit(){ Scorescore=this.scoreManager.getById(id); score.setScore(Integer.parseInt(this.score)); this.scoreManager.update(score); returnActionSupport.SUCCESS; } publicStringgaodd(){ return"gaodd"; } publicStringdidaogao(){ return"digao"; }

系統(tǒng)測(cè)試測(cè)試方案及測(cè)試用例網(wǎng)站測(cè)試,也就是在你完成了所有的特性之后,你要測(cè)試它們是否符合你的計(jì)劃,在測(cè)試期間有沒有發(fā)生什么問題,以及在發(fā)生了什么情況下該怎么辦?雖然僅僅是一個(gè)測(cè)試,但是測(cè)試的時(shí)間和開發(fā)的時(shí)間差不多,因此,不要小瞧了這個(gè)過程,這是一個(gè)很關(guān)鍵的步驟。為了保證一個(gè)程序的正常運(yùn)轉(zhuǎn),必須先對(duì)已經(jīng)完成的模塊進(jìn)行檢驗(yàn)。本文將技術(shù)測(cè)試網(wǎng)站所采用的技術(shù)與技術(shù)相結(jié)合,對(duì)所采用的測(cè)試方法進(jìn)行了描述,并對(duì)其進(jìn)行了測(cè)試,并對(duì)其進(jìn)行了分析,并對(duì)其進(jìn)行了分析。安全測(cè)試安全性檢查是確定系統(tǒng)將保護(hù)自己免受各種異常的檢查。測(cè)試人員模擬入侵發(fā)現(xiàn)了安全系統(tǒng)可能存在的漏洞,并對(duì)系統(tǒng)進(jìn)行改進(jìn)。這些措施包括:確認(rèn)使用者的登錄。登錄系統(tǒng)時(shí),需要輸入正確的用戶賬號(hào),用戶的登錄密碼以及要選擇正確的身份信息。如果遇到安全問題,不管級(jí)別如何,都無法登錄。檢索用戶權(quán)限。使用不同級(jí)別的賬戶進(jìn)行測(cè)試時(shí),無錯(cuò)誤。系統(tǒng)數(shù)據(jù)的安全性。對(duì)各種用戶密碼和用戶名信息進(jìn)行加密處理。測(cè)試方法測(cè)試是最終的一個(gè)關(guān)鍵因素。我們不但要找出某些bug和例外情況,而且要對(duì)某些專案問題進(jìn)行檢驗(yàn)。很多的不滿意和缺少設(shè)計(jì)來阻礙下一次的設(shè)計(jì)?我不會(huì)去找出問題出在哪里,認(rèn)真分析問題的根源,找到項(xiàng)目中的哪個(gè)環(huán)節(jié)有問題,還有什么邏輯上的問題。所有這些都是為了提高用戶的使用體驗(yàn)和不斷提高項(xiàng)目的性能,所以你必須對(duì)軟件進(jìn)行測(cè)試。那么如何去測(cè)試,可以從以下方面去測(cè)試:“黑盒測(cè)試”不注重程式的執(zhí)行方式及程式碼的執(zhí)行,而忽略程式的內(nèi)在邏輯,直接進(jìn)行專案,以取得成果,注重使用者的需要,從使用者的觀點(diǎn)來檢驗(yàn)軟體的效能,以及進(jìn)行端對(duì)端的測(cè)試。下面的表格顯示了問題信息的輸入:表6.1數(shù)據(jù)輸入測(cè)試數(shù)據(jù)輸入測(cè)試期望期望結(jié)果測(cè)試結(jié)果結(jié)論試題標(biāo)題是否符合標(biāo)準(zhǔn)試題標(biāo)題規(guī)格規(guī)則,并且格式正確。信息正確,并且格式也正確結(jié)果符合試題內(nèi)容能否輸入數(shù)字以外的字符,是否能輸入負(fù)值。試題內(nèi)容輸入正確,沒有負(fù)數(shù)結(jié)果符合試題類別能否輸入數(shù)字以外的字符,是否能輸入負(fù)值。試題標(biāo)題輸入正確,沒有負(fù)數(shù)結(jié)果符合(2)窗體鏈接測(cè)試如表6.2所示。表6.2窗體鏈接測(cè)試窗體鏈接測(cè)試操作期望結(jié)果測(cè)試結(jié)果結(jié)論窗體鏈接是否能正確的打開指定的窗體能正確的通過鏈接打開窗體結(jié)果符合測(cè)試用例本系統(tǒng)主要對(duì)老師、學(xué)生用戶以及管理員進(jìn)行了測(cè)試,具體的測(cè)試方案如下使用者登陸模組測(cè)試用例使用者登入分學(xué)生賬號(hào)、老師賬號(hào)、管理員賬號(hào),如表格所示:表6.3用戶登錄模塊測(cè)試用例用例編號(hào)測(cè)試用例描述操作過程及數(shù)據(jù)預(yù)期結(jié)果測(cè)試結(jié)果N001輸入正確的用戶名密碼遵循系統(tǒng)既定規(guī)則填寫用戶名(hjx)、密碼(123456)后點(diǎn)擊“確定”開始登錄系統(tǒng)成功登錄系統(tǒng),

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論