在線考試系統(tǒng)論文_第1頁
在線考試系統(tǒng)論文_第2頁
在線考試系統(tǒng)論文_第3頁
在線考試系統(tǒng)論文_第4頁
在線考試系統(tǒng)論文_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、本科畢業(yè)論文(設(shè)計(jì))題 目: 在線考試系統(tǒng) 學(xué) 院: 專 業(yè): 姓 名: XXX 指導(dǎo)教師: XXX 2015 年 5 月 10 日摘要摘要隨著計(jì)算機(jī)網(wǎng)絡(luò)的迅猛發(fā)展和教育改革的不斷深入,教育方式正在發(fā)生巨大改變。遠(yuǎn)程教育以其全新的教學(xué)理念和教學(xué)手段被人所接受,在線考試便是其中之一。其作用在于減輕教師的工作負(fù)擔(dān)及提高工作效率,使考試更加公正、便捷、環(huán)保。本文主要闡述了一個(gè)基于ASP.NET 技術(shù)、使用 SQL Server 2008 數(shù)據(jù)庫平臺,以 C#作為開發(fā)語言的在線考試系統(tǒng)的設(shè)計(jì)與開發(fā)過程。本系統(tǒng)實(shí)現(xiàn)了三種權(quán)限的信息管理,研究了考試題目生成算法、考試的安全性以及系統(tǒng)模式的選擇等。關(guān)鍵字:在

2、線考試,ASP.NET,組卷算法AbstractWith the rapid development of computer network and the continuous deepening of the reform of education, education way is undergoing tremendous changes.Distance education, with its brand-new teaching idea and teaching method accepted by people, online examination is one of the

3、m.The effect is to reduce teachers workload and improve work efficiency, is more just, convenient, environmental protection test.This article mainly expounds the one based on ASP.NET technology, the use of SQL Server 2008 database platform, c# as development language online examination system design

4、 and development process.This system realized the powers of the three kinds of information management, studies the security examination topic generation algorithm, and the system pattern choice, etc.Key Words:The online exam,ASP, Group of roll algorithm目錄目錄1. 緒論 .11.1 開發(fā)背景.11.2 國內(nèi)外研究現(xiàn)狀.11.3 研究內(nèi)容與研究意

5、義.21.3.1 研究內(nèi)容 .21.3.2 研究意義 .21.4 開發(fā)環(huán)境和開發(fā)技術(shù)介紹.31.4.1 開發(fā)環(huán)境 .31.4.2 系統(tǒng)框架 .31.5 本文的組織結(jié)構(gòu).42. 可行性研究 .52.1 可行性研究分析.52.1.1 技術(shù)可行性 .52.1.2 經(jīng)濟(jì)可行性 .52.1.3 運(yùn)行可行性 .53. 系統(tǒng)方案研究與設(shè)計(jì) .63.1 需求描述.63.1.1 用戶要求 .63.1.2 軟件特點(diǎn) .63.1.3 功能需求 .73.2 需求分析.73.3 設(shè)計(jì)目標(biāo).84. 系統(tǒng)總體設(shè)計(jì)概述 .94.1 功能分析.94.2 總體設(shè)計(jì).94.3 數(shù)據(jù)庫設(shè)計(jì).104.3.1 數(shù)據(jù)庫表 .104.3.2

6、 數(shù)據(jù)庫表設(shè)計(jì) .114.3.3 網(wǎng)頁設(shè)計(jì) .185. 系統(tǒng)主要算法實(shí)現(xiàn) .225.1 試卷生成算法.225.2 試卷評分算法.255.3 測試用題庫隨機(jī)生成.266. 實(shí)例實(shí)驗(yàn)與分析 .296.1 系統(tǒng)測試.296.1.1 測試目的 .296.1.2 測試方法 .296.1.3 系統(tǒng)測試 .296.2 系統(tǒng)分析.317. 結(jié)束語 .327.1 全文總結(jié).327.2 前景展望.32參考文獻(xiàn) .3401. 1. 緒論緒論1.1 1.1 開發(fā)背景開發(fā)背景一個(gè)社會要想持續(xù)發(fā)展,就離不開具備高技術(shù)、高素質(zhì)的人才。傳統(tǒng)的老師教授、學(xué)生學(xué)習(xí)的獲得知識的方式,在科學(xué)技術(shù)的發(fā)展日新月異,尤其是信息技術(shù)更是呈指

7、數(shù)形態(tài)不斷發(fā)展的大環(huán)境下,已經(jīng)不能滿足現(xiàn)代社會需要快速獲得技能和知識的要求。不斷的學(xué)習(xí)最新知識和技能,就是高素質(zhì)的人才當(dāng)前所要做的??荚囎鳛榻逃械囊粋€(gè)重要環(huán)節(jié),是檢驗(yàn)所學(xué)的重要途徑。教育的改革在不斷推行,考試的改革也勢在必行。傳統(tǒng)考試包括老師收集試卷題目信息、設(shè)計(jì)試卷結(jié)構(gòu)和內(nèi)容、改評試卷、計(jì)算試卷成績或者分?jǐn)?shù)、為學(xué)生分析和講評試卷,學(xué)校相關(guān)部門安排考試時(shí)間和考場、打印試卷、安排監(jiān)考人員,等等一系列的繁瑣工作。這個(gè)漫長而繁雜的過程,既不環(huán)保又浪費(fèi)人力財(cái)力,已經(jīng)不能適應(yīng)如今的教學(xué)需要。在線考試相較傳統(tǒng)考試,它的突破點(diǎn)是無紙化,也突破了時(shí)空的限制,是考試更加的方便、快捷、環(huán)保。這種使用科技對考試的

