版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
摘要基于ASP.NET學(xué)生在線考試系統(tǒng),是基于B/S模式,即用戶可利用瀏覽器直接訪問本站點(diǎn)。采用ASP.NET(C#)和SQL2005數(shù)據(jù)庫以及VS2005等技術(shù)。網(wǎng)絡(luò)在線考試系統(tǒng)旨在探索一種以互聯(lián)網(wǎng)為基礎(chǔ)的考試模式。通過這一新的考試模式,為考試創(chuàng)造一種新的考試環(huán)境;提高考試工作效率和標(biāo)準(zhǔn)化水平。本系統(tǒng)實(shí)現(xiàn)了網(wǎng)絡(luò)在線考試的功能,以減輕教師的工作負(fù)擔(dān)及提高工作效率,并能激發(fā)學(xué)生的學(xué)習(xí)興趣。論文首先論述了課題的背景、開發(fā)意義以及課題的研究方案和國內(nèi)外研究現(xiàn)狀。論述了系統(tǒng)的需求分析與總體設(shè)計(jì)。本系統(tǒng)定位學(xué)生在線考試和管理員對(duì)試題、試卷的維護(hù)工作,具體來說系統(tǒng)的總體功能模塊包括:學(xué)生注冊與登錄;在線考試;學(xué)生信息維護(hù);試題管理;學(xué)生成績管理。在總體設(shè)計(jì)里著重論述了數(shù)據(jù)庫的設(shè)計(jì),數(shù)據(jù)庫中各表的屬性設(shè)置。其次介紹了詳細(xì)設(shè)計(jì)。對(duì)于前臺(tái)系統(tǒng)的在線考試登錄頁、密碼找回頁、考生注冊頁在線考試頁進(jìn)行了詳細(xì)的論述。后臺(tái)的考試套題管理頁、考試題目管理頁、管理員與學(xué)生信息管理頁、課程與專業(yè)信息管理頁也進(jìn)行了詳細(xì)的論述。本文著重研究了選擇題題庫管理以及前臺(tái)在線考試的實(shí)現(xiàn)。選擇題題庫管理主要實(shí)現(xiàn)了選擇題的自由人性化添加、修改、刪除及瀏覽等功能;前臺(tái)學(xué)生可以查看其考試成績,并且進(jìn)入在線考試,嚴(yán)格的監(jiān)視系統(tǒng)保證了考試的安全順利進(jìn)行。最后,是對(duì)該課題所研究的系統(tǒng)進(jìn)行測試。關(guān)鍵詞:在線考試系統(tǒng);B/S模式;ASP.NET;SQLSever2005AbstractStudents
online
examination
system
based
on
ASP.NET,
is
based
on
the
B/S
mode,
the
user
can
access
the
site
through
the
browser.
Using
ASP.NET
(C#)
and
SQL2005
database
and
VS2005
technology.
Exploration
of
an
Internet
based
exam
modeto
Online
Examination
System.
Through
this
new
examination
mode,
to
create
a
new
test
environment
for
the
exam;
improving
the
test
efficiency
and
the
level
of
standardization.
This
system
realizes
the
function
of
online
test,
in
order
to
reduce
the
workload
of
teachers
and
improve
work
efficiency,and
can
stimulate
students'
interest
in
learning.The
paper
first
discusses
the
research
background,
the
development
significance
and
research
method
and
the
research
situation
at
home
and
abroad.Discussestherequirementanalysisandsystemdesign.Thesystempositioningstudentsonlineexaminationandtheadministratorofthetestpapers,themaintenancework,theoverallfunctionmodulespecificallysysteminclude:Studentregistrationandlogin;onlinetest;students'informationmaintenance;testmanagement;managementofstudentachievement.Intheoveralldesignfocusesonthedesignofthedatabase,thedatabasetableattributeset.Secondly,introducesthedetaileddesign.FortheOnlineExamSystemloginpage,passwordrecoverypage,theexamineeregistrationpageonlinetestpageisdiscussedindetail.Thispaperfocusonmultiple-choicequestionbankmanagementandtheimplementationofonlineexam.Multiplechoicequestionbankmanagementmainlyrealizesthefreedomofhumanchoice,modify,adddeleteandbrowsefunctions;thestudentscanchecktheirscores,andintotheonlineexamination,monitoringsystemstrictlyguaranteetheexaminationsmoothlyandsafely.Finally,systemstudyonthesubjecttest.
Keywords:
Qnline
Examination
System;B/S;
ASP.NET;SQL
Sever
2005目錄178701緒論 1216341.1課題的背景及意義 1317861.2研究的主要內(nèi)容 16011.3課題的研究方案及國內(nèi)外研究現(xiàn)狀 2202322考試系統(tǒng)的相關(guān)技術(shù)介紹和分析 318422.1動(dòng)態(tài)網(wǎng)頁技術(shù) 341652.2AJAX技術(shù)及數(shù)據(jù)庫技術(shù) 3316902.3編程語言、編程平臺(tái)及構(gòu)建開發(fā)環(huán)境介紹 547793系統(tǒng)需求分析與總體設(shè)計(jì) 7145013.1系統(tǒng)總體功能業(yè)務(wù)分析 7251043.2數(shù)據(jù)流程圖 7169483.3系統(tǒng)總體模塊設(shè)計(jì) 8167123.4數(shù)據(jù)庫設(shè)計(jì) 1019183.4.1數(shù)據(jù)庫概念設(shè)計(jì) 10175943.4.2數(shù)據(jù)庫邏輯設(shè)計(jì) 1238043.5網(wǎng)站文件組織結(jié)構(gòu) 14221764系統(tǒng)詳細(xì)設(shè)計(jì) 15188854.1公共類設(shè)計(jì) 15151034.2前臺(tái)設(shè)計(jì) 1867654.2.1在線考試登錄頁設(shè)計(jì) 19167584.2.2密碼找回頁設(shè)計(jì) 21222234.2.3考生注冊頁設(shè)計(jì) 24102644.2.4在線考試頁設(shè)計(jì) 25118274.3后臺(tái)設(shè)計(jì) 28256434.3.1考試套題管理頁設(shè)計(jì) 2917534.3.2考試題目管理頁面設(shè)計(jì) 31145244.3.3管理員與學(xué)生信息管理頁設(shè)計(jì) 35241244.3.4課程與專業(yè)信息管理頁設(shè)計(jì) 37249505系統(tǒng)測試 39197225.1軟件測試 39310275.1.1測試的基本概念 39317385.1.2測試步驟 3987165.2本系統(tǒng)功能測試 406164結(jié)論 4225330致謝 432660參考文獻(xiàn) 443868附錄A英文原文 4519751附錄B漢語翻譯 551緒論1.1課題的背景及意義ASP[1]是一項(xiàng)微軟公司的技術(shù),是一種使嵌入網(wǎng)頁中的腳本可由因特網(wǎng)服務(wù)器執(zhí)行的服務(wù)器端腳本技術(shù)。指ActiveServerPages(動(dòng)態(tài)服務(wù)器頁面),運(yùn)行于IIS之中的程序。InternetInformationServices(IIS,互聯(lián)網(wǎng)信息服務(wù)),是由微軟公司提供的基于運(yùn)行MicrosoftWindows的互聯(lián)網(wǎng)基本服務(wù)??荚囀墙逃兄匾囊粋€(gè)環(huán)節(jié)??荚嚨哪康囊皇菫榱丝疾閷W(xué)生的知識(shí)掌握情況;二是為教師提供教學(xué)分析的依據(jù)。傳統(tǒng)的考試由于涉及組織命題,試卷印刷,考場安排,組織閱卷等諸多環(huán)節(jié),考試時(shí)間周期長,效率低下;同時(shí)人工批卷等主觀因素也影響到考試的公正性。隨著網(wǎng)絡(luò)技術(shù)在教育領(lǐng)域應(yīng)用的普及,應(yīng)用現(xiàn)代信息技術(shù)架構(gòu)的網(wǎng)絡(luò)在線考試系統(tǒng)展現(xiàn)出來越來越多的優(yōu)越性。網(wǎng)絡(luò)在線考試系統(tǒng)旨在探索一種以互聯(lián)網(wǎng)為基礎(chǔ)的考試模式。通過這一新的考試模式,為考試創(chuàng)造一種新的考試環(huán)境;提高考試工作效率和標(biāo)準(zhǔn)化水平;使考務(wù)管理突破時(shí)空限制;使考生可以隨時(shí),隨地通過網(wǎng)絡(luò)完成考試。網(wǎng)絡(luò)在線考試系統(tǒng)從根本上解決了傳統(tǒng)考試過程中工作量大,效率低,反饋周期長,資源浪費(fèi)等缺陷。1.2研究的主要內(nèi)容本系統(tǒng)運(yùn)行速度快、操作簡單、界面友好、易于管理和維護(hù);而且具有較強(qiáng)的針對(duì)性、實(shí)用性和可操作性,初步解決了校園理論考核層次廣、次數(shù)多、內(nèi)容全,以及保密性和公平性差、評(píng)卷困難等問題。并對(duì)其詳細(xì)的設(shè)計(jì)方案、實(shí)現(xiàn)技術(shù)和運(yùn)行情況做了分析和研究,最后對(duì)未來的工作做了研究與探討。論文主要圍繞系統(tǒng)設(shè)計(jì)開展研究,保證了考核的公平、公正、公開,有力地促進(jìn)了理論學(xué)習(xí)的全面開展。本文重點(diǎn)研究了以下幾個(gè)方面:(1)系統(tǒng)的體系結(jié)構(gòu)、工作方式、主要功能模塊、主要數(shù)據(jù)的工作流程、后臺(tái)數(shù)據(jù)庫的設(shè)計(jì)、數(shù)據(jù)庫配置與連接;(2)系統(tǒng)各功能模塊的詳細(xì)設(shè)計(jì)、開發(fā)及其關(guān)鍵技術(shù)。1.3課題的研究方案及國內(nèi)外研究現(xiàn)狀系統(tǒng)采用開放、動(dòng)態(tài)的B/S系統(tǒng)架構(gòu),基于ASP.NET開發(fā)技術(shù),實(shí)現(xiàn)用戶與網(wǎng)站的動(dòng)態(tài)交互性。設(shè)計(jì)實(shí)現(xiàn)具有空間性、被授權(quán)用戶可以異地登錄考試的系統(tǒng),系統(tǒng)提供倒計(jì)時(shí)功能以及自動(dòng)提交試卷功能,考生可查詢考試成績,對(duì)考生注冊信息進(jìn)行管理。系統(tǒng)為考生提供更全面,更靈活的服務(wù),并全面、準(zhǔn)確地對(duì)考試進(jìn)行跟蹤和評(píng)價(jià)。實(shí)現(xiàn)系統(tǒng)運(yùn)行穩(wěn)定,安全可靠。隨著計(jì)算機(jī)應(yīng)用的迅猛發(fā)展,網(wǎng)絡(luò)應(yīng)用不斷擴(kuò)大,如遠(yuǎn)程教育和虛擬大學(xué)的出現(xiàn)等等,且這些應(yīng)用正逐步深入到千家萬戶。其中很重要的一個(gè)環(huán)節(jié)就是在線考試系統(tǒng),同時(shí)它也是最難實(shí)現(xiàn)的環(huán)節(jié)。學(xué)生在線考試系統(tǒng)的開發(fā)可以適應(yīng)現(xiàn)代教學(xué)的需求,為考生提供更全面,更靈活的服務(wù),對(duì)于如何設(shè)計(jì)開發(fā)有針對(duì)性的在線考試系統(tǒng)也提出了更高的要求。目前動(dòng)態(tài)網(wǎng)頁的開發(fā)技術(shù)比較成熟,主要有ASP.NET、JSP和PHP等,本系統(tǒng)基于ASP.NET開發(fā)技術(shù)。ASP.NET[2]是一種強(qiáng)大的Web服務(wù)器端技術(shù),與ASP相比,ASP.NET擁有更高的編譯特性與緩存機(jī)制。其特點(diǎn)包括:與其地層框架.NET緊密結(jié)合;將事件模型引入到Web應(yīng)用程序的開發(fā)領(lǐng)域;支持多種語言開發(fā),包括C#、VisualBasic和Jscript等。2考試系統(tǒng)的相關(guān)技術(shù)介紹和分析2.1動(dòng)態(tài)網(wǎng)頁技術(shù)由于系統(tǒng)的操作界面都是Web頁面形式,而且需要對(duì)各種用戶的具體請(qǐng)求進(jìn)行動(dòng)態(tài)處理并返回結(jié)果,這是一般靜態(tài)Web頁面技術(shù)所無法實(shí)現(xiàn)的,所以采用動(dòng)態(tài)網(wǎng)頁技術(shù)。目前動(dòng)態(tài)網(wǎng)頁技術(shù)有很多,可以說是層出不窮,比如CGI、PHP、JSP、ASP、ASP.NET等。本設(shè)計(jì)采用ASP.NET技術(shù)。ASP.NET[3](又稱ASP+)是ASP的下一代版本,它并不只是ASP4.0,它是一個(gè)用于Web開發(fā)的全新框架,其中包含了許多新的特性。ASP.NET完全基于模塊與組件,具有更好的可擴(kuò)展性與可定制性,數(shù)據(jù)處理方面更是引入了許多激動(dòng)人心的新技術(shù),正是這些具有革新意義的新特性,讓ASP.NET遠(yuǎn)遠(yuǎn)超越了ASP,同時(shí)也是提供給Web開發(fā)人員更好的靈活性,有效縮短了Web應(yīng)用程序的開發(fā)周期。Asp.Net所獨(dú)具的一些特點(diǎn):(1)簡單的開發(fā)操作,分離程序代碼和網(wǎng)頁內(nèi)容。ASP.NET可以將頁面邏輯與業(yè)務(wù)邏輯分開,實(shí)用代碼分離技術(shù)(CodeBehind)分離程序代碼與顯示內(nèi)容,使程序的可讀性更強(qiáng),簡化開放操作。(2)提高了執(zhí)行效率所有ASP.NET代碼(包括服務(wù)器腳本)都經(jīng)過編譯,可提供強(qiáng)類型、性能優(yōu)化和早期綁定及其他有點(diǎn)。代碼一旦經(jīng)過編譯,運(yùn)行庫會(huì)進(jìn)一步將ASP.NET編譯為本機(jī)代碼,從而提供增強(qiáng)的性能。(3)支持客戶端類型ASP.NET提供了許多服務(wù)器控件(ServerControl),在網(wǎng)頁執(zhí)行期間,能自動(dòng)檢測瀏覽器所支持的功能,并自動(dòng)產(chǎn)生瀏覽器可用網(wǎng)頁。2.2AJAX技術(shù)及數(shù)據(jù)庫技術(shù)AJAX的全稱是AsynchronousJavaScriptandXML,即異步JavaScript和XML。這是一種多項(xiàng)成熟技術(shù)的組合,其目的是讓W(xué)eb應(yīng)用獲得與用戶快速、即時(shí)交互的能力。AJAX所組合的技術(shù),包括:?JavaScript,Java腳本語言(注意,此Java非Sun公司的Java)?DHTML,DynamicHTML,動(dòng)態(tài)HTML?XML,ExtensibleMarkupLanguage,可擴(kuò)展標(biāo)記語言?CSS,CascadingStyleSheets,層疊樣式表單?DOM,DocumentObjectModel,文檔對(duì)象模型?微軟的稱為XMLHttpRequest的對(duì)象在AJAX技術(shù)下,用戶會(huì)感覺到網(wǎng)頁與普通桌面應(yīng)用一樣,響應(yīng)迅速,而不是像傳統(tǒng)網(wǎng)頁那樣,任何操作都需要等待頁面的刷新。AJAX是如何做到這一點(diǎn)的呢?有兩個(gè)秘密:第一,其實(shí)AJAX也會(huì)刷新頁面,只不過,AJAX可以只刷新部分頁面,而不是整個(gè)頁面;第二,AJAX的頁面刷新是異步的,就是說,用戶可以繼續(xù)他的其他操作,而不必等候刷新完成。當(dāng)用戶瀏覽一個(gè)基于AJAX的Web應(yīng)用時(shí),用戶的請(qǐng)求被提交給一個(gè)稱為AJAX引擎(AJAXEngine)的代理,這個(gè)AJAX引擎負(fù)責(zé)接收用戶請(qǐng)求,從Web服務(wù)器上獲取響應(yīng),并更新瀏覽器內(nèi)容。形象地說,傳統(tǒng)的Web應(yīng)用中,瀏覽器是直接和Web服務(wù)器打交道的,而在AJAX應(yīng)用中,瀏覽器和Web服務(wù)器之間出現(xiàn)了一個(gè)來回跑腿的“中介”,而且這個(gè)“中介”相當(dāng)?shù)那诳?,所以,能夠給瀏覽器提供更好的服務(wù),從而使用戶獲得更滿意的應(yīng)用體驗(yàn)。由于本系統(tǒng)涉及到許多數(shù)據(jù)的處理,這就需要有一個(gè)強(qiáng)大的后臺(tái)數(shù)據(jù)庫管理系統(tǒng)支持。目前主要的數(shù)據(jù)庫有:Access、FoxPro、Excel、Sybase、Oracle、Informix、SQLServer等,其中網(wǎng)絡(luò)型的SQLServer、Oracle產(chǎn)品安全性遠(yuǎn)遠(yuǎn)高于桌面型的Access、FoxPro等數(shù)據(jù)庫。本系統(tǒng)采用的是微軟公司的SQLServer2005。原因如下:第一,SQLServer與Windows2000Server服務(wù)器緊密集成,而Windows2000Server服務(wù)器具有良好的安全性,能夠排除所有未經(jīng)授權(quán)的非法用戶的訪問,確保了SQLServer2005服務(wù)器的安全性,符合系統(tǒng)對(duì)安全性的要求;第二,用戶可以使用Web瀏覽器查詢存儲(chǔ)在SQLServer2005數(shù)據(jù)庫中的數(shù)據(jù),符合系統(tǒng)遠(yuǎn)程訪問數(shù)據(jù)庫的要求;第三,容量龐大,每個(gè)數(shù)據(jù)庫中可創(chuàng)建多達(dá)20萬個(gè)數(shù)據(jù)表,數(shù)據(jù)表中的記錄的行數(shù)只受服務(wù)器硬盤空間的限制,符合系統(tǒng)的考題數(shù)目較多的要求。2.3編程語言、編程平臺(tái)及構(gòu)建開發(fā)環(huán)境介紹C#[4]是微軟公司發(fā)布的一種面向?qū)ο蟮?、運(yùn)行于.NETFramework之上的高級(jí)程序設(shè)計(jì)語言。C#看起來與Java有著驚人的相似;它包括了諸如單一繼承、接口、與Java幾乎同樣的語法和編譯成中間代碼再運(yùn)行的過程。但是C#與Java有著明顯的不同,它借鑒了Delphi的一個(gè)特點(diǎn),與COM(組件對(duì)象模型)是直接集成的,而且它是微軟公司.NETwindows網(wǎng)絡(luò)框架的主角。C#是一種安全的、穩(wěn)定的、簡單的、優(yōu)雅的,由C和C++衍生出來的面向?qū)ο蟮木幊陶Z言。它在繼承C和C++強(qiáng)大功能的同時(shí)去掉了一些它們的復(fù)雜特性(例如沒有宏以及不允許多重繼承)。C#綜合了VB簡單的可視化操作和C++的高運(yùn)行效率,以其強(qiáng)大的操作能力、優(yōu)雅的語法風(fēng)格、創(chuàng)新的語言特性和便捷的面向組件編程的支持成為.NET開發(fā)的首選語言。VisualStudio2005是基于.NET2.0框架的。它同時(shí)也能開發(fā)跨平臺(tái)的應(yīng)用程序,如開發(fā)使用微軟操作系統(tǒng)的手機(jī)的程序等??傮w來說是一個(gè)非常龐大的軟件,甚至包含代碼測試功能。通過將SDLC工具集成到UI級(jí)別的表面,VisualStudioTeamSystem提高了團(tuán)隊(duì)工作效率并增強(qiáng)了項(xiàng)目的可預(yù)見性,此外,過程集成并不增加工作量,而通常能夠降低與SDLC中所采納過程相關(guān)的開銷。盡管存在一些基本的工具可組成SDLC工具(例如,架構(gòu)師工具、測試工具等),但是SDLC并未限制住工具的數(shù)量。當(dāng)集成支持SDLC的工具時(shí),團(tuán)隊(duì)會(huì)發(fā)現(xiàn)在提高團(tuán)隊(duì)效率,同時(shí)降低復(fù)雜性這些方面的好處。VisualStudioTeamSystem將提供基本的平臺(tái),讓所有提供商能夠以一種普通的、公眾可理解的形式交換信息。這理所當(dāng)然地鑄造了一個(gè)充滿活力的合作伙伴體系,合作伙伴能夠構(gòu)建完全集成的工具,簡化構(gòu)建IT解決方案的復(fù)雜性,以及推動(dòng)信息交流和鼓勵(lì)團(tuán)隊(duì)協(xié)作。要獲得跨UI、數(shù)據(jù)和過程集成的最大價(jià)值,就需要擴(kuò)展性。擴(kuò)展性促成交互性。(1)網(wǎng)站開發(fā)環(huán)境網(wǎng)站開發(fā)語言:MicrosoftVisualStudio2005集成開發(fā)環(huán)境網(wǎng)站開發(fā)語言:ASP.NET+C#網(wǎng)站后臺(tái)數(shù)據(jù)庫:SQLSever2005開發(fā)環(huán)境運(yùn)行平臺(tái):Windows7旗艦版(2)服務(wù)器端操作系統(tǒng):Windows7旗艦版Web服務(wù)器:Internet信息服務(wù)(IIS)管理器數(shù)據(jù)庫服務(wù)器:SQLSever2005瀏覽器:IE6.0網(wǎng)站服務(wù)器運(yùn)行環(huán)境:Microsoft.NETFrameworkSDKv2.0(3)客戶端瀏覽器:IE6.0分辨率:最佳效果1024*768像素3系統(tǒng)需求分析與總體設(shè)計(jì)3.1系統(tǒng)總體功能業(yè)務(wù)分析本系統(tǒng)定位學(xué)生在線考試和管理員對(duì)試題、試卷的維護(hù)工作,具體來說系統(tǒng)的總體功能模塊包括以下幾個(gè)面:(1)學(xué)生注冊與登錄:學(xué)生可在線注冊并登錄該系統(tǒng);(2)在線考試:學(xué)生注冊并登錄后即可進(jìn)行在線考試,可以選擇考試的試卷,考試完畢后可查看自己的成績;(3)學(xué)生信息維護(hù):管理員可對(duì)所有注冊的學(xué)生的信息進(jìn)行查看、修改和刪除操作;(4)試題管理:管理員可以對(duì)考試試題進(jìn)行查看、修改和刪除管理,可以生成不同的試卷。(5)學(xué)生成績管理:管理員可以查看和刪除學(xué)生的考試結(jié)果信息。3.2數(shù)據(jù)流程圖數(shù)據(jù)流圖(DataFlowDiagram):簡稱DFD,它從數(shù)據(jù)傳遞和加工角度,以圖形方式來表達(dá)系統(tǒng)的邏輯功能、數(shù)據(jù)在系統(tǒng)內(nèi)部的邏輯流向和邏輯變換過程,是結(jié)構(gòu)化系統(tǒng)分析方法的主要表達(dá)工具及用于表示軟件模型的一種圖示方法。繪制數(shù)據(jù)流圖的基本要求:系統(tǒng)的頂層圖是用來表示整個(gè)系統(tǒng)的功能結(jié)構(gòu)。隨著數(shù)據(jù)分析活動(dòng)的逐漸深入,較高抽象級(jí)別上的復(fù)雜轉(zhuǎn)換可以精化為一系列的相互關(guān)聯(lián)的數(shù)據(jù)流和子轉(zhuǎn)換。數(shù)據(jù)流程圖(DFD)數(shù)據(jù)流圖描述系統(tǒng)的邏輯模型,在設(shè)計(jì)數(shù)據(jù)流圖時(shí)只需考慮系統(tǒng)必須完成的基本邏輯功能,完全不需考慮如何具體地實(shí)現(xiàn)這些。圖例: 外部項(xiàng) 加工 數(shù)據(jù)存儲(chǔ) 信息流或數(shù)據(jù)流在線考試系統(tǒng)的數(shù)據(jù)流程如圖3.1所示。圖3.1在線考試系統(tǒng)的數(shù)據(jù)流程圖3.3系統(tǒng)總體模塊設(shè)計(jì)本系統(tǒng)主要用于學(xué)生在線考試,管理員可對(duì)考試信息進(jìn)行修改,在線考試學(xué)生登錄流程圖與管理員登錄流程圖分別如圖3.2所示與3.3所示。是否同意考試規(guī)則是否同意考試規(guī)則選擇考試課程和套題寶準(zhǔn)備考試開始考試提交試卷查看考試結(jié)果注冊考生登錄?在線考試查詢成績開始結(jié)束否考生操作是否是圖3.2在線考試學(xué)生登錄流程圖對(duì)考生信息,考試信息,和管理員信息,考試套題和考試題目進(jìn)行添加,就該,刪除等管理對(duì)考生信息,考試信息,和管理員信息,考試套題和考試題目進(jìn)行添加,就該,刪除等管理管理員登錄?開始結(jié)束否是是圖3.3在線考試管理員登錄流程圖3.4數(shù)據(jù)庫設(shè)計(jì)在程序開發(fā)中,數(shù)據(jù)庫設(shè)計(jì)[5]是一個(gè)非常重要的環(huán)節(jié)。一個(gè)設(shè)計(jì)良好的數(shù)據(jù)庫結(jié)構(gòu),可以提高效率,方便維護(hù),并且為以后進(jìn)行功能的擴(kuò)充留有余地。這好比一高樓座大廈,有穩(wěn)固的地基,才能穩(wěn)如磐石,屹立不倒。本網(wǎng)站采用SQLSever2005[6]名稱為db_Examination,其中包含9張表。3.4.1數(shù)據(jù)庫概念設(shè)計(jì)通過對(duì)網(wǎng)站進(jìn)行的需求分析,網(wǎng)站流程設(shè)計(jì)以及系統(tǒng)功能結(jié)構(gòu)的確定,規(guī)劃出系統(tǒng)中使用的數(shù)據(jù)庫實(shí)體對(duì)象分別為“管理員信息”、“考試套題”、“考生成績”、“考生成績信息”。對(duì)網(wǎng)站進(jìn)行有效的管理就要設(shè)置一個(gè)或多個(gè)管理員,管理員實(shí)體包括管理員編號(hào)、管理員姓名、管理員密碼和注冊時(shí)間,管理員信息實(shí)體E-R圖如圖3.4所示。 考試套題套題名稱考試套題套題名稱所屬課程添加時(shí)間有效時(shí)間管理員管理員編號(hào)管理員姓名管理員編號(hào)管理員編號(hào)圖3.4管理員信息實(shí)體E-R圖 圖3.5考試套題E-R圖考試套題包括套題名稱、所屬課程、添加時(shí)間以及有效時(shí)間等屬性。考試套題E-R圖如圖3.5所示??忌畔?shí)體包括學(xué)生證號(hào)、姓名、性別、所學(xué)專業(yè)、注冊時(shí)間、登錄網(wǎng)站密碼、密碼提示問題、密碼提示答案以IP等屬性,考生信息實(shí)體E-R圖如圖3.6所示。學(xué)生證號(hào)學(xué)生證號(hào)密碼提示答案注冊IP地址密碼提示問題考生性別登錄網(wǎng)站密碼考生注冊時(shí)間考生姓名所學(xué)專業(yè)考生圖3.6考生信息實(shí)體E-R圖當(dāng)答完考題后可以對(duì)自己的成績進(jìn)行查詢,后臺(tái)管理員也可以對(duì)考生成績進(jìn)行管理??忌煽儼▽W(xué)生證號(hào)、所學(xué)課程、考生總分等??荚嚦煽冃畔?shí)體E-R圖如圖3.7所示。套題名稱套題名稱單選題分?jǐn)?shù)考生總分?jǐn)?shù)考生成績編號(hào)套題編號(hào)成績提交時(shí)間多選題分?jǐn)?shù)學(xué)生證號(hào)所學(xué)課程考生圖3.7考試成績信息實(shí)體E-R圖3.4.2數(shù)據(jù)庫邏輯設(shè)計(jì)管理員信息表用于保存管理員信息,tb_Administrator表的結(jié)構(gòu)設(shè)計(jì)如下:(1)ID是表的關(guān)鍵字,唯一標(biāo)識(shí),不可為空。類型為bigint,長度為8。(2)Name是管理員登錄名稱,可為空。類型為varchar,長度為50。(3)PWD是管理員密碼,可為空。類型為varchar,長度為60。(4)JoinTime是加入時(shí)間,可為空。類型為datetime,長度為8。默認(rèn)值為getdate()??忌n程信息表用于保存指定專業(yè)所包含的課程信息,tb_Lesson表的結(jié)構(gòu)設(shè)計(jì)如下:(1)ID是表的關(guān)鍵字,唯一標(biāo)識(shí),不可為空。類型為bigint,長度為8。(2)Name是課程名稱,可為空。類型為varchar,長度為60。(3)ofProfession是所屬專業(yè)的編號(hào),可為空。類型為bigint,長度為8。(4)JoinTime是添加時(shí)間,可為空。類型為datetime,長度為8。默認(rèn)值為getdate()??忌鷮I(yè)信息表用于保存考試所涉及到的專業(yè)信息,tb_Profession表的結(jié)構(gòu)設(shè)計(jì)如下:(1)ID是表的關(guān)鍵字,唯一標(biāo)識(shí),不可為空。類型為bigint,長度為8。(2)Name是專業(yè)名稱,可為空。類型為varchar,長度為200。(3)JoinTime是添加時(shí)間,可為空。類型為datetime,長度為8。默認(rèn)值為getdate()。考試試卷信息表用于保存各套題中所包含的的詳細(xì)考試題目,tb_Questions表的結(jié)構(gòu)設(shè)計(jì)如下:(1)ID是表的關(guān)鍵字,唯一標(biāo)識(shí),不可為空。類型為bigint,長度為8。(2)Que_subject是試題主題,可為空。類型為varchar,長度為50。(3)Que_type是試題類型,可為空。類型為char,長度為10。(4)Que_joindate是試題添加時(shí)間,可為空。類型為datetime,長度為8。默認(rèn)值為getdate()。(5)Que_lessonid是所屬課程號(hào),可為空。類型為int,長度為4。(6)Que_professionid是所屬專業(yè)號(hào),可為空。類型為int,長度為4。(7)Que_toatiid是所屬套題編號(hào),可為空。類型為bigint,長度為8。(8)OptionA、OptionB、OptionC、OptionD,分別為選項(xiàng)A、B、C、D。類型均為varchar,長度為50。(9)Que_answer是試題答案,可為空。類型為char,長度為10。(10)note是注釋,可為空。類型為varchar,長度為50。用于試題備注。生信息表用于保存網(wǎng)站注冊的學(xué)生信息,tb_Student表的結(jié)構(gòu)設(shè)計(jì)如下:(1)ID是表的關(guān)鍵字,代表學(xué)生證號(hào),不可為空。類型為varchar,長度為50。(2)Name是學(xué)生姓名,可為空。類型為varchar,長度為20。(3)PWD是學(xué)生登錄密碼,可為空。類型為varchar,長度為20。(4)Sex是學(xué)生性別,可為空。類型為varchar,長度為2。(5)JoinTime是加入時(shí)間,可為空。類型為datetime,長度為8。默認(rèn)值為getdate()。(6)Questions與Answer分別為密碼問題、密碼答案,可為空。類型均為varchar,長度為50。(7)profession是所學(xué)專業(yè)號(hào),可為空。類型為bigint,長度為8。(8)IPAddress是IP地址,可為空。類型為char,長度為30。用于防止重復(fù)考試。考試成績信息表用于保存考生的考試成績,tb_StuResult表的結(jié)構(gòu)設(shè)計(jì)如下:(1)Res_id是表的關(guān)鍵字,唯一標(biāo)識(shí),不可為空。類型為bigint,長度為8。(2)Stu_id與Which_lesson、taotiname分別是所屬學(xué)生編號(hào)、所屬課程名稱、所屬套題名稱,可為空。類型均為varchar,長度為50。(3)taotiid是所屬套題編號(hào),可為空。類型為bigint,長度為8。(4)Res_single與Res_more分別為單選成績、多選成績,可為空。類型均為int,長度為4。(5)Res_subdate是成績提交時(shí)間,可為空。類型為datetime,長度為8。默認(rèn)值為getdate()。考試套題信息表用于保存課程所對(duì)應(yīng)的套題信息,tb_Taoti表的結(jié)構(gòu)設(shè)計(jì)如下:(1)ID是表的關(guān)鍵字,唯一標(biāo)識(shí),不可為空。類型為bigint,長度為8。(2)Name是套題名稱,可為空。類型為varchar,長度為50。(3)LessonID是所屬課程號(hào),可為空。類型為bigint,長度為8。(4)JoinTime與Limittime分別是添加時(shí)間、有效時(shí)間,可為空。類型均為datetime,長度為8。Jointime默認(rèn)值為getdate()。3.5網(wǎng)站文件組織結(jié)構(gòu)在進(jìn)行編碼之前,為了便于系統(tǒng)文件的管理,按照功能模塊劃分,將一些Web窗體文件存放在同一個(gè)文件夾里。Default.aspx為網(wǎng)站首頁,與密碼找回頁1:InfoPwd.aspx、密碼找回頁2:InfoPwdd.aspx、密碼找回頁3:InfoPwddd.aspx、考生注冊頁:zhuce.aspx以及網(wǎng)站配置文件web.config放于主文件夾第一級(jí)目錄中。主文件夾中App_Code文件夾為自定義公共類文件夾,其中有公共類文件為Database.cs;App_Data為數(shù)據(jù)庫文件夾;App_Themes文件夾里有主題文件夾,用于存放網(wǎng)站的外觀文件;HouAdmin文件夾存放后臺(tái)網(wǎng)頁文件;圖片文件則放于igm文件中;Qianuser文件夾放置前臺(tái)管理文件,其中Info_StuResult.aspx為考生成績查詢頁,StarExamfra.aspx為在線考試頁,XuanZe_TaoTi.aspx為在線考試套題頁,zaixian_kaoshi.aspxk為考生規(guī)則頁,ZhunBeiKaoShi.aspx為在線考試準(zhǔn)備頁。4系統(tǒng)詳細(xì)設(shè)計(jì)4.1公共類設(shè)計(jì)在網(wǎng)站開發(fā)項(xiàng)目[7]中通常以類的形式來組織、封裝一些常用的方法和事件,有利于代碼的維護(hù),在編程過程中可以起到事半功倍的效果。在線考試網(wǎng)頁中創(chuàng)建了一個(gè)公共類Datacon,在此公共類中共創(chuàng)建6個(gè)方法:getcon,eccom,ecadabind,ecDropDpwnList,ecadabindinfostring,ExceRead。4.1.1數(shù)據(jù)庫連接方法getcon方法:用于連接在線考試網(wǎng)的數(shù)據(jù)庫,類型為Sqlconnection。相關(guān)設(shè)計(jì)如下:publicSqlConnectiongetcon(){//定義數(shù)據(jù)庫連接字符串stringstrCon="DataSource=PC-20130423TVFX;DataBase=db_Examination;UserID=sa;PWD=sa";//創(chuàng)建一個(gè)新的數(shù)據(jù)庫連接SqlConnectionsqlCon=newSqlConnection(strCon);//返回SqlConnection類型的值returnsqlCon;}DataSource為本地計(jì)算機(jī)名字;DataBase為數(shù)據(jù)庫名字;UserID和PWD與SQLServer2005的登錄名和密碼相一致均為sa。4.1.2執(zhí)行數(shù)據(jù)庫命令的方法eccom方法:用于執(zhí)行對(duì)數(shù)據(jù)庫操作的SQL語句命令,如刪除操作命令、修改操作命令等。在ecccom方法中首先傳一個(gè)SQL語句,然后與SQLServer數(shù)據(jù)庫建立連接,應(yīng)用SqlCommand對(duì)象執(zhí)行所傳來的SQL語句,最后應(yīng)用try-catch-finally語句進(jìn)行異常處理,如果執(zhí)行該SQL語句則返回true,反之則返回false。相關(guān)設(shè)計(jì)如下:(1)在eccom方法中建立一個(gè)SqlConnection類的對(duì)象,SqlConnection類是SQLServer數(shù)據(jù)庫一個(gè)打開的連接。(2)然后調(diào)用SqlConnection類對(duì)象的open()方法用于打開數(shù)據(jù)庫連接。(3)建立SqlCommand類的對(duì)象,主要是要對(duì)SQLServer數(shù)據(jù)庫執(zhí)行一個(gè)SQL語句或存儲(chǔ)過程,應(yīng)用SqlCommand對(duì)象執(zhí)行所傳來的SQL語句。(4)在try函數(shù)中調(diào)用mycommand.ExecuteNonQuery()方法,其方法主要是對(duì)連接執(zhí)行SQL語句并返回受影響的行數(shù)。(5)最后關(guān)閉數(shù)據(jù)庫。在進(jìn)行數(shù)據(jù)庫相關(guān)操作過程中,需通過using命令,導(dǎo)入命名空間usimgSystem.Data.SqlClient,否則程序編譯失敗。4.1.3將數(shù)據(jù)綁定到表格控件的方法Ecadabind方法:用于將數(shù)據(jù)綁定到表格控件中。在公共類中為實(shí)現(xiàn)該方法,編寫一個(gè)Ecadabind(GridViewgv,stringsqlstr4)方法,用來執(zhí)行SQL語句,返回bool型。該方法主要執(zhí)行SqlDataAdapter中的語句,并將其綁定到GridView控件上,相應(yīng)功能執(zhí)行成功后返回true,否則返回false。相關(guān)設(shè)計(jì)如下:(1)在Ecadabind方法中調(diào)用getcon方法定義新的數(shù)據(jù)庫連接并打開數(shù)據(jù)庫連接。(2)定義并初使化數(shù)據(jù)適配器,SqlDataAdapter類表示用于填充DataSet和更新SQLServer數(shù)據(jù)庫的一組命令和一個(gè)數(shù)據(jù)庫連接。(3)創(chuàng)建一個(gè)數(shù)據(jù)集mydataset。(4)將數(shù)據(jù)適配器中的數(shù)據(jù)填充到數(shù)據(jù)集中。(5)將此數(shù)據(jù)集作為表格控件的數(shù)據(jù)源。(6)在try方法中綁定數(shù)據(jù)庫中數(shù)據(jù)并返回這個(gè)數(shù)據(jù)集。4.1.4將數(shù)據(jù)綁定到下拉列表框的方法ecDropDpwnList方法:用于將數(shù)據(jù)綁定到下拉列表框中。將數(shù)據(jù)綁定到下拉列表框中主要應(yīng)用了ecDropDpwnList(DropDpwnListDDL,stringsqlstr3,stringsDTF,stringDVF)方法。該方法首先傳遞了4個(gè)值,分別為DropDpwnList控件、SQL語句、列表項(xiàng)提供的內(nèi)容字段和列表項(xiàng)提供值;然后與SQLServer數(shù)據(jù)庫建立連接,應(yīng)用SqlDataAdapter對(duì)象填充數(shù)據(jù)集并指定DropDpwnList控件的數(shù)據(jù)源;最后設(shè)置列表項(xiàng)提供的內(nèi)容字段和列表項(xiàng)提供值所綁定的數(shù)據(jù)源,應(yīng)用try-catch-finally語句進(jìn)行異常處理,如果DropDpwnList控件執(zhí)行DataBind方法返回true,否則返回false。相關(guān)設(shè)計(jì)如下:(1)sqldataadapter.Fill方法是可以重載的,再次主要實(shí)現(xiàn)將數(shù)據(jù)集填充到DataSet中。DataSet是ADO.NET結(jié)構(gòu)的主要組件,它是從數(shù)據(jù)源中檢索到的數(shù)據(jù)在內(nèi)存中的緩存。用于創(chuàng)建和刷新DataSet并依次更新原始數(shù)據(jù)的步驟包括:通過DataAdapter使用數(shù)據(jù)源中的數(shù)據(jù)生成和填充DataSet中的每個(gè)DataTable;通過添加、更新或刪除DataSRow對(duì)象更改單個(gè)DataTable對(duì)象中的數(shù)據(jù);電泳GetChanges方法以創(chuàng)建只反映對(duì)數(shù)據(jù)進(jìn)行的更改的第二個(gè)DataSet;調(diào)用DataAdapter的Update方法,并將第二個(gè)DataSet作為參數(shù)傳遞;調(diào)用Merge方法將第二個(gè)DataSet中的更改合并到第一個(gè)中;針對(duì)DataSet調(diào)用AcceptChanges?;蛘?,調(diào)用RejectChanges以取消更改。4.1.5在表格控件中獲取主鍵字段的方法ecadabindinfostring方法:用于將數(shù)據(jù)綁定到表格控件中,并獲取數(shù)據(jù)表中的主鍵字段。在表格控件中獲取主鍵字段的方法,主要應(yīng)用了公共類中的ecadabindinfostring(GridViewgv,stringsqlstr5,stringDNK)方法,該方法與ecadabind方法類似。該方法用來執(zhí)行SQL語句,返回bool型,主要執(zhí)行SqlDataAdapter中的語句,并將其綁定到GridView控件上顯示其主關(guān)鍵字段的名稱,相應(yīng)功能執(zhí)行成功返回true.否則返回false。相關(guān)設(shè)計(jì)如下:SqlConnectioncon=this.getcon();con.Open();SqlDataAdaptermydataadapter=newSqlDataAdapter(sqlstr5,con);DataSetmydataset=newDataSet();mydataadapter.Fill(mydataset);gv.DataSource=mydataset;gv.DataKeyNames=newstring[]{DNK};利用DataKeyNames方法在GridView控件上顯示數(shù)據(jù)源的主關(guān)鍵字的名稱。4.1.6數(shù)據(jù)讀取的方法exceRead方法:用于讀取數(shù)據(jù)庫中的數(shù)據(jù),返回一個(gè)SqlDataReader。數(shù)據(jù)讀取方法主要應(yīng)用到公共類中的exceRead方法。首先調(diào)用公共類中的getcon方法創(chuàng)建一個(gè)新的數(shù)據(jù)庫連接對(duì)象,接著創(chuàng)建一個(gè)SqlCommang命令對(duì)象,然后應(yīng)用該命令對(duì)象的ExecuteReader方法創(chuàng)建一個(gè)數(shù)據(jù)閱讀器,用來讀取數(shù)據(jù)庫中的數(shù)據(jù),最后返回一個(gè)SqlDataReader類對(duì)象。相關(guān)設(shè)計(jì)如下:SqlConnectioncon=this.getcon();con.Open();//創(chuàng)建一個(gè)SqlCommand對(duì)象,表示要執(zhí)行的SqlCom語句或存儲(chǔ)過程SqlCommandsqlcom=newSqlCommand(SqlCom,con);SqlDataReaderread=sqlcom.ExecuteReader();returnread;4.2前臺(tái)設(shè)計(jì)根據(jù)網(wǎng)絡(luò)在線考試網(wǎng)的特點(diǎn),可以將其分為前臺(tái)和后臺(tái)兩個(gè)部分進(jìn)行設(shè)計(jì)。前臺(tái)主要用于考生注冊和登錄系統(tǒng)、在線考試、查詢成績以及退出登錄。網(wǎng)絡(luò)在線考試網(wǎng)的前臺(tái)功能如圖4.1所示。網(wǎng)絡(luò)在線考試網(wǎng)前臺(tái)系統(tǒng)網(wǎng)絡(luò)在線考試網(wǎng)前臺(tái)系統(tǒng)考生注冊開考試結(jié)果查詢成績退出系統(tǒng)在線考試找回密碼考生/管理員登錄準(zhǔn)備考試選擇考試課程和套題考試規(guī)則開始考試圖4.1網(wǎng)絡(luò)在線考試網(wǎng)前臺(tái)功能模塊圖 4.2.1在線考試登錄頁設(shè)計(jì)考生和管理員需要通過登錄頁面進(jìn)入在線考試網(wǎng)??忌诘卿浽诰€考試網(wǎng)之前,首先需要通過登錄頁面進(jìn)行注冊。為了防止考生忘記密碼,提供了找回密碼的功能。在線考試網(wǎng)登錄頁面的運(yùn)行效果如圖4.2所示。圖4.2在線考試網(wǎng)首頁 本模塊使用的數(shù)據(jù)表:tb_Administrator、tb_Student,Default.aspx頁面為主頁面。相關(guān)設(shè)計(jì)如下:(1)在頁面中拖放1個(gè)TextBox控件,名稱為txtValidate,用于錄入登錄驗(yàn)證碼。在Page_Load事件中,首先調(diào)用隨機(jī)驗(yàn)證碼,應(yīng)用驗(yàn)證碼技術(shù)可以防止用戶惡意注冊。if(!IsPostBack){Randomrnd=newRandom();this.labValidate.Text=rnd.Next(1000,9999).ToString();}利用if語句判斷是否首次加載。在頁面中拖放1個(gè)Button控件,控件名稱為BtnLogin,Text屬性設(shè)置為“登錄”,用于考生登錄。在處理登錄頁面提交數(shù)據(jù)時(shí)。首先會(huì)根據(jù)“管理員登錄”復(fù)選框的值來判斷是否登錄管理員頁面,所以利用一個(gè)CheckBox控件驗(yàn)證是否為管理員登錄,將控件命名為cblAdminLog。如果該復(fù)選框被選中則執(zhí)行核對(duì)用戶名、密碼和驗(yàn)證碼而進(jìn)入管理員頁面,否則進(jìn)入考生頁面。輸入完相關(guān)的用戶名。密碼和驗(yàn)證碼后,單擊“確定”按鈕,提交登錄信息。如果是管理員則調(diào)用if條件中的getcom(1)方法;如果不是管理員登錄,調(diào)用else中g(shù)etcom(2)方法。在自定義getcom()方法中,如果是case1要判斷數(shù)據(jù)庫中是否存在數(shù)據(jù);如果是case2要設(shè)置SqlCommand命令對(duì)象的Text屬性,還得定義一個(gè)int型變量count2,返回所查詢數(shù)據(jù)表的第一行第一列,如果count2>0,應(yīng)用Application對(duì)象保存用戶ID及密碼。在主頁中必定會(huì)設(shè)置忘密以便考生找回密碼。所以應(yīng)有一個(gè)名為BtnPWD的Button控件來作為考生忘密的按鈕。除此之外,應(yīng)添加一個(gè)table控件作為整個(gè)頁面布局;一個(gè)名為BtnZhuce的Button控件,用于考生注冊;2個(gè)TextBox控件,名稱分別為txtPwd和txtUserName,分別用于錄入登錄密碼錄入登錄考生學(xué)生證號(hào)。4.2.2密碼找回頁設(shè)計(jì)很多情況下,考生會(huì)將密碼遺忘或丟失,這樣就無法登錄自己的學(xué)生賬號(hào),為了避免造成不必要的損失,設(shè)計(jì)了密碼找回功能。密碼找回主要分為3個(gè)頁面來完成。頁面1:輸入已注冊的學(xué)生證號(hào);頁面2:系統(tǒng)會(huì)根據(jù)輸入的學(xué)生證號(hào)把相應(yīng)的密碼問題列出來,然后輸入密碼問題答案;頁面3,如果問題答案正確,則成功找回密碼。(1)在登錄頁面中單擊“忘密”按鈕,進(jìn)入忘記密碼頁面1。在頁面中輸入學(xué)生證號(hào),單擊“確定”按鈕,系統(tǒng)會(huì)自動(dòng)核對(duì)其是否存在。忘記密碼頁面1的運(yùn)行效果如圖4.3所示。圖4.3忘記密碼頁面1相關(guān)設(shè)計(jì)如下:if(count>0){Session["ID"]=txtStuID.Text;Page.Response.Redirect("InfoPwdd.aspx");}else{Response.Write("<script>alert('無此學(xué)生編號(hào)、或輸入有誤');location='javascript:history.go(-1)'</script>");return;}If語句用來判斷輸入的學(xué)生證號(hào)是否存在,如果存在,則頁面直接跳轉(zhuǎn)找回密碼頁面2,并利用Session對(duì)象保存用戶ID。(2)如果輸入的學(xué)生證號(hào)存在,則進(jìn)入忘記密碼頁面2,在該頁面中需要輸入該學(xué)生在注冊時(shí)設(shè)置的密碼問題的答案,然后單擊“確定”按鈕。如核對(duì)無誤,則進(jìn)入忘記密碼頁面3,并在頁面中顯示出該學(xué)生的密碼;如果不正確,則顯示提示信息。忘記密碼也2和忘記密碼頁3運(yùn)行效果分別如圖4.4和4.5所示。圖4.4忘記密碼頁面2圖4.5忘記密碼頁面3相關(guān)設(shè)計(jì)如下:SqlCommandmycom=newSqlCommand("selectcount(*)fromtb_Studentwhereanswer='"+txtAnsPwd.Text+"'andid="+Convert.ToString(Session["ID"]),con);intcount=Convert.ToInt32(mycom.ExecuteScalar());if(count>0){Page.Response.Redirect("InfoPwddd.aspx");}else{Response.Write("<script>alert('提示問題答案輸入有誤!');location='javascript:history.go(-1)'</script>");return;}在創(chuàng)建SqlCommand對(duì)象以后,執(zhí)行SQL語句命令,用if語句判斷數(shù)據(jù)庫是否存在考生數(shù)據(jù)。4.2.3考生注冊頁設(shè)計(jì)要進(jìn)入在線考試系統(tǒng),考生首先需要注冊一個(gè)學(xué)生證號(hào)。單擊在線考試系統(tǒng)登錄頁中“注冊”按鈕,進(jìn)入考生注冊頁面。考生注冊頁面中輸入考生的基本信息,包括學(xué)生證號(hào)、學(xué)生姓名、密碼、密碼問題、密碼答案、性別和所學(xué)專業(yè),運(yùn)行效果如圖4.6所示。圖4.6考生注冊頁另外,該考生注冊頁應(yīng)用了AJAX無刷新檢測用戶名的技術(shù)。為了防止學(xué)生證號(hào)重復(fù),可以通過單擊“檢測注冊號(hào)”按鈕進(jìn)行檢測。考生輸入注冊的學(xué)生證號(hào)后通過檢測顯示在數(shù)據(jù)庫中無此號(hào),可以注冊。運(yùn)行效果如圖4.7所示。圖4.7檢測考生注冊頁該網(wǎng)頁的設(shè)計(jì)使用的數(shù)據(jù)表:tb_Profession、tb_Student。相關(guān)設(shè)計(jì)如下:在后臺(tái)代碼的Page_Load事件中,首先調(diào)用公共類中的ecDropDownList方法,將考生姓名綁定到DropDownList控件。(2)添加一個(gè)Button控件,名為btnRes,用于考生注冊。單擊該注冊頁面中的“注冊”按鈕,觸發(fā)其Click事件,將注冊信息添入到數(shù)據(jù)庫中,調(diào)用公共類中的eccom,執(zhí)行SQL語句命令。相關(guān)設(shè)計(jì)如下:dataconn.eccom("insertintotb_Student"+"(ID,Name,PWD,question,answer,Sex,profession)"+"values('"+this.txtStuID.Text+"','"+this.txtStuName.Text+"','"+this.txtStuPwd.Text+"','"+this.txtQuePwd.Text+"','"+this.txtAnsPwd.Text+"','"+this.ddlSex.Text+"',"+Convert.ToInt32(ddlProfession.SelectedValue)+")");(3)為避免考生輸入的學(xué)生證號(hào)與已注冊的學(xué)生證號(hào)重復(fù),導(dǎo)致注冊失敗,在考生注冊頁面中添加了一個(gè)“檢測注冊號(hào)”按鈕,來檢查該注冊的學(xué)生證號(hào)是否已經(jīng)存在。在該按鈕觸發(fā)事件中,主要應(yīng)用了數(shù)據(jù)閱讀器讀取數(shù)據(jù)庫中數(shù)據(jù)判斷注冊號(hào)是否存在。相關(guān)設(shè)計(jì)如下:調(diào)用公共類中的.ExceRead方法,讀取數(shù)據(jù)庫中的數(shù)據(jù):SqlDataReaderread=dataconn.ExceRead("select*fromtb_StudentwhereID='"+this.txtStuID.Text+"'"); 4.2.4在線考試頁設(shè)計(jì)在線考試頁的主要功能是允許考生在網(wǎng)站上針對(duì)指定的專業(yè)和課程進(jìn)行考試。在該頁中,考生首先需要閱讀考試規(guī)則,在同意所列出的考試規(guī)則的前提下,才能選擇考試課程和套題;然后進(jìn)入考試進(jìn)行答題,如圖4.8所示。圖4.8在線考試頁當(dāng)考生提交試卷或者到達(dá)考試結(jié)束時(shí)間時(shí),系統(tǒng)將自動(dòng)對(duì)考生提交的試卷進(jìn)行評(píng)分,并給出最終考試成績。(1)考生在線答卷時(shí)首先需要選擇套題,系統(tǒng)需要根據(jù)考生提交的科目和套題信息從數(shù)據(jù)庫中獲取相應(yīng)題目,然后DataList控件顯示出來。這里首先需要通過Application變量獲取上一頁中考生選擇的科目和套題信息,然后根據(jù)這些信息從數(shù)據(jù)庫中提取考試題目。相關(guān)設(shè)計(jì)如下:protectedvoidgetCom(inti){stringdd1=Application["d1"].ToString();stringdd2=Application["d2"].ToString();}(2)首先創(chuàng)建公共類Datacon的類對(duì)象,以便在后面程序調(diào)用其方法,然后自定義4個(gè)int類型的全局變量-int_row1,int_row2,int_row1Point,int_row1Point,用來分別表示單選題號(hào)、多選題號(hào)、單選分?jǐn)?shù)和多選分?jǐn)?shù)。在頁面加載的Page_Load事件中編寫如下代碼,用于從數(shù)據(jù)庫中提取出相應(yīng)題目。相關(guān)設(shè)計(jì)如下:protectedvoidPage_Load(objectsender,EventArgse){if(!IsPostBack){this.getCom(1);this.getCom(2);}}(3)單擊“交卷”按鈕,首先通過Session變量獲取學(xué)生ID和其選擇的科目及套題,然后調(diào)用getCom方法來執(zhí)行提交考卷操作。相關(guān)設(shè)計(jì)如下:Label3.Visible=Label4.Visible=Label7.Visible=Label8.Visible=Label9.Visible=Label10.Visible=true;this.lblStuID.Text=Session["StuName"].ToString();this.lblSubject.Text=Session["SelLession"].ToString();this.lblQuestion.Text=Session["SelTitle"].ToString();this.getCom(3);this.getCom(4);this.lblTotal.Text=Convert.ToString(int_row1Point+int_row2Point);dataconn.eccom("insertintotb_StuResult"+"(stu_id,which_lesson,taotiid,taotiname,res_single,res_more)"+"values('"+lblStuID.Text+"','"+lblSubject.Text+"',"+Application["d2"].ToString()+",'"+lblQuestion.Text+"',"+int_row1Point+","+int_row2Point+")");this.getCom(5);Response.Write("<scriptlanuage=javascript>alert('您確定要交卷嗎?');localtion='StartExamfra.aspx';</script>");分別將顯示考生證號(hào)、考試得分等的Lable控件可視化;分別調(diào)用.getCom(3)、getCom(4)核對(duì)單選與多選答案,最后計(jì)算總分。圖4-3免費(fèi)供求信息發(fā)免費(fèi)供求信技術(shù)分析:當(dāng)用戶發(fā)布供求信息通}4.3后臺(tái)設(shè)計(jì)后臺(tái)主要用于管理員對(duì)考生信息、考題信息、考生成績信息、考試套題和課程信息等進(jìn)行管理。網(wǎng)絡(luò)考試在線考試網(wǎng)后臺(tái)功能結(jié)構(gòu)圖如圖4.9所示。網(wǎng)絡(luò)在線考試網(wǎng)后臺(tái)系統(tǒng)網(wǎng)絡(luò)在線考試網(wǎng)后臺(tái)系統(tǒng)管理員信息管理考生信息管理專業(yè)信息管理課程信息管理套題信息管理考試題目管理考生成績管理考試試題添加退出管理添加管理員修改管理員刪除管理員查詢管理員添加考試課程刪除考試課程修改考試課程查詢考試課程查詢考試成績刪除考試成績圖4.9網(wǎng)絡(luò)考試在線考試網(wǎng)后臺(tái)功能模塊圖4.3.1考試套題管理頁設(shè)計(jì)考試套題管理頁的主要功能包括考試套題進(jìn)行添加、查詢、修改和刪除操作。添加考試套題信息時(shí),需要首先在文本框中輸入所添加的套題名稱,并在下拉列表框中選擇所屬課程名,然后在進(jìn)行添加操作;在考試套題信息列表頁面中,可以通過選擇不同的查詢條件(如套題名稱和所屬課程)并輸入相關(guān)的關(guān)鍵字,來實(shí)現(xiàn)查詢操作;根據(jù)實(shí)際需要,還可以實(shí)時(shí)更新考試套題中的詳細(xì)信息或者刪除考試套題??荚嚬芾眄撁娴倪\(yùn)行效果圖如4.10所示。圖4.10在線考試網(wǎng)考試套題管理頁面在考試套題信息“查詢”按鈕事件中主要應(yīng)用到了SQLServer視圖數(shù)據(jù)處理技術(shù),該頁創(chuàng)建的視圖名為kecheng_taoti_view,建立該視圖的目的主要是從tb_Lesson和tb_TaoTi兩張表中檢索出包括套題名稱、所屬課程和加入時(shí)間的信息。相關(guān)設(shè)計(jì)如下:需要調(diào)用ecadabind方法綁定查詢信息。dataconn.ecadabind(gvQueInfo,"Select*Fromkecheng_taoti_viewWhere"+ddlQueName.SelectedValue+"Like'%"+txtSelect.Text+"%'");套題信息列表通過ASP.NET2.0提供的GridView控件把考試套題的羈絆信息顯示出來。在每條信息后設(shè)置執(zhí)行修改及刪除功能的超鏈接按鈕。每次登錄此頁面時(shí)程序會(huì)自動(dòng)執(zhí)行后臺(tái)Page_Load頁面加載事件中的SQL語句,將檢索的數(shù)據(jù)通過GridView控件顯示在頁面中,用于綁定考試套題信息。GridView控件在主要屬性設(shè)置上,將AllowPsging屬性設(shè)置為True(用于分頁),AutoGenerateColumns屬性為False(取消自動(dòng)生成列),PageSize屬性設(shè)置為6(設(shè)置分頁數(shù)),SkinID屬性設(shè)置為gvSkin(應(yīng)用主題)。編寫此代碼前,首先在命名空間區(qū)域引用usingSystem.Data.SqlClient命名空間,然后在Page_Load頁面加載事件中定義執(zhí)行需要顯示在GridView控件中信息的SQL語句,通過調(diào)用公共類執(zhí)行該語句完成數(shù)據(jù)顯示操作。在GridView控件代碼在對(duì)行進(jìn)行了數(shù)據(jù)綁定后激發(fā)。后臺(tái)主要實(shí)現(xiàn)數(shù)據(jù)顯示功能的相關(guān)設(shè)計(jì)如下:if(e.Row.RowType==DataControlRowType.DataRow){e.Row.Cells[2].Text=Convert.ToString(Convert.ToDateTime(e.Row.Cells[2].Text).ToShortDateString());}if(e.Row.RowType==DataControlRowType.DataRow){((LinkButton)(e.Row.Cells[4].Controls[0])).Attributes.Add("onclick","returnconfirm('確定刪除嗎?')");}雙擊前臺(tái)“查詢”按鈕,同時(shí)會(huì)進(jìn)入此按鈕后臺(tái)的Click單擊事件中,然后在Click單擊事件中定義執(zhí)行模糊查詢的SQL語句,通過調(diào)研公共類執(zhí)行該語句,將結(jié)果顯示在GridView控件中完成查詢操作。拖一個(gè)Button控件名為btnSelect用于查詢考試套題;一個(gè)TextBox控件,名為txtKey,用于輸入查詢的關(guān)鍵字;一個(gè)DropDownList控件名為ddlSelect,是下拉選擇,用于設(shè)置查詢條件。相關(guān)設(shè)計(jì)如下:如果txtSelect.Txt為空,則調(diào)用ecadabindinfostring方法綁定數(shù)據(jù)庫信息dataconn.ecadabindinfostring(gvQueInfo,"Select*Fromkecheng_taoti_viewORDERBYIdDESC","ID");如果txtSelect.Txt不為空,則調(diào)用ecadabind方法綁定查詢信息。dataconn.ecadabind(gvQueInfo,"Select*Fromkecheng_taoti_viewWhere"+ddlQueName.SelectedValue+"Like'%"+txtSelect.Text+"%'");當(dāng)管理員單擊某記錄的“修改”鏈接后,即可進(jìn)入套題信息修改頁面TaotiUpdate.aspx。在該頁的Page_Load事件代碼中,相關(guān)設(shè)計(jì)如下:首先判斷是否是首次加載,如果是則調(diào)用公共類中的ecDropDownList方法,將考生所學(xué)專業(yè)綁定到下拉列表框中,調(diào)用公共類中的getcon方法,之后創(chuàng)建一個(gè)新的數(shù)據(jù)庫連接,定義并初始化一個(gè)數(shù)據(jù)適配器。并創(chuàng)建一個(gè)DataSet數(shù)據(jù)集,將數(shù)據(jù)適配器中的數(shù)據(jù)填充到數(shù)據(jù)集mydataset中,在mydataset數(shù)據(jù)集中創(chuàng)建tb_TaoTi的默認(rèn)視圖,然后將輸入的套題名稱轉(zhuǎn)換成字符串,最后關(guān)閉數(shù)據(jù)庫。為了方便系統(tǒng)管理,在考試考試套題管理頁中每條記錄后添加一個(gè)“刪除”超鏈接按鈕,當(dāng)管理員單擊此鏈接按鈕時(shí),系統(tǒng)自動(dòng)刪除該在線考試套題信息。實(shí)現(xiàn)刪除功能的相關(guān)設(shè)計(jì)如下:protectedvoidGridView1_RowDeleting(objectsender,GridViewDeleteEventArgse){//調(diào)用公共類中的eccom方法,執(zhí)行SQL語句dataconn.eccom("deletefromtb_TaoTiwhereID='"+gvQueInfo.DataKeys[e.RowIndex].Value+"'");//跳轉(zhuǎn)后臺(tái)套題管理頁P(yáng)age.Response.Redirect("taoti_xinxi.aspx");}4.3.2考試題目管理頁面設(shè)計(jì)考試題目管理頁的主要功能包括對(duì)考試題目進(jìn)行添加、查詢、修改和刪除操作。添加考試題目信息時(shí),需要選擇所屬的考試專業(yè)、課程和套題,然后再進(jìn)行添加操作;在考試題目信息列表頁面中,可以通過選擇不的查詢條件(列如,考試類型、所屬課程、所屬套題和加入時(shí)間)并輸入相應(yīng)的關(guān)鍵字,來實(shí)現(xiàn)查詢操作;根據(jù)實(shí)際需要,還可以實(shí)時(shí)更新考試題目中的詳細(xì)信息或者刪除考試題目??荚囶}目管理頁面運(yùn)行效果如圖4.11所示。圖4.11考試題目管理頁考試題目管理頁頁面設(shè)計(jì)中,將顯示考試題目的表格控件GridView控件外觀應(yīng)用了ASP.NET2.0中的主題外觀文件(后綴為.skin的文件)。ASP.NET2.0[8]提供了一種名為“主題”的新功能。此功能可應(yīng)用于任何站點(diǎn),通過更改主題即可輕松的維護(hù)對(duì)站點(diǎn)的樣式更改,而無須對(duì)站點(diǎn)各頁進(jìn)行編輯;還可以與其他開發(fā)人員共享主題??碱}的刪除、查詢操作與考試套題管理頁的刪除和查詢操作基本相同。在如圖4.12頁面中選擇所要添加的試題屬于哪個(gè)專業(yè)、哪門課程、哪一套題,并把所選項(xiàng)通過Session變量傳遞到InserShiTi.aspx頁面。“選擇”按鈕事件的相關(guān)設(shè)計(jì)如下:利用Session變量對(duì)象保存考試專業(yè)信息,考試課程信息、考試套題信息。Session["drop1"]=ddlProfession.Text;Session["drop2"]=ddlLesson.Text;Session["drop3"]=ddlQueName.Text;if(this.ddlLesson.Text==""){;//this.Label3.Text="請(qǐng)選擇考試課程";this.Label3.Visible=true;return;}if(this.ddlQueName.Text==""){//this.Label5.Text="請(qǐng)先添加考試試題!";this.Label5.Visible=true;return;}Page.Response.Redirect("InsertShiTi.aspx");圖4.12選擇考試專業(yè)、課題及套題名稱選擇完考試試題所屬專業(yè)、課程及套題后,單擊“選擇”按鈕,將進(jìn)入InserShiTi.aspx考題設(shè)置頁面。在該頁面中填寫完試題信息并單擊“增加”按鈕后,試題會(huì)自動(dòng)存儲(chǔ)到相應(yīng)的數(shù)據(jù)表中。相關(guān)設(shè)計(jì)如下:通過Session變量接受insert_shiti.aspx頁面?zhèn)鱽淼闹祍tringsstr1=Session["drop1"].ToString();stringsstr2=Session["drop2"].ToString();stringsstr3=Session["drop3"].ToString();然后判斷管理員選擇的事單選還是多選,如果是單選題,則執(zhí)行dataconn.eccom("insertintotb_Questions"+"(que_professionid,que_lessonid,que_taotiid,que_subject,que_type,optionA,optionB,optionC,optionD,que_answer,note)"+"values('"+sstr1+"','"+sstr2+"','"+sstr3+"','"+this.txtExamTitle.Text+"','"+ddlType.Text+"','"+this.txtExamA.Text+"','"+this.txtExamB.Text+"','"+this.txtExamC.Text+"','"+this.txtExamD.Text+"','"+ddlAnswer.Text+"','"+txtInstruction.Text+"')");//Response.Write("<scriptlanuage=javascript>alert('添加成功!');location='kaoshi_timu.aspx'</script>");Response.Redirect("kaoshi_timu.aspx");如果是多選題,則執(zhí)行if(cblAnswer.Items[0].Selected==true&&cblAnswer.Items[1].Selected==true&&cblAnswer.Items[2].Selected==true&&cblAnswer.Items[3].Selected==true){stringstr1="A,B,C,D";dataconn.eccom("insertintotb_Questions"+"(que_professionid,que_lessonid,que_taotiid,que_subject,que_type,optionA,optionB,optionC,optionD,que_answer,note)"+"values('"+sstr1+"','"+sstr2+"','"+sstr3+"','"+this.txtExamTitle.Text+"','"+ddlType.Text+"','"+this.txtExamA.Text+"','"+this.txtExamB.Text+"','"+this.txtExamC.Text+"','"+this.txtExamD.Text+"','"+str1+"','"+txtInstruction.Text+"')");Response.Redirect("kaoshi_timu.aspx");}在該頁面中,用戶需要選擇所添加的試題是單選題還是多選題,該頁面的設(shè)計(jì)效果如圖4.13所示。圖4.13考題設(shè)置頁面4.3.3管理員與學(xué)生信息管理頁設(shè)計(jì)在后臺(tái)中由管理員對(duì)所有信息進(jìn)行手動(dòng)修改,而管理員自身也可修改管理員信息。在后臺(tái)管理員頁中,可以對(duì)管理員信息進(jìn)行修改,包括管理員的添加、修改、刪除以及查詢功能。點(diǎn)擊修改按鈕,彈出管理員信息修改頁,運(yùn)行效果如圖4.14所示。圖4.14管理員信息修改頁面相關(guān)設(shè)計(jì)如下:首先在文本框中顯示管理員信息,要實(shí)現(xiàn)此功能需連接數(shù)據(jù)庫。SqlConnectioncon=dataconn.getcon();con.Open();SqlDataAdaptermydataadapt
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 贛東學(xué)院《中外舞蹈史(一)》2023-2024學(xué)年第一學(xué)期期末試卷
- 甘肅中醫(yī)藥大學(xué)《馬屬動(dòng)物遺傳學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 七年級(jí)英語上冊Module8ChoosingpresentsUnit2Sheoftengoestoconcerts教案含反思新版外研版
- 三年級(jí)數(shù)學(xué)下冊六認(rèn)識(shí)分?jǐn)?shù)第5課時(shí)練習(xí)五教案北師大版
- 三年級(jí)科學(xué)上冊第四單元人與水8水教案首師大版1
- 九年級(jí)化學(xué)上冊第四章生命之源-水4.3質(zhì)量守恒定律同步練習(xí)新版粵教版
- 小學(xué)生場景描寫課件
- 高二物理期末模擬卷(考試版A3)【測試范圍:人教版選必一選必二第一、二章】(新八省通-用)
- 2025年6月日歷表(含農(nóng)歷-周數(shù)-方便記事備忘)
- 傳染病防治的法律法規(guī)-課件
- 2024年九年級(jí)初中數(shù)學(xué)競賽輔導(dǎo)講義及習(xí)題解答 第19講 轉(zhuǎn)化靈活的圓中角
- 托福聽力課件
- 事業(yè)單位年度考核方案
- 2024年土地管理法
- 醫(yī)學(xué)統(tǒng)計(jì)學(xué):醫(yī)學(xué)統(tǒng)計(jì)學(xué)課后習(xí)題答案
- 框架玻璃幕墻施工工藝
- 全球50強(qiáng)藥企官網(wǎng)及LOGO匯總
- 2024年福建省投資開發(fā)集團(tuán)有限責(zé)任公司招聘筆試參考題庫含答案解析
- 23秋國家開放大學(xué)《法律職業(yè)倫理》形考任務(wù)1-3參考答案
- 全國自然教育中長期發(fā)展規(guī)劃
- 中等職業(yè)學(xué)校2024年中等職業(yè)教育質(zhì)量年度報(bào)告
評(píng)論
0/150
提交評(píng)論