版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
摘要基于ASP.NET學生在線考試系統(tǒng),是基于B/S模式,即用戶可利用瀏覽器直接訪問本站點。采用ASP.NET(C#)和SQL2005數(shù)據(jù)庫以及VS2005等技術。網(wǎng)絡在線考試系統(tǒng)旨在探索一種以互聯(lián)網(wǎng)為基礎的考試模式。通過這一新的考試模式,為考試創(chuàng)造一種新的考試環(huán)境;提高考試工作效率和標準化水平。本系統(tǒng)實現(xiàn)了網(wǎng)絡在線考試的功能,以減輕教師的工作負擔及提高工作效率,并能激發(fā)學生的學習興趣。論文首先論述了課題的背景、開發(fā)意義以及課題的研究方案和國內(nèi)外研究現(xiàn)狀。論述了系統(tǒng)的需求分析與總體設計。本系統(tǒng)定位學生在線考試和管理員對試題、試卷的維護工作,具體來說系統(tǒng)的總體功能模塊包括:學生注冊與登錄;在線考試;學生信息維護;試題管理;學生成績管理。在總體設計里著重論述了數(shù)據(jù)庫的設計,數(shù)據(jù)庫中各表的屬性設置。其次介紹了詳細設計。對于前臺系統(tǒng)的在線考試登錄頁、密碼找回頁、考生注冊頁在線考試頁進行了詳細的論述。后臺的考試套題管理頁、考試題目管理頁、管理員與學生信息管理頁、課程與專業(yè)信息管理頁也進行了詳細的論述。本文著重研究了選擇題題庫管理以及前臺在線考試的實現(xiàn)。選擇題題庫管理主要實現(xiàn)了選擇題的自由人性化添加、修改、刪除及瀏覽等功能;前臺學生可以查看其考試成績,并且進入在線考試,嚴格的監(jiān)視系統(tǒng)保證了考試的安全順利進行。最后,是對該課題所研究的系統(tǒng)進行測試。關鍵詞:在線考試系統(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)的相關技術介紹和分析 318422.1動態(tài)網(wǎng)頁技術 341652.2AJAX技術及數(shù)據(jù)庫技術 3316902.3編程語言、編程平臺及構(gòu)建開發(fā)環(huán)境介紹 547793系統(tǒng)需求分析與總體設計 7145013.1系統(tǒng)總體功能業(yè)務分析 7251043.2數(shù)據(jù)流程圖 7169483.3系統(tǒng)總體模塊設計 8167123.4數(shù)據(jù)庫設計 1019183.4.1數(shù)據(jù)庫概念設計 10175943.4.2數(shù)據(jù)庫邏輯設計 1238043.5網(wǎng)站文件組織結(jié)構(gòu) 14221764系統(tǒng)詳細設計 15188854.1公共類設計 15151034.2前臺設計 1867654.2.1在線考試登錄頁設計 19167584.2.2密碼找回頁設計 21222234.2.3考生注冊頁設計 24102644.2.4在線考試頁設計 25118274.3后臺設計 28256434.3.1考試套題管理頁設計 2917534.3.2考試題目管理頁面設計 31145244.3.3管理員與學生信息管理頁設計 35241244.3.4課程與專業(yè)信息管理頁設計 37249505系統(tǒng)測試 39197225.1軟件測試 39310275.1.1測試的基本概念 39317385.1.2測試步驟 3987165.2本系統(tǒng)功能測試 406164結(jié)論 4225330致謝 432660參考文獻 443868附錄A英文原文 4519751附錄B漢語翻譯 551緒論1.1課題的背景及意義ASP[1]是一項微軟公司的技術,是一種使嵌入網(wǎng)頁中的腳本可由因特網(wǎng)服務器執(zhí)行的服務器端腳本技術。指ActiveServerPages(動態(tài)服務器頁面),運行于IIS之中的程序。InternetInformationServices(IIS,互聯(lián)網(wǎng)信息服務),是由微軟公司提供的基于運行MicrosoftWindows的互聯(lián)網(wǎng)基本服務??荚囀墙逃兄匾囊粋€環(huán)節(jié)??荚嚨哪康囊皇菫榱丝疾閷W生的知識掌握情況;二是為教師提供教學分析的依據(jù)。傳統(tǒng)的考試由于涉及組織命題,試卷印刷,考場安排,組織閱卷等諸多環(huán)節(jié),考試時間周期長,效率低下;同時人工批卷等主觀因素也影響到考試的公正性。隨著網(wǎng)絡技術在教育領域應用的普及,應用現(xiàn)代信息技術架構(gòu)的網(wǎng)絡在線考試系統(tǒng)展現(xiàn)出來越來越多的優(yōu)越性。網(wǎng)絡在線考試系統(tǒng)旨在探索一種以互聯(lián)網(wǎng)為基礎的考試模式。通過這一新的考試模式,為考試創(chuàng)造一種新的考試環(huán)境;提高考試工作效率和標準化水平;使考務管理突破時空限制;使考生可以隨時,隨地通過網(wǎng)絡完成考試。網(wǎng)絡在線考試系統(tǒng)從根本上解決了傳統(tǒng)考試過程中工作量大,效率低,反饋周期長,資源浪費等缺陷。1.2研究的主要內(nèi)容本系統(tǒng)運行速度快、操作簡單、界面友好、易于管理和維護;而且具有較強的針對性、實用性和可操作性,初步解決了校園理論考核層次廣、次數(shù)多、內(nèi)容全,以及保密性和公平性差、評卷困難等問題。并對其詳細的設計方案、實現(xiàn)技術和運行情況做了分析和研究,最后對未來的工作做了研究與探討。論文主要圍繞系統(tǒng)設計開展研究,保證了考核的公平、公正、公開,有力地促進了理論學習的全面開展。本文重點研究了以下幾個方面:(1)系統(tǒng)的體系結(jié)構(gòu)、工作方式、主要功能模塊、主要數(shù)據(jù)的工作流程、后臺數(shù)據(jù)庫的設計、數(shù)據(jù)庫配置與連接;(2)系統(tǒng)各功能模塊的詳細設計、開發(fā)及其關鍵技術。1.3課題的研究方案及國內(nèi)外研究現(xiàn)狀系統(tǒng)采用開放、動態(tài)的B/S系統(tǒng)架構(gòu),基于ASP.NET開發(fā)技術,實現(xiàn)用戶與網(wǎng)站的動態(tài)交互性。設計實現(xiàn)具有空間性、被授權用戶可以異地登錄考試的系統(tǒng),系統(tǒng)提供倒計時功能以及自動提交試卷功能,考生可查詢考試成績,對考生注冊信息進行管理。系統(tǒng)為考生提供更全面,更靈活的服務,并全面、準確地對考試進行跟蹤和評價。實現(xiàn)系統(tǒng)運行穩(wěn)定,安全可靠。隨著計算機應用的迅猛發(fā)展,網(wǎng)絡應用不斷擴大,如遠程教育和虛擬大學的出現(xiàn)等等,且這些應用正逐步深入到千家萬戶。其中很重要的一個環(huán)節(jié)就是在線考試系統(tǒng),同時它也是最難實現(xiàn)的環(huán)節(jié)。學生在線考試系統(tǒng)的開發(fā)可以適應現(xiàn)代教學的需求,為考生提供更全面,更靈活的服務,對于如何設計開發(fā)有針對性的在線考試系統(tǒng)也提出了更高的要求。目前動態(tài)網(wǎng)頁的開發(fā)技術比較成熟,主要有ASP.NET、JSP和PHP等,本系統(tǒng)基于ASP.NET開發(fā)技術。ASP.NET[2]是一種強大的Web服務器端技術,與ASP相比,ASP.NET擁有更高的編譯特性與緩存機制。其特點包括:與其地層框架.NET緊密結(jié)合;將事件模型引入到Web應用程序的開發(fā)領域;支持多種語言開發(fā),包括C#、VisualBasic和Jscript等。2考試系統(tǒng)的相關技術介紹和分析2.1動態(tài)網(wǎng)頁技術由于系統(tǒng)的操作界面都是Web頁面形式,而且需要對各種用戶的具體請求進行動態(tài)處理并返回結(jié)果,這是一般靜態(tài)Web頁面技術所無法實現(xiàn)的,所以采用動態(tài)網(wǎng)頁技術。目前動態(tài)網(wǎng)頁技術有很多,可以說是層出不窮,比如CGI、PHP、JSP、ASP、ASP.NET等。本設計采用ASP.NET技術。ASP.NET[3](又稱ASP+)是ASP的下一代版本,它并不只是ASP4.0,它是一個用于Web開發(fā)的全新框架,其中包含了許多新的特性。ASP.NET完全基于模塊與組件,具有更好的可擴展性與可定制性,數(shù)據(jù)處理方面更是引入了許多激動人心的新技術,正是這些具有革新意義的新特性,讓ASP.NET遠遠超越了ASP,同時也是提供給Web開發(fā)人員更好的靈活性,有效縮短了Web應用程序的開發(fā)周期。Asp.Net所獨具的一些特點:(1)簡單的開發(fā)操作,分離程序代碼和網(wǎng)頁內(nèi)容。ASP.NET可以將頁面邏輯與業(yè)務邏輯分開,實用代碼分離技術(CodeBehind)分離程序代碼與顯示內(nèi)容,使程序的可讀性更強,簡化開放操作。(2)提高了執(zhí)行效率所有ASP.NET代碼(包括服務器腳本)都經(jīng)過編譯,可提供強類型、性能優(yōu)化和早期綁定及其他有點。代碼一旦經(jīng)過編譯,運行庫會進一步將ASP.NET編譯為本機代碼,從而提供增強的性能。(3)支持客戶端類型ASP.NET提供了許多服務器控件(ServerControl),在網(wǎng)頁執(zhí)行期間,能自動檢測瀏覽器所支持的功能,并自動產(chǎn)生瀏覽器可用網(wǎng)頁。2.2AJAX技術及數(shù)據(jù)庫技術AJAX的全稱是AsynchronousJavaScriptandXML,即異步JavaScript和XML。這是一種多項成熟技術的組合,其目的是讓Web應用獲得與用戶快速、即時交互的能力。AJAX所組合的技術,包括:?JavaScript,Java腳本語言(注意,此Java非Sun公司的Java)?DHTML,DynamicHTML,動態(tài)HTML?XML,ExtensibleMarkupLanguage,可擴展標記語言?CSS,CascadingStyleSheets,層疊樣式表單?DOM,DocumentObjectModel,文檔對象模型?微軟的稱為XMLHttpRequest的對象在AJAX技術下,用戶會感覺到網(wǎng)頁與普通桌面應用一樣,響應迅速,而不是像傳統(tǒng)網(wǎng)頁那樣,任何操作都需要等待頁面的刷新。AJAX是如何做到這一點的呢?有兩個秘密:第一,其實AJAX也會刷新頁面,只不過,AJAX可以只刷新部分頁面,而不是整個頁面;第二,AJAX的頁面刷新是異步的,就是說,用戶可以繼續(xù)他的其他操作,而不必等候刷新完成。當用戶瀏覽一個基于AJAX的Web應用時,用戶的請求被提交給一個稱為AJAX引擎(AJAXEngine)的代理,這個AJAX引擎負責接收用戶請求,從Web服務器上獲取響應,并更新瀏覽器內(nèi)容。形象地說,傳統(tǒng)的Web應用中,瀏覽器是直接和Web服務器打交道的,而在AJAX應用中,瀏覽器和Web服務器之間出現(xiàn)了一個來回跑腿的“中介”,而且這個“中介”相當?shù)那诳?,所以,能夠給瀏覽器提供更好的服務,從而使用戶獲得更滿意的應用體驗。由于本系統(tǒng)涉及到許多數(shù)據(jù)的處理,這就需要有一個強大的后臺數(shù)據(jù)庫管理系統(tǒng)支持。目前主要的數(shù)據(jù)庫有:Access、FoxPro、Excel、Sybase、Oracle、Informix、SQLServer等,其中網(wǎng)絡型的SQLServer、Oracle產(chǎn)品安全性遠遠高于桌面型的Access、FoxPro等數(shù)據(jù)庫。本系統(tǒng)采用的是微軟公司的SQLServer2005。原因如下:第一,SQLServer與Windows2000Server服務器緊密集成,而Windows2000Server服務器具有良好的安全性,能夠排除所有未經(jīng)授權的非法用戶的訪問,確保了SQLServer2005服務器的安全性,符合系統(tǒng)對安全性的要求;第二,用戶可以使用Web瀏覽器查詢存儲在SQLServer2005數(shù)據(jù)庫中的數(shù)據(jù),符合系統(tǒng)遠程訪問數(shù)據(jù)庫的要求;第三,容量龐大,每個數(shù)據(jù)庫中可創(chuàng)建多達20萬個數(shù)據(jù)表,數(shù)據(jù)表中的記錄的行數(shù)只受服務器硬盤空間的限制,符合系統(tǒng)的考題數(shù)目較多的要求。2.3編程語言、編程平臺及構(gòu)建開發(fā)環(huán)境介紹C#[4]是微軟公司發(fā)布的一種面向?qū)ο蟮摹⑦\行于.NETFramework之上的高級程序設計語言。C#看起來與Java有著驚人的相似;它包括了諸如單一繼承、接口、與Java幾乎同樣的語法和編譯成中間代碼再運行的過程。但是C#與Java有著明顯的不同,它借鑒了Delphi的一個特點,與COM(組件對象模型)是直接集成的,而且它是微軟公司.NETwindows網(wǎng)絡框架的主角。C#是一種安全的、穩(wěn)定的、簡單的、優(yōu)雅的,由C和C++衍生出來的面向?qū)ο蟮木幊陶Z言。它在繼承C和C++強大功能的同時去掉了一些它們的復雜特性(例如沒有宏以及不允許多重繼承)。C#綜合了VB簡單的可視化操作和C++的高運行效率,以其強大的操作能力、優(yōu)雅的語法風格、創(chuàng)新的語言特性和便捷的面向組件編程的支持成為.NET開發(fā)的首選語言。VisualStudio2005是基于.NET2.0框架的。它同時也能開發(fā)跨平臺的應用程序,如開發(fā)使用微軟操作系統(tǒng)的手機的程序等??傮w來說是一個非常龐大的軟件,甚至包含代碼測試功能。通過將SDLC工具集成到UI級別的表面,VisualStudioTeamSystem提高了團隊工作效率并增強了項目的可預見性,此外,過程集成并不增加工作量,而通常能夠降低與SDLC中所采納過程相關的開銷。盡管存在一些基本的工具可組成SDLC工具(例如,架構(gòu)師工具、測試工具等),但是SDLC并未限制住工具的數(shù)量。當集成支持SDLC的工具時,團隊會發(fā)現(xiàn)在提高團隊效率,同時降低復雜性這些方面的好處。VisualStudioTeamSystem將提供基本的平臺,讓所有提供商能夠以一種普通的、公眾可理解的形式交換信息。這理所當然地鑄造了一個充滿活力的合作伙伴體系,合作伙伴能夠構(gòu)建完全集成的工具,簡化構(gòu)建IT解決方案的復雜性,以及推動信息交流和鼓勵團隊協(xié)作。要獲得跨UI、數(shù)據(jù)和過程集成的最大價值,就需要擴展性。擴展性促成交互性。(1)網(wǎng)站開發(fā)環(huán)境網(wǎng)站開發(fā)語言:MicrosoftVisualStudio2005集成開發(fā)環(huán)境網(wǎng)站開發(fā)語言:ASP.NET+C#網(wǎng)站后臺數(shù)據(jù)庫:SQLSever2005開發(fā)環(huán)境運行平臺:Windows7旗艦版(2)服務器端操作系統(tǒng):Windows7旗艦版Web服務器:Internet信息服務(IIS)管理器數(shù)據(jù)庫服務器:SQLSever2005瀏覽器:IE6.0網(wǎng)站服務器運行環(huán)境:Microsoft.NETFrameworkSDKv2.0(3)客戶端瀏覽器:IE6.0分辨率:最佳效果1024*768像素3系統(tǒng)需求分析與總體設計3.1系統(tǒng)總體功能業(yè)務分析本系統(tǒng)定位學生在線考試和管理員對試題、試卷的維護工作,具體來說系統(tǒng)的總體功能模塊包括以下幾個面:(1)學生注冊與登錄:學生可在線注冊并登錄該系統(tǒng);(2)在線考試:學生注冊并登錄后即可進行在線考試,可以選擇考試的試卷,考試完畢后可查看自己的成績;(3)學生信息維護:管理員可對所有注冊的學生的信息進行查看、修改和刪除操作;(4)試題管理:管理員可以對考試試題進行查看、修改和刪除管理,可以生成不同的試卷。(5)學生成績管理:管理員可以查看和刪除學生的考試結(jié)果信息。3.2數(shù)據(jù)流程圖數(shù)據(jù)流圖(DataFlowDiagram):簡稱DFD,它從數(shù)據(jù)傳遞和加工角度,以圖形方式來表達系統(tǒng)的邏輯功能、數(shù)據(jù)在系統(tǒng)內(nèi)部的邏輯流向和邏輯變換過程,是結(jié)構(gòu)化系統(tǒng)分析方法的主要表達工具及用于表示軟件模型的一種圖示方法。繪制數(shù)據(jù)流圖的基本要求:系統(tǒng)的頂層圖是用來表示整個系統(tǒng)的功能結(jié)構(gòu)。隨著數(shù)據(jù)分析活動的逐漸深入,較高抽象級別上的復雜轉(zhuǎn)換可以精化為一系列的相互關聯(lián)的數(shù)據(jù)流和子轉(zhuǎn)換。數(shù)據(jù)流程圖(DFD)數(shù)據(jù)流圖描述系統(tǒng)的邏輯模型,在設計數(shù)據(jù)流圖時只需考慮系統(tǒng)必須完成的基本邏輯功能,完全不需考慮如何具體地實現(xiàn)這些。圖例: 外部項 加工 數(shù)據(jù)存儲 信息流或數(shù)據(jù)流在線考試系統(tǒng)的數(shù)據(jù)流程如圖3.1所示。圖3.1在線考試系統(tǒng)的數(shù)據(jù)流程圖3.3系統(tǒng)總體模塊設計本系統(tǒng)主要用于學生在線考試,管理員可對考試信息進行修改,在線考試學生登錄流程圖與管理員登錄流程圖分別如圖3.2所示與3.3所示。是否同意考試規(guī)則是否同意考試規(guī)則選擇考試課程和套題寶準備考試開始考試提交試卷查看考試結(jié)果注冊考生登錄?在線考試查詢成績開始結(jié)束否考生操作是否是圖3.2在線考試學生登錄流程圖對考生信息,考試信息,和管理員信息,考試套題和考試題目進行添加,就該,刪除等管理對考生信息,考試信息,和管理員信息,考試套題和考試題目進行添加,就該,刪除等管理管理員登錄?開始結(jié)束否是是圖3.3在線考試管理員登錄流程圖3.4數(shù)據(jù)庫設計在程序開發(fā)中,數(shù)據(jù)庫設計[5]是一個非常重要的環(huán)節(jié)。一個設計良好的數(shù)據(jù)庫結(jié)構(gòu),可以提高效率,方便維護,并且為以后進行功能的擴充留有余地。這好比一高樓座大廈,有穩(wěn)固的地基,才能穩(wěn)如磐石,屹立不倒。本網(wǎng)站采用SQLSever2005[6]名稱為db_Examination,其中包含9張表。3.4.1數(shù)據(jù)庫概念設計通過對網(wǎng)站進行的需求分析,網(wǎng)站流程設計以及系統(tǒng)功能結(jié)構(gòu)的確定,規(guī)劃出系統(tǒng)中使用的數(shù)據(jù)庫實體對象分別為“管理員信息”、“考試套題”、“考生成績”、“考生成績信息”。對網(wǎng)站進行有效的管理就要設置一個或多個管理員,管理員實體包括管理員編號、管理員姓名、管理員密碼和注冊時間,管理員信息實體E-R圖如圖3.4所示。 考試套題套題名稱考試套題套題名稱所屬課程添加時間有效時間管理員管理員編號管理員姓名管理員編號管理員編號圖3.4管理員信息實體E-R圖 圖3.5考試套題E-R圖考試套題包括套題名稱、所屬課程、添加時間以及有效時間等屬性??荚囂最}E-R圖如圖3.5所示。考生信息實體包括學生證號、姓名、性別、所學專業(yè)、注冊時間、登錄網(wǎng)站密碼、密碼提示問題、密碼提示答案以IP等屬性,考生信息實體E-R圖如圖3.6所示。學生證號學生證號密碼提示答案注冊IP地址密碼提示問題考生性別登錄網(wǎng)站密碼考生注冊時間考生姓名所學專業(yè)考生圖3.6考生信息實體E-R圖當答完考題后可以對自己的成績進行查詢,后臺管理員也可以對考生成績進行管理??忌煽儼▽W生證號、所學課程、考生總分等??荚嚦煽冃畔嶓wE-R圖如圖3.7所示。套題名稱套題名稱單選題分數(shù)考生總分數(shù)考生成績編號套題編號成績提交時間多選題分數(shù)學生證號所學課程考生圖3.7考試成績信息實體E-R圖3.4.2數(shù)據(jù)庫邏輯設計管理員信息表用于保存管理員信息,tb_Administrator表的結(jié)構(gòu)設計如下:(1)ID是表的關鍵字,唯一標識,不可為空。類型為bigint,長度為8。(2)Name是管理員登錄名稱,可為空。類型為varchar,長度為50。(3)PWD是管理員密碼,可為空。類型為varchar,長度為60。(4)JoinTime是加入時間,可為空。類型為datetime,長度為8。默認值為getdate()??忌n程信息表用于保存指定專業(yè)所包含的課程信息,tb_Lesson表的結(jié)構(gòu)設計如下:(1)ID是表的關鍵字,唯一標識,不可為空。類型為bigint,長度為8。(2)Name是課程名稱,可為空。類型為varchar,長度為60。(3)ofProfession是所屬專業(yè)的編號,可為空。類型為bigint,長度為8。(4)JoinTime是添加時間,可為空。類型為datetime,長度為8。默認值為getdate()。考生專業(yè)信息表用于保存考試所涉及到的專業(yè)信息,tb_Profession表的結(jié)構(gòu)設計如下:(1)ID是表的關鍵字,唯一標識,不可為空。類型為bigint,長度為8。(2)Name是專業(yè)名稱,可為空。類型為varchar,長度為200。(3)JoinTime是添加時間,可為空。類型為datetime,長度為8。默認值為getdate()??荚囋嚲硇畔⒈碛糜诒4娓魈最}中所包含的的詳細考試題目,tb_Questions表的結(jié)構(gòu)設計如下:(1)ID是表的關鍵字,唯一標識,不可為空。類型為bigint,長度為8。(2)Que_subject是試題主題,可為空。類型為varchar,長度為50。(3)Que_type是試題類型,可為空。類型為char,長度為10。(4)Que_joindate是試題添加時間,可為空。類型為datetime,長度為8。默認值為getdate()。(5)Que_lessonid是所屬課程號,可為空。類型為int,長度為4。(6)Que_professionid是所屬專業(yè)號,可為空。類型為int,長度為4。(7)Que_toatiid是所屬套題編號,可為空。類型為bigint,長度為8。(8)OptionA、OptionB、OptionC、OptionD,分別為選項A、B、C、D。類型均為varchar,長度為50。(9)Que_answer是試題答案,可為空。類型為char,長度為10。(10)note是注釋,可為空。類型為varchar,長度為50。用于試題備注。生信息表用于保存網(wǎng)站注冊的學生信息,tb_Student表的結(jié)構(gòu)設計如下:(1)ID是表的關鍵字,代表學生證號,不可為空。類型為varchar,長度為50。(2)Name是學生姓名,可為空。類型為varchar,長度為20。(3)PWD是學生登錄密碼,可為空。類型為varchar,長度為20。(4)Sex是學生性別,可為空。類型為varchar,長度為2。(5)JoinTime是加入時間,可為空。類型為datetime,長度為8。默認值為getdate()。(6)Questions與Answer分別為密碼問題、密碼答案,可為空。類型均為varchar,長度為50。(7)profession是所學專業(yè)號,可為空。類型為bigint,長度為8。(8)IPAddress是IP地址,可為空。類型為char,長度為30。用于防止重復考試??荚嚦煽冃畔⒈碛糜诒4婵忌目荚嚦煽?,tb_StuResult表的結(jié)構(gòu)設計如下:(1)Res_id是表的關鍵字,唯一標識,不可為空。類型為bigint,長度為8。(2)Stu_id與Which_lesson、taotiname分別是所屬學生編號、所屬課程名稱、所屬套題名稱,可為空。類型均為varchar,長度為50。(3)taotiid是所屬套題編號,可為空。類型為bigint,長度為8。(4)Res_single與Res_more分別為單選成績、多選成績,可為空。類型均為int,長度為4。(5)Res_subdate是成績提交時間,可為空。類型為datetime,長度為8。默認值為getdate()。考試套題信息表用于保存課程所對應的套題信息,tb_Taoti表的結(jié)構(gòu)設計如下:(1)ID是表的關鍵字,唯一標識,不可為空。類型為bigint,長度為8。(2)Name是套題名稱,可為空。類型為varchar,長度為50。(3)LessonID是所屬課程號,可為空。類型為bigint,長度為8。(4)JoinTime與Limittime分別是添加時間、有效時間,可為空。類型均為datetime,長度為8。Jointime默認值為getdate()。3.5網(wǎng)站文件組織結(jié)構(gòu)在進行編碼之前,為了便于系統(tǒng)文件的管理,按照功能模塊劃分,將一些Web窗體文件存放在同一個文件夾里。Default.aspx為網(wǎng)站首頁,與密碼找回頁1:InfoPwd.aspx、密碼找回頁2:InfoPwdd.aspx、密碼找回頁3:InfoPwddd.aspx、考生注冊頁:zhuce.aspx以及網(wǎng)站配置文件web.config放于主文件夾第一級目錄中。主文件夾中App_Code文件夾為自定義公共類文件夾,其中有公共類文件為Database.cs;App_Data為數(shù)據(jù)庫文件夾;App_Themes文件夾里有主題文件夾,用于存放網(wǎng)站的外觀文件;HouAdmin文件夾存放后臺網(wǎng)頁文件;圖片文件則放于igm文件中;Qianuser文件夾放置前臺管理文件,其中Info_StuResult.aspx為考生成績查詢頁,StarExamfra.aspx為在線考試頁,XuanZe_TaoTi.aspx為在線考試套題頁,zaixian_kaoshi.aspxk為考生規(guī)則頁,ZhunBeiKaoShi.aspx為在線考試準備頁。4系統(tǒng)詳細設計4.1公共類設計在網(wǎng)站開發(fā)項目[7]中通常以類的形式來組織、封裝一些常用的方法和事件,有利于代碼的維護,在編程過程中可以起到事半功倍的效果。在線考試網(wǎng)頁中創(chuàng)建了一個公共類Datacon,在此公共類中共創(chuàng)建6個方法:getcon,eccom,ecadabind,ecDropDpwnList,ecadabindinfostring,ExceRead。4.1.1數(shù)據(jù)庫連接方法getcon方法:用于連接在線考試網(wǎng)的數(shù)據(jù)庫,類型為Sqlconnection。相關設計如下:publicSqlConnectiongetcon(){//定義數(shù)據(jù)庫連接字符串stringstrCon="DataSource=PC-20130423TVFX;DataBase=db_Examination;UserID=sa;PWD=sa";//創(chuàng)建一個新的數(shù)據(jù)庫連接SqlConnectionsqlCon=newSqlConnection(strCon);//返回SqlConnection類型的值returnsqlCon;}DataSource為本地計算機名字;DataBase為數(shù)據(jù)庫名字;UserID和PWD與SQLServer2005的登錄名和密碼相一致均為sa。4.1.2執(zhí)行數(shù)據(jù)庫命令的方法eccom方法:用于執(zhí)行對數(shù)據(jù)庫操作的SQL語句命令,如刪除操作命令、修改操作命令等。在ecccom方法中首先傳一個SQL語句,然后與SQLServer數(shù)據(jù)庫建立連接,應用SqlCommand對象執(zhí)行所傳來的SQL語句,最后應用try-catch-finally語句進行異常處理,如果執(zhí)行該SQL語句則返回true,反之則返回false。相關設計如下:(1)在eccom方法中建立一個SqlConnection類的對象,SqlConnection類是SQLServer數(shù)據(jù)庫一個打開的連接。(2)然后調(diào)用SqlConnection類對象的open()方法用于打開數(shù)據(jù)庫連接。(3)建立SqlCommand類的對象,主要是要對SQLServer數(shù)據(jù)庫執(zhí)行一個SQL語句或存儲過程,應用SqlCommand對象執(zhí)行所傳來的SQL語句。(4)在try函數(shù)中調(diào)用mycommand.ExecuteNonQuery()方法,其方法主要是對連接執(zhí)行SQL語句并返回受影響的行數(shù)。(5)最后關閉數(shù)據(jù)庫。在進行數(shù)據(jù)庫相關操作過程中,需通過using命令,導入命名空間usimgSystem.Data.SqlClient,否則程序編譯失敗。4.1.3將數(shù)據(jù)綁定到表格控件的方法Ecadabind方法:用于將數(shù)據(jù)綁定到表格控件中。在公共類中為實現(xiàn)該方法,編寫一個Ecadabind(GridViewgv,stringsqlstr4)方法,用來執(zhí)行SQL語句,返回bool型。該方法主要執(zhí)行SqlDataAdapter中的語句,并將其綁定到GridView控件上,相應功能執(zhí)行成功后返回true,否則返回false。相關設計如下:(1)在Ecadabind方法中調(diào)用getcon方法定義新的數(shù)據(jù)庫連接并打開數(shù)據(jù)庫連接。(2)定義并初使化數(shù)據(jù)適配器,SqlDataAdapter類表示用于填充DataSet和更新SQLServer數(shù)據(jù)庫的一組命令和一個數(shù)據(jù)庫連接。(3)創(chuàng)建一個數(shù)據(jù)集mydataset。(4)將數(shù)據(jù)適配器中的數(shù)據(jù)填充到數(shù)據(jù)集中。(5)將此數(shù)據(jù)集作為表格控件的數(shù)據(jù)源。(6)在try方法中綁定數(shù)據(jù)庫中數(shù)據(jù)并返回這個數(shù)據(jù)集。4.1.4將數(shù)據(jù)綁定到下拉列表框的方法ecDropDpwnList方法:用于將數(shù)據(jù)綁定到下拉列表框中。將數(shù)據(jù)綁定到下拉列表框中主要應用了ecDropDpwnList(DropDpwnListDDL,stringsqlstr3,stringsDTF,stringDVF)方法。該方法首先傳遞了4個值,分別為DropDpwnList控件、SQL語句、列表項提供的內(nèi)容字段和列表項提供值;然后與SQLServer數(shù)據(jù)庫建立連接,應用SqlDataAdapter對象填充數(shù)據(jù)集并指定DropDpwnList控件的數(shù)據(jù)源;最后設置列表項提供的內(nèi)容字段和列表項提供值所綁定的數(shù)據(jù)源,應用try-catch-finally語句進行異常處理,如果DropDpwnList控件執(zhí)行DataBind方法返回true,否則返回false。相關設計如下:(1)sqldataadapter.Fill方法是可以重載的,再次主要實現(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中的每個DataTable;通過添加、更新或刪除DataSRow對象更改單個DataTable對象中的數(shù)據(jù);電泳GetChanges方法以創(chuàng)建只反映對數(shù)據(jù)進行的更改的第二個DataSet;調(diào)用DataAdapter的Update方法,并將第二個DataSet作為參數(shù)傳遞;調(diào)用Merge方法將第二個DataSet中的更改合并到第一個中;針對DataSet調(diào)用AcceptChanges?;蛘撸{(diào)用RejectChanges以取消更改。4.1.5在表格控件中獲取主鍵字段的方法ecadabindinfostring方法:用于將數(shù)據(jù)綁定到表格控件中,并獲取數(shù)據(jù)表中的主鍵字段。在表格控件中獲取主鍵字段的方法,主要應用了公共類中的ecadabindinfostring(GridViewgv,stringsqlstr5,stringDNK)方法,該方法與ecadabind方法類似。該方法用來執(zhí)行SQL語句,返回bool型,主要執(zhí)行SqlDataAdapter中的語句,并將其綁定到GridView控件上顯示其主關鍵字段的名稱,相應功能執(zhí)行成功返回true.否則返回false。相關設計如下: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ù)源的主關鍵字的名稱。4.1.6數(shù)據(jù)讀取的方法exceRead方法:用于讀取數(shù)據(jù)庫中的數(shù)據(jù),返回一個SqlDataReader。數(shù)據(jù)讀取方法主要應用到公共類中的exceRead方法。首先調(diào)用公共類中的getcon方法創(chuàng)建一個新的數(shù)據(jù)庫連接對象,接著創(chuàng)建一個SqlCommang命令對象,然后應用該命令對象的ExecuteReader方法創(chuàng)建一個數(shù)據(jù)閱讀器,用來讀取數(shù)據(jù)庫中的數(shù)據(jù),最后返回一個SqlDataReader類對象。相關設計如下:SqlConnectioncon=this.getcon();con.Open();//創(chuàng)建一個SqlCommand對象,表示要執(zhí)行的SqlCom語句或存儲過程SqlCommandsqlcom=newSqlCommand(SqlCom,con);SqlDataReaderread=sqlcom.ExecuteReader();returnread;4.2前臺設計根據(jù)網(wǎng)絡在線考試網(wǎng)的特點,可以將其分為前臺和后臺兩個部分進行設計。前臺主要用于考生注冊和登錄系統(tǒng)、在線考試、查詢成績以及退出登錄。網(wǎng)絡在線考試網(wǎng)的前臺功能如圖4.1所示。網(wǎng)絡在線考試網(wǎng)前臺系統(tǒng)網(wǎng)絡在線考試網(wǎng)前臺系統(tǒng)考生注冊開考試結(jié)果查詢成績退出系統(tǒng)在線考試找回密碼考生/管理員登錄準備考試選擇考試課程和套題考試規(guī)則開始考試圖4.1網(wǎng)絡在線考試網(wǎng)前臺功能模塊圖 4.2.1在線考試登錄頁設計考生和管理員需要通過登錄頁面進入在線考試網(wǎng)。考生在登錄在線考試網(wǎng)之前,首先需要通過登錄頁面進行注冊。為了防止考生忘記密碼,提供了找回密碼的功能。在線考試網(wǎng)登錄頁面的運行效果如圖4.2所示。圖4.2在線考試網(wǎng)首頁 本模塊使用的數(shù)據(jù)表:tb_Administrator、tb_Student,Default.aspx頁面為主頁面。相關設計如下:(1)在頁面中拖放1個TextBox控件,名稱為txtValidate,用于錄入登錄驗證碼。在Page_Load事件中,首先調(diào)用隨機驗證碼,應用驗證碼技術可以防止用戶惡意注冊。if(!IsPostBack){Randomrnd=newRandom();this.labValidate.Text=rnd.Next(1000,9999).ToString();}利用if語句判斷是否首次加載。在頁面中拖放1個Button控件,控件名稱為BtnLogin,Text屬性設置為“登錄”,用于考生登錄。在處理登錄頁面提交數(shù)據(jù)時。首先會根據(jù)“管理員登錄”復選框的值來判斷是否登錄管理員頁面,所以利用一個CheckBox控件驗證是否為管理員登錄,將控件命名為cblAdminLog。如果該復選框被選中則執(zhí)行核對用戶名、密碼和驗證碼而進入管理員頁面,否則進入考生頁面。輸入完相關的用戶名。密碼和驗證碼后,單擊“確定”按鈕,提交登錄信息。如果是管理員則調(diào)用if條件中的getcom(1)方法;如果不是管理員登錄,調(diào)用else中getcom(2)方法。在自定義getcom()方法中,如果是case1要判斷數(shù)據(jù)庫中是否存在數(shù)據(jù);如果是case2要設置SqlCommand命令對象的Text屬性,還得定義一個int型變量count2,返回所查詢數(shù)據(jù)表的第一行第一列,如果count2>0,應用Application對象保存用戶ID及密碼。在主頁中必定會設置忘密以便考生找回密碼。所以應有一個名為BtnPWD的Button控件來作為考生忘密的按鈕。除此之外,應添加一個table控件作為整個頁面布局;一個名為BtnZhuce的Button控件,用于考生注冊;2個TextBox控件,名稱分別為txtPwd和txtUserName,分別用于錄入登錄密碼錄入登錄考生學生證號。4.2.2密碼找回頁設計很多情況下,考生會將密碼遺忘或丟失,這樣就無法登錄自己的學生賬號,為了避免造成不必要的損失,設計了密碼找回功能。密碼找回主要分為3個頁面來完成。頁面1:輸入已注冊的學生證號;頁面2:系統(tǒng)會根據(jù)輸入的學生證號把相應的密碼問題列出來,然后輸入密碼問題答案;頁面3,如果問題答案正確,則成功找回密碼。(1)在登錄頁面中單擊“忘密”按鈕,進入忘記密碼頁面1。在頁面中輸入學生證號,單擊“確定”按鈕,系統(tǒng)會自動核對其是否存在。忘記密碼頁面1的運行效果如圖4.3所示。圖4.3忘記密碼頁面1相關設計如下:if(count>0){Session["ID"]=txtStuID.Text;Page.Response.Redirect("InfoPwdd.aspx");}else{Response.Write("<script>alert('無此學生編號、或輸入有誤');location='javascript:history.go(-1)'</script>");return;}If語句用來判斷輸入的學生證號是否存在,如果存在,則頁面直接跳轉(zhuǎn)找回密碼頁面2,并利用Session對象保存用戶ID。(2)如果輸入的學生證號存在,則進入忘記密碼頁面2,在該頁面中需要輸入該學生在注冊時設置的密碼問題的答案,然后單擊“確定”按鈕。如核對無誤,則進入忘記密碼頁面3,并在頁面中顯示出該學生的密碼;如果不正確,則顯示提示信息。忘記密碼也2和忘記密碼頁3運行效果分別如圖4.4和4.5所示。圖4.4忘記密碼頁面2圖4.5忘記密碼頁面3相關設計如下: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對象以后,執(zhí)行SQL語句命令,用if語句判斷數(shù)據(jù)庫是否存在考生數(shù)據(jù)。4.2.3考生注冊頁設計要進入在線考試系統(tǒng),考生首先需要注冊一個學生證號。單擊在線考試系統(tǒng)登錄頁中“注冊”按鈕,進入考生注冊頁面??忌皂撁嬷休斎肟忌幕拘畔?,包括學生證號、學生姓名、密碼、密碼問題、密碼答案、性別和所學專業(yè),運行效果如圖4.6所示。圖4.6考生注冊頁另外,該考生注冊頁應用了AJAX無刷新檢測用戶名的技術。為了防止學生證號重復,可以通過單擊“檢測注冊號”按鈕進行檢測??忌斎胱缘膶W生證號后通過檢測顯示在數(shù)據(jù)庫中無此號,可以注冊。運行效果如圖4.7所示。圖4.7檢測考生注冊頁該網(wǎng)頁的設計使用的數(shù)據(jù)表:tb_Profession、tb_Student。相關設計如下:在后臺代碼的Page_Load事件中,首先調(diào)用公共類中的ecDropDownList方法,將考生姓名綁定到DropDownList控件。(2)添加一個Button控件,名為btnRes,用于考生注冊。單擊該注冊頁面中的“注冊”按鈕,觸發(fā)其Click事件,將注冊信息添入到數(shù)據(jù)庫中,調(diào)用公共類中的eccom,執(zhí)行SQL語句命令。相關設計如下: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)為避免考生輸入的學生證號與已注冊的學生證號重復,導致注冊失敗,在考生注冊頁面中添加了一個“檢測注冊號”按鈕,來檢查該注冊的學生證號是否已經(jīng)存在。在該按鈕觸發(fā)事件中,主要應用了數(shù)據(jù)閱讀器讀取數(shù)據(jù)庫中數(shù)據(jù)判斷注冊號是否存在。相關設計如下:調(diào)用公共類中的.ExceRead方法,讀取數(shù)據(jù)庫中的數(shù)據(jù):SqlDataReaderread=dataconn.ExceRead("select*fromtb_StudentwhereID='"+this.txtStuID.Text+"'"); 4.2.4在線考試頁設計在線考試頁的主要功能是允許考生在網(wǎng)站上針對指定的專業(yè)和課程進行考試。在該頁中,考生首先需要閱讀考試規(guī)則,在同意所列出的考試規(guī)則的前提下,才能選擇考試課程和套題;然后進入考試進行答題,如圖4.8所示。圖4.8在線考試頁當考生提交試卷或者到達考試結(jié)束時間時,系統(tǒng)將自動對考生提交的試卷進行評分,并給出最終考試成績。(1)考生在線答卷時首先需要選擇套題,系統(tǒng)需要根據(jù)考生提交的科目和套題信息從數(shù)據(jù)庫中獲取相應題目,然后DataList控件顯示出來。這里首先需要通過Application變量獲取上一頁中考生選擇的科目和套題信息,然后根據(jù)這些信息從數(shù)據(jù)庫中提取考試題目。相關設計如下:protectedvoidgetCom(inti){stringdd1=Application["d1"].ToString();stringdd2=Application["d2"].ToString();}(2)首先創(chuàng)建公共類Datacon的類對象,以便在后面程序調(diào)用其方法,然后自定義4個int類型的全局變量-int_row1,int_row2,int_row1Point,int_row1Point,用來分別表示單選題號、多選題號、單選分數(shù)和多選分數(shù)。在頁面加載的Page_Load事件中編寫如下代碼,用于從數(shù)據(jù)庫中提取出相應題目。相關設計如下:protectedvoidPage_Load(objectsender,EventArgse){if(!IsPostBack){this.getCom(1);this.getCom(2);}}(3)單擊“交卷”按鈕,首先通過Session變量獲取學生ID和其選擇的科目及套題,然后調(diào)用getCom方法來執(zhí)行提交考卷操作。相關設計如下: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>");分別將顯示考生證號、考試得分等的Lable控件可視化;分別調(diào)用.getCom(3)、getCom(4)核對單選與多選答案,最后計算總分。圖4-3免費供求信息發(fā)免費供求信技術分析:當用戶發(fā)布供求信息通}4.3后臺設計后臺主要用于管理員對考生信息、考題信息、考生成績信息、考試套題和課程信息等進行管理。網(wǎng)絡考試在線考試網(wǎng)后臺功能結(jié)構(gòu)圖如圖4.9所示。網(wǎng)絡在線考試網(wǎng)后臺系統(tǒng)網(wǎng)絡在線考試網(wǎng)后臺系統(tǒng)管理員信息管理考生信息管理專業(yè)信息管理課程信息管理套題信息管理考試題目管理考生成績管理考試試題添加退出管理添加管理員修改管理員刪除管理員查詢管理員添加考試課程刪除考試課程修改考試課程查詢考試課程查詢考試成績刪除考試成績圖4.9網(wǎng)絡考試在線考試網(wǎng)后臺功能模塊圖4.3.1考試套題管理頁設計考試套題管理頁的主要功能包括考試套題進行添加、查詢、修改和刪除操作。添加考試套題信息時,需要首先在文本框中輸入所添加的套題名稱,并在下拉列表框中選擇所屬課程名,然后在進行添加操作;在考試套題信息列表頁面中,可以通過選擇不同的查詢條件(如套題名稱和所屬課程)并輸入相關的關鍵字,來實現(xiàn)查詢操作;根據(jù)實際需要,還可以實時更新考試套題中的詳細信息或者刪除考試套題??荚嚬芾眄撁娴倪\行效果圖如4.10所示。圖4.10在線考試網(wǎng)考試套題管理頁面在考試套題信息“查詢”按鈕事件中主要應用到了SQLServer視圖數(shù)據(jù)處理技術,該頁創(chuàng)建的視圖名為kecheng_taoti_view,建立該視圖的目的主要是從tb_Lesson和tb_TaoTi兩張表中檢索出包括套題名稱、所屬課程和加入時間的信息。相關設計如下:需要調(diào)用ecadabind方法綁定查詢信息。dataconn.ecadabind(gvQueInfo,"Select*Fromkecheng_taoti_viewWhere"+ddlQueName.SelectedValue+"Like'%"+txtSelect.Text+"%'");套題信息列表通過ASP.NET2.0提供的GridView控件把考試套題的羈絆信息顯示出來。在每條信息后設置執(zhí)行修改及刪除功能的超鏈接按鈕。每次登錄此頁面時程序會自動執(zhí)行后臺Page_Load頁面加載事件中的SQL語句,將檢索的數(shù)據(jù)通過GridView控件顯示在頁面中,用于綁定考試套題信息。GridView控件在主要屬性設置上,將AllowPsging屬性設置為True(用于分頁),AutoGenerateColumns屬性為False(取消自動生成列),PageSize屬性設置為6(設置分頁數(shù)),SkinID屬性設置為gvSkin(應用主題)。編寫此代碼前,首先在命名空間區(qū)域引用usingSystem.Data.SqlClient命名空間,然后在Page_Load頁面加載事件中定義執(zhí)行需要顯示在GridView控件中信息的SQL語句,通過調(diào)用公共類執(zhí)行該語句完成數(shù)據(jù)顯示操作。在GridView控件代碼在對行進行了數(shù)據(jù)綁定后激發(fā)。后臺主要實現(xià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('確定刪除嗎?')");}雙擊前臺“查詢”按鈕,同時會進入此按鈕后臺的Click單擊事件中,然后在Click單擊事件中定義執(zhí)行模糊查詢的SQL語句,通過調(diào)研公共類執(zhí)行該語句,將結(jié)果顯示在GridView控件中完成查詢操作。拖一個Button控件名為btnSelect用于查詢考試套題;一個TextBox控件,名為txtKey,用于輸入查詢的關鍵字;一個DropDownList控件名為ddlSelect,是下拉選擇,用于設置查詢條件。相關設計如下:如果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+"%'");當管理員單擊某記錄的“修改”鏈接后,即可進入套題信息修改頁面TaotiUpdate.aspx。在該頁的Page_Load事件代碼中,相關設計如下:首先判斷是否是首次加載,如果是則調(diào)用公共類中的ecDropDownList方法,將考生所學專業(yè)綁定到下拉列表框中,調(diào)用公共類中的getcon方法,之后創(chuàng)建一個新的數(shù)據(jù)庫連接,定義并初始化一個數(shù)據(jù)適配器。并創(chuàng)建一個DataSet數(shù)據(jù)集,將數(shù)據(jù)適配器中的數(shù)據(jù)填充到數(shù)據(jù)集mydataset中,在mydataset數(shù)據(jù)集中創(chuàng)建tb_TaoTi的默認視圖,然后將輸入的套題名稱轉(zhuǎn)換成字符串,最后關閉數(shù)據(jù)庫。為了方便系統(tǒng)管理,在考試考試套題管理頁中每條記錄后添加一個“刪除”超鏈接按鈕,當管理員單擊此鏈接按鈕時,系統(tǒng)自動刪除該在線考試套題信息。實現(xiàn)刪除功能的相關設計如下:protectedvoidGridView1_RowDeleting(objectsender,GridViewDeleteEventArgse){//調(diào)用公共類中的eccom方法,執(zhí)行SQL語句dataconn.eccom("deletefromtb_TaoTiwhereID='"+gvQueInfo.DataKeys[e.RowIndex].Value+"'");//跳轉(zhuǎn)后臺套題管理頁Page.Response.Redirect("taoti_xinxi.aspx");}4.3.2考試題目管理頁面設計考試題目管理頁的主要功能包括對考試題目進行添加、查詢、修改和刪除操作。添加考試題目信息時,需要選擇所屬的考試專業(yè)、課程和套題,然后再進行添加操作;在考試題目信息列表頁面中,可以通過選擇不的查詢條件(列如,考試類型、所屬課程、所屬套題和加入時間)并輸入相應的關鍵字,來實現(xiàn)查詢操作;根據(jù)實際需要,還可以實時更新考試題目中的詳細信息或者刪除考試題目??荚囶}目管理頁面運行效果如圖4.11所示。圖4.11考試題目管理頁考試題目管理頁頁面設計中,將顯示考試題目的表格控件GridView控件外觀應用了ASP.NET2.0中的主題外觀文件(后綴為.skin的文件)。ASP.NET2.0[8]提供了一種名為“主題”的新功能。此功能可應用于任何站點,通過更改主題即可輕松的維護對站點的樣式更改,而無須對站點各頁進行編輯;還可以與其他開發(fā)人員共享主題。考題的刪除、查詢操作與考試套題管理頁的刪除和查詢操作基本相同。在如圖4.12頁面中選擇所要添加的試題屬于哪個專業(yè)、哪門課程、哪一套題,并把所選項通過Session變量傳遞到InserShiTi.aspx頁面?!斑x擇”按鈕事件的相關設計如下:利用Session變量對象保存考試專業(yè)信息,考試課程信息、考試套題信息。Session["drop1"]=ddlProfession.Text;Session["drop2"]=ddlLesson.Text;Session["drop3"]=ddlQueName.Text;if(this.ddlLesson.Text==""){;//this.Label3.Text="請選擇考試課程";this.Label3.Visible=true;return;}if(this.ddlQueName.Text==""){//this.Label5.Text="請先添加考試試題!";this.Label5.Visible=true;return;}Page.Response.Redirect("InsertShiTi.aspx");圖4.12選擇考試專業(yè)、課題及套題名稱選擇完考試試題所屬專業(yè)、課程及套題后,單擊“選擇”按鈕,將進入InserShiTi.aspx考題設置頁面。在該頁面中填寫完試題信息并單擊“增加”按鈕后,試題會自動存儲到相應的數(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");}在該頁面中,用戶需要選擇所添加的試題是單選題還是多選題,該頁面的設計效果如圖4.13所示。圖4.13考題設置頁面4.3.3管理員與學生信息管理頁設計在后臺中由管理員對所有信息進行手動修改,而管理員自身也可修改管理員信息。在后臺管理員頁中,可以對管理員信息進行修改,包括管理員的添加、修改、刪除以及查詢功能。點擊修改按鈕,彈出管理員信息修改頁,運行效果如圖4.14所示。圖4.14管理員信息修改頁面相關設計如下:首先在文本框中顯示管理員信息,要實現(xiàn)此功能需連接數(shù)據(jù)庫。SqlConnectioncon=dataconn.getcon();con.Open();SqlDataAdaptermydataadapt
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025餐飲供貨合同范本「參考」
- 2025福建省農(nóng)作物種植基地預約生產(chǎn)購銷合同
- DB45T 2555-2022 澳洲堅果富硒栽培技術規(guī)程
- DB45T 2545-2022 中國鱟人工繁殖技術規(guī)程
- DB45T 2536-2022 五指毛桃組培苗生產(chǎn)技術規(guī)程
- 排水管施工組織方案
- 2025人事代理合同2
- 保險公司實習報告范文錦集9篇
- 2025企業(yè)安全生產(chǎn)合同
- 2024年度豪華別墅室內(nèi)裝飾設計及施工一體化協(xié)議書2篇
- 新型半導體材料與器件的創(chuàng)新研究
- 【恰恰食品企業(yè)營運能力存在的問題及優(yōu)化建議分析10000字(論文)】
- 紅色澳門回歸紀念日PPT模板課件
- 2024屆天津市河東區(qū)名校七年級數(shù)學第一學期期末統(tǒng)考試題含解析
- 股骨Hoffa骨折的手術入路及手術技巧課件
- 縣委書記在縣委審計委員會全體會議上的講話
- 2023年版:中國重癥肌無力診斷和治療指南(全文版)
- 平凡之路歌詞全文
- 2024年全國碩士研究生考試《英語二》模擬試卷一
- 報刊雜志發(fā)放登記表
- 信息傳輸原理知到章節(jié)答案智慧樹2023年同濟大學
評論
0/150
提交評論