8、改變,對現(xiàn)代教育有很重要的意義。對于老師來說,這是將其從傳統(tǒng)考試中繁瑣復(fù)雜的工作中解救出來,這也避免了老師因主觀的評判,對試卷的判斷產(chǎn)生誤差,從而影響考試的公平性。對于學(xué)生來說,再也不用擔(dān)心考試中用的文具沒帶齊或者損壞了,也可以比傳統(tǒng)考試更快的知道自己的成績。對于學(xué)校的管理人員來說,教學(xué)與考試的分離,考務(wù)工作的自動(dòng)化管理,能節(jié)省大量的人力、物力。節(jié)省下來的資源又能為學(xué)校的科研、教學(xué)以及管理,提供更好的服務(wù),充分的形成良性循環(huán)。本課題主要開發(fā)如下功能,包括:角色信息管理(管理員、教師、學(xué)生的個(gè)人信息及考試信息)、學(xué)生在線考試(具體功能有計(jì)時(shí)、考題、答案、評分、提交等)、題庫管理(包括單選題、多選

9、題、判斷題、簡答題的題目與答案等)、試題管理(不同年級、學(xué)科試題不同)、成績管理(成績查詢、導(dǎo)出)等。它是多種功能的集合體,而不僅僅只有在線考試的能力。本系統(tǒng)一旦實(shí)現(xiàn),將有相當(dāng)大的實(shí)用價(jià)值應(yīng)用在各種學(xué)習(xí)機(jī)構(gòu)中。1.2 1.2 國內(nèi)外研究現(xiàn)狀國內(nèi)外研究現(xiàn)狀多項(xiàng)調(diào)查結(jié)果表明,網(wǎng)絡(luò)化的考試已成為全球考試的主流發(fā)展方向。目前好多的技術(shù)類1的認(rèn)證考試,比如 GRE、斯克認(rèn)證和國內(nèi)的駕照理論考試都采用在線考試的方式。這些考試平臺的開發(fā)主要采用 Visual Basic,Microsoft Visual C+ 6.0,Java,VS 等開發(fā)工具,對數(shù)據(jù)庫的訪問多采用 Oracle、SQL server 、A

10、ccess、MySQL 等。開發(fā)在線考試系統(tǒng)可以采用客戶端服務(wù)器形式,也可采用互聯(lián)網(wǎng)訪問的形式。基于互聯(lián)網(wǎng)形式的技術(shù)有:(1)ASP,它在微軟公司所開發(fā)的操作系統(tǒng)上使用,傳統(tǒng)的 ASP 技術(shù)很依賴腳本編程語言,效率不是很高。但它與 SQL server 數(shù)據(jù)庫結(jié)合使用能達(dá)到很不錯(cuò)的開發(fā)體驗(yàn)。之后誕生的.NET 去除了以前 ASP 的各種弊端,結(jié)合多種開發(fā)技術(shù)的優(yōu)點(diǎn),也更適用于互聯(lián)網(wǎng),這也是本系統(tǒng)所使用的技術(shù)。(2)JSP,其開發(fā)語言是 java 語言,所用開發(fā)軟件一般是Eclipse(3)PHP,是一種動(dòng)態(tài)的網(wǎng)頁腳本語言,各種能制作網(wǎng)頁的軟件都可以作為其開發(fā)平臺。綜上所述,在線考試系統(tǒng)要有靜態(tài)

11、網(wǎng)頁顯示考試內(nèi)容。還要運(yùn)用 JavaScript、ASP.NET等基本原理,作為創(chuàng)建動(dòng)態(tài) Web 頁面而提供的技術(shù),從而滿足交互和動(dòng)態(tài)效果。1.3 1.3 研究內(nèi)容與研究意義研究內(nèi)容與研究意義1.3.1 研究內(nèi)容研究內(nèi)容本課題要研究和設(shè)計(jì)一個(gè)無紙化的在線考試系統(tǒng)。它將實(shí)現(xiàn)從數(shù)據(jù)庫建立、自動(dòng)組卷,考試、自動(dòng)評分到成績分析的全部功能。其研究的主要內(nèi)容有:(1)網(wǎng)頁的設(shè)計(jì)。(2)考試試題的抽題組合、生成。(3)評分原則的合理性。(4)事件驅(qū)動(dòng)方式開發(fā)的應(yīng)用程序的研究。首先要做的是數(shù)據(jù)庫設(shè)計(jì)。數(shù)據(jù)庫是否合理關(guān)乎整個(gè)程序的合理性。之后是網(wǎng)頁的設(shè)計(jì),盡量要簡潔的將內(nèi)容展現(xiàn)給用戶,還要容易上手操作。作為考試

12、系統(tǒng),試題是其主要的內(nèi)容。試題庫的設(shè)計(jì)要合理,試題的各項(xiàng)屬性要全面,比如難易程度、試題的類型(單選、多選等)、考試的類型(考試、測驗(yàn))等等,以滿足大量的用戶來進(jìn)行各式各樣的考試。1.3.2 研究意義研究意義開發(fā)在線考試系統(tǒng)的意義在于:1.將教師從傳統(tǒng)考試中繁瑣復(fù)雜的工作中解救出來,這也避免了老師因主觀的評判,對試卷的判斷產(chǎn)生誤差,從而影響考試的公平性。22.對于學(xué)生來說,再也不用擔(dān)心考試中用的文具沒帶齊或者損壞了,也可以比傳統(tǒng)考試更快的知道自己的成績。3對于學(xué)校的管理人員來說,教學(xué)與考試的分離,考務(wù)工作的自動(dòng)化管理,能節(jié)省大量的人力、物力。節(jié)省下來的資源又能為學(xué)校的科研、教學(xué)以及管理,提供更好

13、的服務(wù),充分的形成良性循環(huán)。1.4 1.4 開發(fā)環(huán)境和開發(fā)技術(shù)介紹開發(fā)環(huán)境和開發(fā)技術(shù)介紹1.4.1 開發(fā)環(huán)境開發(fā)環(huán)境本系統(tǒng)是基于 ASP.NET 的在線考試系統(tǒng),采用了 Microsoft Visual Studio 2010 作為開發(fā)工具,SQL Server 2008 最為后臺數(shù)據(jù)庫管理工具,C#語言作為開發(fā)語言,使用ASP.NET 進(jìn)行 WEB 應(yīng)用程序開發(fā),并采用 B/S 模式和多層結(jié)構(gòu)設(shè)計(jì)思路結(jié)合的系統(tǒng)構(gòu)架,效率高,安全性好,代碼與設(shè)計(jì)分開,有利于程序開發(fā)和維護(hù)。以下是在線考試系統(tǒng)的開發(fā)、服務(wù)器、客戶端所需要的環(huán)境1.開發(fā)環(huán)境開發(fā)系統(tǒng):Windows 操作系統(tǒng)。開發(fā)工具:Micros

14、oft Visual Studio 2010。數(shù)據(jù)庫:SQL Server 2008。開發(fā)語言:ASP.NET 和 C#。2.服務(wù)器操作系統(tǒng):Windows 操作系統(tǒng)。Web 服務(wù)器:Internet 信息服務(wù)管理器.數(shù)據(jù)庫:SQL Server2008。瀏覽器:IE 瀏覽器/QQ 瀏覽器3.客戶端操作系統(tǒng):Windows 操作系統(tǒng)。瀏覽器:IE 瀏覽器/QQ 瀏覽器1.4.2 系統(tǒng)框架系統(tǒng)框架1.三層開發(fā)架構(gòu)3ASP.NET 三層開發(fā)架構(gòu),在開發(fā)的過程中,能使整個(gè)開發(fā)結(jié)構(gòu)清晰,適合多人開發(fā)的分工協(xié)調(diào),以及的軟件拓展、維護(hù)。包含三項(xiàng):(1)數(shù)據(jù)數(shù)據(jù)訪問層(Data Access Layer):

15、。(2)業(yè)務(wù)邏輯層(Bussiness Logic layer)。 (3)表示層(User Show Layer):。三層架構(gòu)結(jié)構(gòu)示意圖如下圖 1-1:圖 1-1 三層架構(gòu)結(jié)構(gòu)示意圖1.5 1.5 本文的組織結(jié)構(gòu)本文的組織結(jié)構(gòu)本文主要闡述了基于 ASP.NET 的考試系統(tǒng)在開發(fā)實(shí)現(xiàn)過程中的大致流程以及用到的主要技術(shù)進(jìn)行詳細(xì)的介紹。本文的組織結(jié)構(gòu)如下:1、緒論。簡要說明了本課題的背景及意義、國內(nèi)外的研究現(xiàn)狀、研究的內(nèi)容、意義和技術(shù)。2、系統(tǒng)的可行性研究分析,分別從技術(shù)、經(jīng)濟(jì)和運(yùn)行三方面來研究。3、系統(tǒng)方案研究與設(shè)計(jì)介紹。介紹了軟件的需求、系統(tǒng)開發(fā)方案和系統(tǒng)設(shè)計(jì)的一些內(nèi)容。4、系統(tǒng)總體設(shè)計(jì)概述。介

16、紹了本文開發(fā)系統(tǒng)的總體結(jié)構(gòu)以及數(shù)據(jù)設(shè)計(jì)。5、系統(tǒng)主要算法實(shí)現(xiàn)。介紹了系統(tǒng)中使用的算法,包括試卷生成算法、試卷評分算法、考試斷線處理。6、實(shí)例實(shí)驗(yàn)與分析。對系統(tǒng)的測試進(jìn)行記錄并對測試結(jié)果進(jìn)行分析。7、結(jié)束語??偨Y(jié)與展望,總結(jié)本次開發(fā)的心得、遇到的難題、創(chuàng)新性的結(jié)論,以及存在的不足。8、致謝。對母校,對導(dǎo)師等對畢業(yè)設(shè)計(jì)有幫助的人表示感謝。最后附上參考書目。42. 2. 可行性研究可行性研究2.1 2.1 可行性研究分析可行性研究分析本在線考試系統(tǒng)在可行性研究階段中,在技術(shù)、經(jīng)濟(jì)、運(yùn)行三方面來研究其可行性。2.1.1 技術(shù)可行性技術(shù)可行性本系統(tǒng)是在 windows 操作系統(tǒng)上,以 Microsoft

17、 Visual Studio 2010 和 SQL Server2008 作為工具,基于 ASP.NET、C#語言所開發(fā)的系統(tǒng),并在瀏覽器和網(wǎng)絡(luò)中運(yùn)行實(shí)現(xiàn)本系統(tǒng)的使用。通過這些技術(shù)的有機(jī)的結(jié)合可以設(shè)計(jì)出本系統(tǒng),并且能夠?qū)崿F(xiàn)其必要的功能和性能。2.1.2 經(jīng)濟(jì)可行性經(jīng)濟(jì)可行性本系統(tǒng)是在硬件條件中為一臺電腦,軟件為同電腦機(jī)器上的 Microsoft Visual Studio 2010 和 SQL Server2008 所開發(fā)的,因此費(fèi)用支出較少。本系統(tǒng)是用于學(xué)校以及培訓(xùn)機(jī)構(gòu)的在線考試系統(tǒng),在考試測驗(yàn)方面可以適量的減少人員支出,從而提高了效益。2.1.3 運(yùn)行可行性運(yùn)行可行性本系統(tǒng)在網(wǎng)絡(luò)中利用各種

18、瀏覽器為用戶提供相關(guān)服務(wù),系統(tǒng)界面清晰、簡潔,操作簡便,而且符合大多數(shù)人的操作習(xí)慣。53. 3. 系統(tǒng)方案研究與設(shè)計(jì)系統(tǒng)方案研究與設(shè)計(jì)3.1 3.1 需求描述需求描述3.1.1 用戶要求用戶要求本系統(tǒng)的用戶主要是學(xué)校的管理人員、教師和學(xué)生,由于他們使用系統(tǒng)的目的有所不同,所以他們對系統(tǒng)的要求也不相同。具體特點(diǎn)如下:1. 對于普通教師來說,他們主要是利用本系統(tǒng)對學(xué)生的考試成績進(jìn)行管理和評分,所以要求軟件界面友好,操作簡單,只要經(jīng)過簡單的培訓(xùn)后,就可上手操作。2. 對于學(xué)校的管理人員,他們主要利用系統(tǒng)進(jìn)行學(xué)生、教師以及試題的管理工作,他們不僅要求軟件操作簡單,還要求軟件具有較強(qiáng)的數(shù)據(jù)處理能力和數(shù)據(jù)

19、安全性。因此,在對軟件設(shè)計(jì)時(shí),要考慮到對軟件的數(shù)據(jù)處理能力和安全性的設(shè)計(jì)。3、對于學(xué)校學(xué)生來說,他們主要利用本系統(tǒng)進(jìn)行在線的考試和測試,以及查詢成績信息。因此,在對軟件設(shè)計(jì)時(shí),要考慮到考試的嚴(yán)謹(jǐn)性和安全性的設(shè)計(jì)。4、要求頁面美觀,操作清晰。3.1.2 軟件特點(diǎn)軟件特點(diǎn)該系統(tǒng)開發(fā)所遵循的原則有:1、實(shí)用性和先進(jìn)性系統(tǒng)設(shè)計(jì)要符合實(shí)際中的使用邏輯,能符合學(xué)校等使用者中的各種角色的使用規(guī)則。為了保證系統(tǒng)的效率、其存儲能力以及維護(hù)擴(kuò)展的方便,代碼的設(shè)計(jì)要有統(tǒng)一編碼規(guī)則,邏輯要清晰。2、整體性和可靠性本系統(tǒng)作為整個(gè)學(xué)?;蛘咂渌麢C(jī)構(gòu)的一個(gè)基本獨(dú)立的系統(tǒng),系統(tǒng)開發(fā)應(yīng)做好總體設(shè)計(jì)。數(shù)據(jù)信息要統(tǒng)一,應(yīng)該具備恢復(fù)的

20、能力和一定的容錯(cuò)能力。3、安全性和保密性系統(tǒng)安全性很重要,考試的一些信息是一種嚴(yán)格的需要保密的信息,防止數(shù)據(jù)被破解、丟失、亂碼等等,是本系統(tǒng)必須做到的。64、易使用和易維護(hù)操作要易上手,不同的用戶能根據(jù)各自的界面,快速的掌握使用方法。因?yàn)殚_發(fā)者不一定會作為以后的系統(tǒng)維護(hù)者,所以,為了維護(hù)的方便,要求后臺的代碼結(jié)構(gòu)要清晰,要有必要的注釋。3.1.3 功能需求功能需求根據(jù)業(yè)務(wù)邏輯來分析其需求:學(xué)生管理:建立學(xué)校的學(xué)生數(shù)據(jù)庫,并根據(jù)該數(shù)據(jù)庫對學(xué)生進(jìn)行跟蹤。數(shù)據(jù)庫記錄相關(guān)學(xué)生信息,主要包括學(xué)生的姓名、年齡、所屬年級班級、入學(xué)時(shí)間和出生年月等資料的管理。在考試系統(tǒng)做為最基本的對象起重要作用。教師管理:建

21、立學(xué)校的教師數(shù)據(jù)庫,并根據(jù)該數(shù)據(jù)庫對教師進(jìn)行跟蹤。數(shù)據(jù)庫記錄相關(guān)教師信息,主要包括教師的姓名、年齡、所屬年級、所屬專業(yè)、學(xué)歷和出生年月資料的管理。試題管理:建立學(xué)校各專業(yè)和年級的單選題、多選題、簡答題和判斷題四種題型的試題庫,以供試卷生成時(shí)使用。試卷管理:可以按年級、專業(yè)、知識點(diǎn)、難度以及試卷的用途生成試卷。成績管理:學(xué)生考試完成后,教師可以對學(xué)生答題的簡答題進(jìn)行主觀評分;管理員可以對考試成績進(jìn)行管理、導(dǎo)出等。其它管理:密碼修改、系統(tǒng)配置、年級/班級管理、專業(yè)管理等其它方面的管理。3.2 3.2 需求分析需求分析根據(jù)不同的使用角色來分析其需求:系統(tǒng)管理員:系統(tǒng)配置、年級/班級管理、專業(yè)管理、試

22、題管理、試卷管理等信息處理。學(xué)生用戶:在線考試、在線測試和成績查詢等。教師用戶:成績管理和成績評分。7根據(jù)以上描述,描述系統(tǒng)邊界及整體功能的系統(tǒng)用例圖如下圖 3-1 所示:圖 3-1 系統(tǒng)用例圖3.3 3.3 設(shè)計(jì)目標(biāo)設(shè)計(jì)目標(biāo)經(jīng)過仔細(xì)分析,本系統(tǒng)實(shí)現(xiàn)的主要目標(biāo)如下:(1)數(shù)據(jù)庫信息的批量導(dǎo)入和導(dǎo)出。設(shè)計(jì)選擇題、多選題、判斷題和簡答題四種題型的批量導(dǎo)入;設(shè)計(jì)學(xué)生信息和教師信息的批量導(dǎo)入;設(shè)計(jì)考試成績的批量導(dǎo)出供成績分析使用。(2)考試過程中的安全性設(shè)計(jì),當(dāng)客戶端學(xué)生考試過程中出現(xiàn)斷線、死機(jī)情況時(shí)考試內(nèi)容可以自動(dòng)保存,以供恢復(fù)。84. 4. 系統(tǒng)總體設(shè)計(jì)概述系統(tǒng)總體設(shè)計(jì)概述4.1 4.1 功能分析

23、功能分析本系統(tǒng)是基于 ASP.NET 的在線考試系統(tǒng),以 Microsoft Visual Studio 2010 為主要的開發(fā)工具,以 C#語言為開發(fā)語言,結(jié)合 SQL 2008 數(shù)據(jù)庫管理系統(tǒng)與 windows 操作系統(tǒng),同時(shí)使用 SQL Server 數(shù)據(jù)庫訪問技術(shù)進(jìn)行數(shù)據(jù)庫的操作。根據(jù)需求分析中列出的本系統(tǒng)的基本模塊,設(shè)計(jì)了如下圖所示的在線考試系統(tǒng)總體結(jié)構(gòu)示意圖如下圖 4-1:圖 4-1 系統(tǒng)總體結(jié)構(gòu)圖4.2 4.2 總體設(shè)計(jì)總體設(shè)計(jì)在線考試系統(tǒng)按使用角色的來賦予其不同的功能,前臺使用者包括學(xué)生與教師,后臺使用者是管理員。前臺中學(xué)生的功能主要有注冊、密碼修改、在線考試、在線練習(xí)和成績查

24、,看這五個(gè)功能;教師的功能有成績管理,還可以導(dǎo)出成績。后臺管理主要實(shí)現(xiàn)對用戶信息和試題信息的增刪改查。9系統(tǒng)流程圖,如圖 4-2:系統(tǒng)流程圖,4-24.3 4.3 數(shù)據(jù)庫設(shè)計(jì)數(shù)據(jù)庫設(shè)計(jì) .1 數(shù)據(jù)庫表數(shù)據(jù)庫表 本系統(tǒng)在所需要的數(shù)據(jù)庫中,共有 20 個(gè)數(shù)據(jù)庫表,表的名字和要存儲的內(nèi)容如表 4-1表 4-1序號數(shù)據(jù)庫表存儲內(nèi)容1tb_admin管理員信息表2tb_teacher教師信息表3tb_student學(xué)生信息表4tb_notice公告信息表10 4-1 續(xù)表5tb_class年級信息表6tb_config分?jǐn)?shù)信息表7tb_chapter章節(jié)信息表8tb_paper試題信息表

25、9tb_Result成績信息表10tb_Subject科目信息表11tb_stuPaper學(xué)生試卷表12tb_Paper_detaile試卷詳細(xì)信息表13tb_t_xzt單選題信息表14tb_t_xzt_temp單選題信息表15tb_t_dxt多選題臨時(shí)表16tb_t_dxt_temp多選題臨時(shí)表17tb_t_pdt判斷題信息表18tb_t_pdt_temp判斷題臨時(shí)表19tb_t_jdt簡答題信息表20tb_t_jdt_temp簡答題臨時(shí)表.2 數(shù)據(jù)庫表設(shè)計(jì)數(shù)據(jù)庫表設(shè)計(jì)表 4-2 后臺管理人員信息表(tb_admin)列名數(shù)據(jù)類型說明idint編號useramevarchar

26、(50)用戶名(賬號)userpwdvarchar(30)密碼realnamevarchar(50)姓名(角色)11表 4-3 教師(前臺角色)信息表(tb_teacher)列名數(shù)據(jù)類型說明idint編號usernamevarchar(40)用戶名userpwdvarchar(30)密碼realnamevarchar(20)姓名classidint年級sexChar(2)性別birthsmalldatetime生日educationvarchar(20)學(xué)歷remarkvarchar(100)備注Subjectidint科目表 4-4 學(xué)生信息表(tb_student)列名數(shù)據(jù)類型說明idin

27、t編號usernamevarchar(40)用戶名userpwdvarchar(20)密碼realnamevarchar(30)姓名classidint年級編號sexChar(2)性別birthsmalldatetime生日addressvarchar(100)地址AdmissionDatesmalldatetime入學(xué)的日期remarkvarchar(100)備注12表 4-5 公告信息表(tb_notice)列名數(shù)據(jù)類型說明idint編號titlevarchar(300)標(biāo)題bodyvarchar(5000)內(nèi)容createdatesmalldatetime添加的日期表 4-6 年級信息表

28、(tb_class)列名數(shù)據(jù)類型說明idint編號classnamevarchar(50)年級parentidint班級對應(yīng)年級的編號表 4-7 分?jǐn)?shù)信息表(tb_config)列名數(shù)據(jù)類型說明xztscoreint單選題分?jǐn)?shù)dxtscoreint多選題分?jǐn)?shù)jdtscoreint簡答題分?jǐn)?shù)pdtscoreint判斷題分?jǐn)?shù)表 4-8 章節(jié)信息表(tb_chapter)列名數(shù)據(jù)類型說明idint編號subjectidint科目classidvarchar(50)年級namevarchar(50)章節(jié)名 表 4-9 試卷信息表(tb_paper)列名數(shù)據(jù)類型說明IDint編號134-9 續(xù)表pape

29、rnamevarchar(100)試卷名稱subjectidint科目classidint年級levelIDint難度等級編號testlevelint類型編號createdatesmalldatetime生成日期updatedatesmalldatetime更新日期exposureidint曝光度等級編號discriptionnvarchar(500)備注表 4-10 成績信息表(tb_Result)列名數(shù)據(jù)類型說明IDint編號UserIDint學(xué)生編號paperidint試卷編號t_Resultint總分?jǐn)?shù)XZtint單選題分?jǐn)?shù)jdtint簡答題分?jǐn)?shù)pdtint判斷題分?jǐn)?shù)dxtint多選題

30、分?jǐn)?shù)testdatesmalldatetime測試日期teaidint評分教師編號stateint試卷狀態(tài)表 4-11 科目信息表(tb_Subject)列名數(shù)據(jù)類型說明idint編號Subjectnamevarchar(50)科目名稱14表 4-12 學(xué)生試卷表(tb_stuPaper)列名數(shù)據(jù)類型說明IDint編號UserIDint學(xué)生編號paperIDint試卷編號testIDint測試編號resultidint正確答案編號Typeint考試類型numint難度等級編號stuanswervarchar(5000)學(xué)生所填答案Scorechar(50)分?jǐn)?shù)teaidint教師編號表 4-1

31、3 試卷詳細(xì)信息表(tb_Paper_detaile)列名數(shù)據(jù)類型說明 IDint編號paperidint試卷編號testIDint測試編號Typeint考試類型numint難度等級編號表 4-14 單選題信息表(tb_t_xzt)列名數(shù)據(jù)類型說明IDint編號XZtNamevarchar(1000)題目內(nèi)容levelidint難度等級編號Avarchar(1000)選項(xiàng)內(nèi)容Bvarchar(1000)選項(xiàng)內(nèi)容15 4-14 續(xù)表Cvarchar(1000)選項(xiàng)內(nèi)容Dvarchar(1000)選項(xiàng)內(nèi)容Answerint正確答案編號IfIsuseint是否發(fā)布Scoreint分值chapteri

32、dint章節(jié)testlevelint類型lastusedatesmalldatetime最后使用日期表 4-15 單選題臨時(shí)表(tb_t_xzt_temp)列名數(shù)據(jù)類型說明idint編號tidint試題編號scoreint分值 表 4-16 多選題信息表(tb_t_dxt)列名數(shù)據(jù)類型說明IDint編號XZtNamevarchar(1000)試題內(nèi)容chapteridint章節(jié)Avarchar(1000)選項(xiàng)內(nèi)容Bvarchar(1000)選項(xiàng)內(nèi)容Cvarchar(1000)選項(xiàng)內(nèi)容Dvarchar(1000)選項(xiàng)內(nèi)容Answervarchar(1000)正確答案編號Scoreint分?jǐn)?shù)lev

33、elidint難度等級編號16 4-16 續(xù)表testlevelint類型IfIsuseint是否使用lastusedatesmalldatetime最后使用日期 表 4-17 多選題臨時(shí)表(tb_t_dxt_temp)列名數(shù)據(jù)類型說明idint難度等級編號tidint類型scoreint是否使用 表 4-18 判斷題信息表(tb_t_pdt)列名數(shù)據(jù)類型說明IDint編號XZtNamevarchar(1000)試題內(nèi)容chapteridint章節(jié)Answerint正確答案Scoreint分?jǐn)?shù)levelidint難度等級編號testlevelint類型IfIsuseint是否使用lastuse

34、datesmalldatetime最后使用日期 表 4-19 判斷題臨時(shí)表(tb_t_pdt_temp)列名數(shù)據(jù)類型說明idint難度等級編號tidint類型scoreint是否使用 17 表 4-20 簡答題信息表(tb_t_jdt)列名數(shù)據(jù)類型說明IDint編號XZtNamevarchar(1000)試題內(nèi)容chapteridint章節(jié)Answervarchar(1000)正確答案Scoreint分?jǐn)?shù)levelidint難度等級編號testlevelint類型IfIsuseint是否使用lastusedatesmalldatetime最后使用日期 表 4-21 簡答題臨時(shí)表(tb_t_jd

35、t_temp)列名數(shù)據(jù)類型說明idint難度等級編號tidint類型scoreint是否使用.3 網(wǎng)頁設(shè)計(jì)網(wǎng)頁設(shè)計(jì)由于本系統(tǒng)有大量的網(wǎng)頁,這里只展示登陸頁與后臺管理員操作頁的界面和邏輯實(shí)現(xiàn)代碼。(1)登陸頁展示:18實(shí)現(xiàn)代碼:public partial class login : System.Web.UI.Page UserAction ucObj = new UserAction();/與角色相關(guān)的數(shù)據(jù)庫操作類,實(shí)例化 sysFunction ccObj = new sysFunction();/系統(tǒng)使用的全局功能類,實(shí)例化 protected void Page_Loa

36、d(object sender, EventArgs e) if (!IsPostBack) Session.RemoveAll(); Random rnd = new Random(); /生成驗(yàn)證碼 this.Label3.Text = rnd.Next(1000, 9999).ToString(); protected void imbtnLogin_Click(object sender, ImageClickEventArgs e) /登錄 if (tbYZ.Text != Label3.Text)/驗(yàn)證驗(yàn)證碼是否正確 Response.Write(ccObj.MessageBoxP

37、age(驗(yàn)證碼錯(cuò)?誤!); else String roleId = ; /確定進(jìn)入的角色,學(xué)生登錄 if (ddlRole.SelectedItem.Value.ToString() = Student) roleId=2; else if (ddlRole.SelectedItem.Value.ToString() = Teacher)/教師登錄 roleId=1; else if (ddlRole.SelectedItem.Value.ToString() = Admin)/管理員登錄 roleId=0; DataTable dsTable = ucObj.GetUserLogin(tb

38、Username.Text.Trim(), tbPassword.Text.Trim(), roleId); /從數(shù)據(jù)庫取到登錄用戶的 ID if (dsTable!= null) Sessionusername = dsTable.Rows00.ToString(); Sessionuserid = Convert.ToInt32(dsTable.Rows01.ToString(); Sessionroleid = roleId; Response.Redirect(Default2.aspx); else tbPassword.Text = ; tbUsername.Text = ; Ra

39、ndom rnd = new Random();19 this.Label3.Text = rnd.Next(1000, 9999).ToString(); tbYZ.Text = ; Response.Write(ccObj.MessageBoxPage(您的登錄有誤,請核對后再重新登錄!); protected void imbtnRegister_Click(object sender, ImageClickEventArgs e) /注冊 Response.Redirect(Reg.aspx);/轉(zhuǎn)到注冊頁面 (2)管理員操作后臺展示:實(shí)現(xiàn)代碼:public partial class

40、 left_menu : System.Web.UI.Page sysFunction ccObj = new sysFunction(); SqlAction dbObj = new SqlAction(); UserAction ucObj = new UserAction(); PaperTestAction ptObj = new PaperTestAction();20 protected void Page_Load(object sender, EventArgs e) if (Sessionuserid = null & ccObj.Getsysdebug() = false)

41、 Response.Write(alert(請登錄);window.location.href=login.aspx; ); else /以下是獲取用戶的相關(guān)信息 string userName = Convert.ToString(Sessionusername); string roleId = Convert.ToString(Sessionroleid); if (roleId = 0) /管理員顯示 sunitems1_1.Visible = true;/系統(tǒng)設(shè)置 sunitems2_1.Visible = true; /試題管理 sunitems3_1.Visible = fals

42、e;/在線考試 sunitems4_1.Visible=true; /成績管理 sunitems5_1.Visible = false; /成績管理 if (roleId = 1) /教師顯示 sunitems1_1.Visible = false;/系統(tǒng)設(shè)置 sunitems2_1.Visible = false; /試題管理 sunitems3_1.Visible = false;/在線考試 sunitems4_1.Visible=false; /成績管理 sunitems5_1.Visible=true; /成績管理 ; if (roleId = 2) /學(xué)生顯示 sunitems1_1

43、.Visible = false;/系統(tǒng)設(shè)置 sunitems2_1.Visible = false; /試題管理 sunitems3_1.Visible = true;/在線考試 sunitems4_1.Visible = false; /成績管理 sunitems5_1.Visible = false; /成績管理 ; 215. 5. 系統(tǒng)主要算法實(shí)現(xiàn)系統(tǒng)主要算法實(shí)現(xiàn)5.1 5.1 試卷生成算法試卷生成算法1、試卷生成的基本原則任何事情都必須遵循基本原則才能達(dá)到最佳效果。對于目標(biāo)參照性測驗(yàn),試卷的基本原則主要體現(xiàn)在:(1)出題時(shí)要表達(dá)清晰,不能產(chǎn)生歧義,影響考生發(fā)揮。(2)試卷要遵循教學(xué)大

44、綱的內(nèi)容寬廣度和深度。試卷內(nèi)容要緊密的貼合所要考察的知識范圍,要使用符合學(xué)校等的教學(xué)計(jì)劃之中的內(nèi)容。既要有基本的知識考察,以考察學(xué)生的基本功,又要有一定的試題能擴(kuò)展學(xué)生的視野,培養(yǎng)學(xué)生解決疑難的能力。(3)試卷要有積極的促進(jìn)作用。要注意不同類型的不同功能,試卷生成時(shí),從多方面考慮,選擇最佳組合結(jié)構(gòu)。不僅可以考察學(xué)生的掌握度,又能對學(xué)生有一定的智力提升有幫助。(4)試卷要有難度和專業(yè)。試卷要有合理的難度,太難或者太簡單都會降低考試的區(qū)分度,失去了考試的原本意義。難度的設(shè)置要有梯度,簡單題占大多數(shù),中等題少量,高難度占極小的一部分。這種設(shè)置才能讓大部分的學(xué)生接受,而且不影響優(yōu)生的展示其高能力。2、

45、試卷生成的基本步驟試卷生成的基本步驟,在線考試系統(tǒng)的組卷分為以下五個(gè)步驟,如圖 5-1:(1)確定考試中要考察的知識的范圍。只有這一點(diǎn)明確了,才能基本的達(dá)到考試的目的。(2)確定試卷包含的試題類型。(3)試卷題目的數(shù)量。在一定的考試時(shí)間內(nèi),應(yīng)該設(shè)置合理數(shù)量的題目。(4)確定試卷的難度。22試卷生成開始確定章節(jié)范圍確定試卷題型根據(jù)系統(tǒng)配置確定各題型的數(shù)量試卷難度和試卷專業(yè)組卷結(jié)束圖 5-1 組卷步驟3、組卷的約束條件為了能按照使用者的意愿來組合出合適的試卷,需要在生成試卷之前,添加一定的約束條件。通常情況下,約束的類型有:(1)考試中涉及到的知識的范圍。只有這一點(diǎn)明確了,才能基本的達(dá)到考試的目的

46、。(2)試卷題目的數(shù)量。在一定的考試時(shí)間內(nèi),應(yīng)該設(shè)置合理數(shù)量的題目。(3)試卷中考查的難易程度??刂坪靡粡?jiān)嚲淼碾y易程度,才能符合這次考試的本意,最終了解到學(xué)生對測試知識的掌握程度。(4)試卷中題目的類型。一般試卷題型不外乎單項(xiàng)選題、多項(xiàng)選題、填空題和問答題等等。但是,每種題型所能考查到知識的廣度、深度大大不同,因此在題型的設(shè)置中需要慎重。5、以判斷題為例,展示抽取試題到組成試卷的方法: /獲取試卷判斷題個(gè)數(shù) public int Getpdtnum(int IntPaperID) string strSql = SELECT count(ID) from tb_paper_detaile w

47、here type=4 and paperID= + IntPaperID; SqlCommand myCmd = dbObj.GetCommandStr(strSql); DataTable dsTable = dbObj.GetDataSetStr(strSql, tbBI);23 int temp; if (dsTable != null & dsTable.Rows.Count 0) temp = Convert.ToInt32(dsTable.Rows00.ToString(); else temp = 0; return temp; /獲取判斷題答案 public string G

48、etpdtAnswer(int intanswer) string answer = ; if (intanswer = 1) answer = 正確; if (intanswer = 0) answer = 錯(cuò)誤; return answer; /根據(jù)條件獲取判斷題 public string Crpdttest(int intpapertotalscore, string strchapterid, int intlevelid, int inttestlevel, int intexposere, int intselectnumb) SqlCommand myCmd = dbObj.G

49、etCommandProc(Proc_Crpdttest); /添加參數(shù) SqlParameter papertotalscore = new SqlParameter(papertotalscore, SqlDbType.Int, 4); SqlParameter chapterid = new SqlParameter(chapterid, SqlDbType.Char, 500); SqlParameter levelid = new SqlParameter(levelid, SqlDbType.Int, 4); SqlParameter testlevel = new SqlPara

50、meter(testlevel, SqlDbType.Int, 4); SqlParameter exposere = new SqlParameter(exposere, SqlDbType.Int, 4); /查詢最優(yōu)化次數(shù) SqlParameter selectnumb = new SqlParameter(selectnumb, SqlDbType.Int, 10); papertotalscore.Value = intpapertotalscore; chapterid.Value = strchapterid; levelid.Value = intlevelid; testle

51、vel.Value = inttestlevel; exposere.Value = intexposere; selectnumb.Value = intselectnumb; myCmd.Parameters.Add(papertotalscore); myCmd.Parameters.Add(chapterid); myCmd.Parameters.Add(levelid);24 myCmd.Parameters.Add(testlevel); myCmd.Parameters.Add(exposere); myCmd.Parameters.Add(selectnumb); string

52、 temp; temp = dbObj.ExecScalar(myCmd).ToString(); if (temp != ) temp = temp; else temp = 0; return temp; 5.2 5.2 試卷評分算法試卷評分算法由于本系統(tǒng)將試題分為 4 種題型,其中有主觀題需要教師手工評分,因此在批改學(xué)生分?jǐn)?shù)時(shí)分三部分來進(jìn)行。試卷中,每個(gè)題都有唯一的 ID 來對應(yīng)一個(gè)分值。這個(gè)分值可以在生成試卷前提前設(shè)置,學(xué)生在答題后,系統(tǒng)將其選擇的答案與正確答案進(jìn)行對比,這個(gè)對比是通過答案對應(yīng)的 ID 來進(jìn)行識別,然后計(jì)算該學(xué)生的成績。其代碼如下:Hashtable ht_XZRigh

53、tAnswer, ht_XZStuAnswer, ht_WXRightAnswer, ht_WXStuAnswer, ht_YDRightAnswer, ht_YDStuAnswer; ht_XZRightAnswer = (Hashtable)SessionXZRightAnswer; ht_XZStuAnswer = (Hashtable)SessionXZStuAnswer;int XZScore = 0;for (int i = 1; i = 70; i+)if (ht_XZStuAnswer.Contains(i.ToString() & ht_XZRightAnswer.Conta

54、ins(i.ToString() if(ht_XZStuAnsweri.ToString().ToString().Equals(ht_XZRightAnsweri.ToString().ToString() XZScore = XZScore + 1; 多選題和判斷題的判分方法與選擇題的方法類似。當(dāng)?shù)玫竭@三種題型的成績后,將其相加得出結(jié)果,在老師將主觀題打分后,最后相加得到總成績。主觀題評分算法: /簡答題如果有選擇答案,將答案信息插入數(shù)據(jù)庫 for (int i = 1; i 0) /更新總成績 string strSqlmm = update tb_stupaper ; strSqlmm

55、 += set stuanswer= + jdtans + ; strSqlmm += where userid= + userid + and paperid= + paperid + and testid= + xztid.ToString() + and resultid= + resultid.ToString() + and type=3 and num= + i.ToString() + ; SqlCommand myCmdmm = dbObj.GetCommandStr(strSqlmm); dbObj.ExecNonQuery(myCmdmm); else /插入數(shù)據(jù)庫中 /獲

56、取對應(yīng)試題的分值 string strSql = Select score from tb_t_jdt where ID= + xztid; SqlCommand myCmdscroe = dbObj.GetCommandStr(strSql); string score_t = dbObj.ExecScalar(myCmdscroe).ToString(); /將答案插入學(xué)生試卷表數(shù)據(jù)庫中 string strAddSql1 = Insert into tb_stupaper(userid,paperid,testid,resultid,type,num,stuanswer,score,te

57、aid); strAddSql1 += values ( + userid + , + paperid + , + xztid.ToString() + , + resultid.ToString() + ,3, + i.ToString() + , + jdtans + , + score_t + ,0); SqlCommand myCmd1 = dbObj.GetCommandStr(strAddSql1); dbObj.ExecNonQuery(myCmd1); 5.3 5.3 測試用題庫隨機(jī)生成測試用題庫隨機(jī)生成在編程階段,有些功能的檢驗(yàn)、測試,需要大量的數(shù)據(jù)來支持。本系統(tǒng)在測試試卷生

58、成、在線考試等功能時(shí),需要大量的試題來支撐測試。因此,設(shè)計(jì)本算法,可隨機(jī)生成 1000 道主觀題等四種題型。26每個(gè)題的題目,以及答案等,由隨機(jī)的大小寫字母和數(shù)字產(chǎn)生的隨機(jī)數(shù)來構(gòu)成。雖然對實(shí)際使用沒有任何意義,但是為本系統(tǒng)的測試提供了便利。其代碼如下:(1)這里只列舉其中一個(gè)的按鈕事件: protected void dxt_Click(object sender, EventArgs e) for (int i = 1; i 1000; i+) System.Threading.Thread.Sleep(20); string strxztname = Randomstr().ToStrin

59、g(); Random ObjRandom = new Random(); int intchapterid = Convert.ToInt32(ObjRandom.Next(1, 103); if (intchapterid = 6 | intchapterid = 4 | intchapterid = 5 | intchapterid = 3) intchapterid = 22; string stra = Randomstra().ToString(); string strb = Randomstrb().ToString(); string strc = Randomstrc().

60、ToString(); string strd = Randomstrd().ToString(); string stranswer = Randomabcd().ToString(); Random ObjRandom1 = new Random(); int intscore = Convert.ToInt32(ObjRandom1.Next(5, 11); Random ObjRandom2 = new Random(); int intlevelid = Convert.ToInt32(ObjRandom2.Next(1, 4); Random ObjRandom3 = new Ra

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論