畢業(yè)論文 基于web的網(wǎng)絡(luò)教學(xué)平臺_第1頁
畢業(yè)論文 基于web的網(wǎng)絡(luò)教學(xué)平臺_第2頁
畢業(yè)論文 基于web的網(wǎng)絡(luò)教學(xué)平臺_第3頁
畢業(yè)論文 基于web的網(wǎng)絡(luò)教學(xué)平臺_第4頁
畢業(yè)論文 基于web的網(wǎng)絡(luò)教學(xué)平臺_第5頁
已閱讀5頁,還剩52頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

密級:NANCHANGUNIVERSITY學(xué)士學(xué)位論文THESISOFBACHELOR(2008—2012年)題目:基于WEB的網(wǎng)絡(luò)教學(xué)平臺學(xué)院:軟件學(xué)院系軟件工程專業(yè)班級:軟件設(shè)計(jì)與開發(fā)學(xué)生姓名:學(xué)號:指導(dǎo)教師:職稱:副教授起訖日期:2011年11月-2012年5月

南昌大學(xué)學(xué)士學(xué)位論文原創(chuàng)性申明本人鄭重申明:所呈交的論文是本人在導(dǎo)師的指導(dǎo)下獨(dú)立進(jìn)行研究所取得的研究成果。除了文中特別加以標(biāo)注引用的內(nèi)容外,本論文不包含任何其他個(gè)人或集體已經(jīng)發(fā)表或撰寫的成果作品。對本文的研究作出重要貢獻(xiàn)的個(gè)人和集體,均已在文中以明確方式表明。本人完全意識到本申明的法律后果由本人承擔(dān)。作者簽名:日期:學(xué)位論文版權(quán)使用授權(quán)書本學(xué)位論文作者完全了解學(xué)校有關(guān)保留、使用學(xué)位論文的規(guī)定,同意學(xué)校保留并向國家有關(guān)部門或機(jī)構(gòu)送交論文的復(fù)印件和電子版,允許論文被查閱和借閱。本人授權(quán)南昌大學(xué)可以將本論文的全部或部分內(nèi)容編入有關(guān)數(shù)據(jù)庫進(jìn)行檢索,可以采用影印、縮印或掃描等復(fù)制手段保存和匯編本學(xué)位論文。保密□,在年解密后適用本授權(quán)書。本學(xué)位論文屬于不保密□。(請?jiān)谝陨舷鄳?yīng)方框內(nèi)打“√”)作者簽名:日期:導(dǎo)師簽名:日期:摘要引言課題背景隨著計(jì)算機(jī)技術(shù)與寬帶網(wǎng)絡(luò)的飛速發(fā)展,高校網(wǎng)絡(luò)綜合教學(xué)平臺為高校教學(xué)提供了一種新的手段和方式。它有效地發(fā)揮了遠(yuǎn)程教育的特點(diǎn),是一種跨地區(qū)的教育體制和教學(xué)模式?,F(xiàn)有的網(wǎng)絡(luò)教學(xué)平臺大多能支持以上傳下載、BBS和e-mail等為主要交互方式的各種實(shí)時(shí)、非實(shí)時(shí)的網(wǎng)絡(luò)教學(xué),實(shí)現(xiàn)了網(wǎng)絡(luò)環(huán)境下尤其是遠(yuǎn)程教育中處于分離狀態(tài)的教與學(xué)的再度整合。然而,網(wǎng)絡(luò)教學(xué)不是取代傳統(tǒng)方式的課堂教學(xué),而是將網(wǎng)絡(luò)教學(xué)模式和課堂教學(xué)融合在一起,吸收傳統(tǒng)課堂教學(xué)的優(yōu)點(diǎn),并克服其時(shí)間時(shí)空限制等弱點(diǎn),發(fā)揮網(wǎng)絡(luò)教學(xué)的優(yōu)點(diǎn),構(gòu)建的一種全新的教學(xué)模式。課題內(nèi)容此網(wǎng)絡(luò)教學(xué)平臺基于ASP.NET框架,在VisualStudio環(huán)境中運(yùn)用C#語言作為開發(fā)工具,結(jié)合SQLServer作為數(shù)據(jù)庫載體進(jìn)行數(shù)據(jù)操作。主要內(nèi)容是實(shí)現(xiàn)學(xué)生與教師對該平臺的使用以及管理員對數(shù)據(jù)的管理。在該系統(tǒng)中,用戶可進(jìn)行在線測試、查看考試結(jié)果、答疑、上傳下載資源、管理課件與試題、發(fā)帖回帖等操作。課題研究目的掌握基本的系統(tǒng)分析與設(shè)計(jì)思想掌握一類語言與數(shù)據(jù)庫結(jié)合的操作方式掌握簡單的多媒體技術(shù)課題研究意義在網(wǎng)絡(luò)技術(shù)高速發(fā)展的背景下,網(wǎng)絡(luò)教學(xué)逐漸成為改進(jìn)傳統(tǒng)教學(xué)的必要趨勢與潮流。網(wǎng)絡(luò)課堂是利用現(xiàn)代信息技術(shù),發(fā)展高素質(zhì)教育的一種教學(xué)方式。發(fā)展網(wǎng)絡(luò)教學(xué)具有以下重要意義:提高學(xué)習(xí)效率只要可以連接到Internet的地方就可以通過網(wǎng)絡(luò)課堂這個(gè)平臺進(jìn)行學(xué)習(xí)交流,一定程度上消除了時(shí)間與空間限制。學(xué)生不必再因?yàn)闆]有聽清楚內(nèi)容或者忘記內(nèi)容而耽誤學(xué)習(xí),極大的提高了學(xué)習(xí)效率。學(xué)生利用教學(xué)資源,可以根據(jù)自身情況、自身特點(diǎn)和需求來學(xué)習(xí)并發(fā)散思維,極大限度地激發(fā)了學(xué)習(xí)潛能。促進(jìn)教學(xué)結(jié)構(gòu)改革對于教學(xué)結(jié)構(gòu)的改革,在觀念和體制的束縛下難以推進(jìn),而觀念的改變是一個(gè)漸進(jìn)的過程,開展網(wǎng)絡(luò)教學(xué)可以促進(jìn)這一過程的進(jìn)行,讓教師和學(xué)生逐漸從習(xí)慣課堂教學(xué)過渡到接受網(wǎng)絡(luò)教學(xué)。促進(jìn)高校整體的管理教學(xué)資源數(shù)量類別龐大,建立網(wǎng)絡(luò)教學(xué)平臺可以更好的管理它們,也為學(xué)生提供了更方便快捷的學(xué)習(xí)資源。網(wǎng)絡(luò)綜合教學(xué)平臺也促進(jìn)了教學(xué)信息的管理??尚行苑治霰鞠到y(tǒng)可行性高,具有技術(shù)可行性、經(jīng)濟(jì)可行性與操作可行性。技術(shù)可行性本系統(tǒng)建立在win7系統(tǒng)上,利用VisualStudio2010作為開發(fā)工具,結(jié)合SQLServer2008,以C#作為開發(fā)語言進(jìn)行系統(tǒng)開發(fā)實(shí)現(xiàn)。在系統(tǒng)分析與過程中,選用OfficeVisio2010作為圖形圖像制作工具。技術(shù)可行性高。經(jīng)濟(jì)可行性系統(tǒng)投入使用后可幫助各高?;蚪逃龣C(jī)構(gòu)節(jié)省大量人力物力。所帶來的效益遠(yuǎn)遠(yuǎn)大于系統(tǒng)軟件的開發(fā)成本。在經(jīng)濟(jì)上完全可行。操作可行性頁面設(shè)計(jì)簡單,操作方便,錄入數(shù)據(jù)快速可靠,適應(yīng)性強(qiáng),可移植,容易擴(kuò)充,操作可行性高。背景相關(guān)技術(shù)及其理論本網(wǎng)絡(luò)教學(xué)平臺采用ASP.NET技術(shù),在VisualStudio2010平臺上使用C#開發(fā)語言實(shí)現(xiàn),以SQLSEVER2008作為數(shù)據(jù)載體。SQLServer2008SQL全稱是“結(jié)構(gòu)化查詢語言(StructuredQueryLanguage)”,最早的是IBM的圣約瑟研究實(shí)驗(yàn)室為其關(guān)系數(shù)據(jù)庫管理系統(tǒng)SYSTEMR開發(fā)的一種查詢語言,它的前身是SQUARE語言。SQL語言結(jié)構(gòu)簡潔,功能強(qiáng)大,簡單易學(xué),所以自從IBM公司1981年推出以來,SQL語言,得到了廣泛的應(yīng)用。SQLServer2008允許你在使用Microsoft.NET和VisualStudio開發(fā)的自定義應(yīng)用程序中使用數(shù)據(jù),在面向服務(wù)的架構(gòu)(SOA)和通過MicrosoftBizTalkServer進(jìn)行的業(yè)務(wù)流程中使用數(shù)據(jù)。信息工作人員可以通過他們?nèi)粘J褂玫墓ぞ咧苯釉L問數(shù)據(jù)。SQLServer2008提供一個(gè)可信的、高效率智能數(shù)據(jù)平臺,可以滿足你的所有數(shù)據(jù)需求。SQLServer2008的最大優(yōu)點(diǎn):保護(hù)您的信息、提供可預(yù)測響應(yīng)、最大限度地減少管理監(jiān)視、集成任何數(shù)據(jù)、提供相關(guān)信息。VisualStudio2010VisualStudio是一套完整的開發(fā)工具,用于生成ASP.NETWeb應(yīng)用程序、XMLWebservices、桌面應(yīng)用程序和移動應(yīng)用程序。VisualBasic、VisualC#和VisualC++都使用相同的集成開發(fā)環(huán)境(IDE),這樣就能夠進(jìn)行工具共享,并能夠輕松地創(chuàng)建混合語言解決方案。另外,這些語言使用.NETFramework的功能,它提供了可簡化ASPWeb應(yīng)用程序和XMLWebservices開發(fā)的關(guān)鍵技術(shù)。在VisualStudio2010中,微軟利用WindowsPresentationFoundation完全重建了編輯器,這為開發(fā)者提供了靈活、功能豐富的開發(fā)環(huán)境,并支持多顯示器——即開發(fā)者可以同時(shí)在多臺顯示器上查看代碼、用戶界面設(shè)計(jì)器和數(shù)據(jù)庫結(jié)構(gòu)。ASP.NETASP.NET是一個(gè)統(tǒng)一的Web開發(fā)模型,它包括使用盡可能少的代碼生成企業(yè)級Web應(yīng)用程序所必需的各種服務(wù)。ASP.NET作為.NETFramework的一部分提供。當(dāng)編寫ASP.NET應(yīng)用程序的代碼時(shí),可以訪問.NETFramework中的類??梢允褂门c公共語言運(yùn)行庫(CLR)兼容的任何語言來編寫應(yīng)用程序的代碼,這些語言包括MicrosoftVisualBasic、C#、JScript.NET和J#。使用這些語言,可以開發(fā)利用公共語言運(yùn)行庫、類型安全、繼承等方面的優(yōu)點(diǎn)的ASP.NET應(yīng)用程序。ASP.NET包括頁和控件框架、ASP.NET編譯器、安全基礎(chǔ)結(jié)構(gòu)、狀態(tài)管理功能、應(yīng)用程序配置、運(yùn)行狀況監(jiān)視和性能功能、調(diào)試支持、XMLWebservices框架、可擴(kuò)展的宿主環(huán)境和應(yīng)用程序生命周期管理、可擴(kuò)展的設(shè)計(jì)器環(huán)境。ASP.NET的強(qiáng)大優(yōu)勢:執(zhí)行效率的大幅提高、世界級的工具支持、強(qiáng)大性和適應(yīng)性、簡單性和易學(xué)性、高效可管理性、多處理器環(huán)境的可靠性、自定義性和可擴(kuò)展性、安全性。C#C#(讀作“Csharp”)是一種編程語言,它是為生成在.NETFramework上運(yùn)行的各種應(yīng)用程序而設(shè)計(jì)的。C#簡單、功能強(qiáng)大、類型安全,而且是面向?qū)ο蟮?。C#憑借在許多方面的創(chuàng)新,在保持C語言風(fēng)格的表現(xiàn)力和雅致特征的同時(shí),實(shí)現(xiàn)了應(yīng)用程序的快速開發(fā)。VisualC#是Microsoft對C#語言的實(shí)現(xiàn)。VisualStudio通過功能齊全的代碼編輯器、編譯器、項(xiàng)目模板、設(shè)計(jì)器、代碼向?qū)?、功能?qiáng)大而易用的調(diào)試器以及其他工具,實(shí)現(xiàn)了對VisualC#的支持。通過.NETFramework類庫,可以訪問許多操作系統(tǒng)服務(wù)和其他有用的精心設(shè)計(jì)的類,這些類可顯著加快開發(fā)周期。第二章需求分析與總體功能需求分析與總體功能需求分析開發(fā)網(wǎng)絡(luò)教學(xué)平臺的必要性信息化是當(dāng)今世界經(jīng)濟(jì)和社會發(fā)展的大趨勢,20世紀(jì)80年代以來,科學(xué)技術(shù)特別是信息技術(shù)和生命科學(xué)的不斷突破,對世界政治、經(jīng)濟(jì)、文化生活將產(chǎn)生更加深刻的影響。在教育領(lǐng)域,一方面,以互聯(lián)網(wǎng)和多媒體技術(shù)為核心的信息技術(shù)已成為教學(xué)和學(xué)習(xí)的重要工具,另一方面,知識經(jīng)濟(jì)時(shí)代,信息素養(yǎng)已成為科學(xué)素養(yǎng)的重要基礎(chǔ),這對基礎(chǔ)教育的培養(yǎng)目標(biāo)提出新的挑戰(zhàn),尤其是對學(xué)生的信息技術(shù)素養(yǎng)提出了新的要求。也就是說,信息化社會的合格基礎(chǔ)教育畢業(yè)生應(yīng)具備迅速地篩選和獲取信息、創(chuàng)造性地加工和處理信息并利用信息解決問題的能力,而且,學(xué)生掌握和運(yùn)用信息技術(shù)的能力應(yīng)與讀、寫、算并列,作為基礎(chǔ)教育應(yīng)培養(yǎng)的學(xué)生終身有用的基礎(chǔ)能力。教育信息化已經(jīng)是時(shí)代的選擇,歷史的必然,網(wǎng)絡(luò)環(huán)境的逐漸建立,使學(xué)與教必然隨之調(diào)整。一般的網(wǎng)絡(luò)教學(xué)平臺功能現(xiàn)有的網(wǎng)絡(luò)教學(xué)平臺大多是能支持以上傳下載、點(diǎn)播、BBS和e-mail等為主要交互方式的各種實(shí)時(shí)、非實(shí)時(shí)的網(wǎng)絡(luò)教學(xué),實(shí)現(xiàn)了網(wǎng)絡(luò)環(huán)境下尤其是遠(yuǎn)程教育中處于分離狀態(tài)的教與學(xué)的再度整合。本網(wǎng)絡(luò)教學(xué)平臺功能簡介本系統(tǒng)主要針對在線測試、教學(xué)資源的上傳下載、后臺管理對網(wǎng)絡(luò)教學(xué)平臺進(jìn)行初步的開發(fā)研究。系統(tǒng)中主要有三類用戶:學(xué)生、教師、管理員。所有用戶可查看平臺最新新聞、最新帖子。學(xué)生可進(jìn)行在線測試、查看考試結(jié)果、進(jìn)行提問、下載資源。教師可進(jìn)行課件管理、試題管理、答疑、查看學(xué)生考試結(jié)果。學(xué)生與教師可在論壇發(fā)帖回帖。管理員可進(jìn)行班級管理、帖子管理、課程管理、用戶管理。通用操作本系統(tǒng)各類用戶除了各自特定的功能權(quán)限外,還具有一些共同的操作功能。登錄用戶在登錄界面輸入用戶名密碼,選擇角色之后,若該用戶是否具有該角色的相應(yīng)權(quán)限,則登錄成功并進(jìn)入相應(yīng)模塊。修改密碼用戶登錄成功之后,可對密碼進(jìn)行修改。找回密碼在用戶登錄頁面,若用戶忘記密碼,可點(diǎn)擊鏈接進(jìn)行找回密碼操作。查看新聞用戶在公共模塊可點(diǎn)擊新聞鏈接,進(jìn)入該新聞具體信息頁面,查看新聞。查看最新熱帖用戶在公共模塊可點(diǎn)擊最新熱貼鏈接,進(jìn)入該帖子頁面,查看帖子,但登錄前不能發(fā)表評論。各類用戶操作功能本系統(tǒng)有三類用戶,分別為學(xué)生、教師、管理員,各類用戶操作功能不同。學(xué)生查看課程信息學(xué)生可查看所學(xué)課程的基本信息,在該課程信息頁面可查看課件、課程視頻及下載課件。在線測試學(xué)生可選擇對某門所學(xué)課程進(jìn)行在線測試,提交考卷后系統(tǒng)會自動顯示考試結(jié)果。提問學(xué)生進(jìn)入答疑中心,可查看自己所提交的問題,或進(jìn)行提問。論壇發(fā)帖在論壇中,學(xué)生可進(jìn)行發(fā)帖、回復(fù)。查看考試結(jié)果學(xué)生可查詢自己以往的考試結(jié)果。教師課件管理教師可查看自己上傳的課件、視頻信息,可刪除或繼續(xù)上傳課件或視頻。試題管理教師可對自己添加的試題進(jìn)行修改或刪除操作,可在線出題。在線答疑教師進(jìn)入答疑中心,可對學(xué)生的提問進(jìn)行回復(fù)。學(xué)生考試結(jié)果教師可查詢學(xué)生的考試結(jié)果。論壇發(fā)帖在論壇中,教師可進(jìn)行發(fā)帖、回復(fù)操作。管理員課程管理在課程管理頁面,管理員可添加或刪除課程。帖子管理管理員可進(jìn)行刪除帖子操作。用戶管理管理員可對學(xué)生用戶與教師用戶進(jìn)行添加刪除操作,添加用戶時(shí)默認(rèn)密碼與學(xué)號相同。班級管理管理員可添加或刪除班級,點(diǎn)擊班級,可進(jìn)行班級課程管理,為相應(yīng)的班級分配課程。系統(tǒng)總體功能圖本系統(tǒng)分為四個(gè)模塊,分別為公共操作模塊、學(xué)子在線、教師空間、管理員空間。所有用戶可在公共模塊查看新聞、帖子。學(xué)生用戶登錄后進(jìn)入學(xué)子在線模塊,可查看課程信息、在線測試、查看考試結(jié)果、提問、下載資源、進(jìn)入論壇。教師用戶登錄后進(jìn)入教師空間模塊,可進(jìn)行課程管理、試題管理、答疑、查看學(xué)生考試結(jié)果、進(jìn)入論壇。管理員用戶登錄后進(jìn)入管理員空間模塊,可管理班級、管理帖子、管理課程、管理用戶。經(jīng)過以上分析,得到系統(tǒng)的總體功能圖: 系統(tǒng)總體功能圖第三章數(shù)據(jù)庫設(shè)計(jì)與實(shí)現(xiàn)數(shù)據(jù)庫設(shè)計(jì)與實(shí)現(xiàn)本系統(tǒng)利用SQLServer2008數(shù)據(jù)庫作為數(shù)據(jù)信息的存儲載體。數(shù)據(jù)庫系統(tǒng)分析本系統(tǒng)使用一個(gè)名為NetworkTeaching的數(shù)據(jù)庫存儲數(shù)據(jù)信息,數(shù)據(jù)操作則通過數(shù)據(jù)庫中表與表之間的關(guān)聯(lián)實(shí)現(xiàn)。數(shù)據(jù)庫NetworkTeaching中主要有以下表格:數(shù)據(jù)庫表列表序號表名備注1dbo.Admin管理員表2dbo.Answer問題回復(fù)表3dbo.Bulletin新聞公告4dbo.Class班級表5dbo.ClassCourse班級課程表6dbo.Course課程表7dbo.Courseware課件表8dbo.Post帖子表9dbo.Question問題表10dbo.Reply帖子回復(fù)表11dbo.Score考試成績表12dbo.Student學(xué)生表13dbo.Teacher教師表14dbo.Test試題表15dbo.Video視頻表數(shù)據(jù)庫邏輯設(shè)計(jì)數(shù)據(jù)庫關(guān)系模式經(jīng)過分析,本系統(tǒng)的數(shù)據(jù)庫關(guān)系模式如下所示:管理員(系統(tǒng)編號,管理員編號,管理員姓名,管理員密碼)問題回復(fù)(系統(tǒng)編號,教師編號,問題編號,回復(fù)內(nèi)容,回復(fù)時(shí)間)新聞公告(系統(tǒng)編號,新聞公告標(biāo)題,新聞公告內(nèi)容,發(fā)布日期)班級(系統(tǒng)編號,班級編號,班級名稱,所屬專業(yè))班級課程(系統(tǒng)編號,班級編號,課程編號)課程(系統(tǒng)編號,課程編號,課程名稱,教師編號,所屬專業(yè),課程簡介)課件(系統(tǒng)編號,課件編號,課件名稱,上傳時(shí)間,課程編號,課件路徑)帖子(系統(tǒng)編號,帖子編號,帖子主題,帖子內(nèi)容,用戶編號,創(chuàng)建時(shí)間)問題(系統(tǒng)編號,問題編號,問題名稱,學(xué)生編號,提問時(shí)間,問題狀態(tài))帖子回復(fù)(系統(tǒng)編號,帖子編號,發(fā)帖者編號,回帖時(shí)間,回復(fù)內(nèi)容)考試成績(系統(tǒng)編號,學(xué)生編號,課程名稱,考試成績,學(xué)生答案,正確答案)學(xué)生(系統(tǒng)編號,學(xué)生編號,學(xué)生姓名,學(xué)生密碼,學(xué)生性別,班級編號,身份證號)教師(系統(tǒng)編號,教師編號,教師姓名,教師密碼,身份證號,教師性別)試題(系統(tǒng)編號,試題編號,試題名稱,答案選項(xiàng)1,答案選項(xiàng)2,答案選項(xiàng)3,答案選項(xiàng)4,正確答案,是否發(fā)布,課程編號,教師編號)視頻(系統(tǒng)編號,視頻編號,視頻標(biāo)題,視頻名稱,視頻存儲名稱,視頻內(nèi)容,上傳時(shí)間,視頻路徑,視頻圖片,視頻類型,課程編號,教師編號)數(shù)據(jù)庫E-R圖 數(shù)據(jù)庫E-R圖數(shù)據(jù)庫實(shí)現(xiàn)經(jīng)過分析,本系統(tǒng)數(shù)據(jù)存儲涉及數(shù)據(jù)庫中15個(gè)表格,其數(shù)據(jù)字典如下所示:管理員dbo.Admin序號列名數(shù)據(jù)類型長度標(biāo)識主鍵允許空說明1IDint4是否系統(tǒng)編號2adminNumvarchar50是否管理員編號3adminNamevarchar50是管理員姓名4adminPwdvarchar50是管理員密碼問題回復(fù)dbo.Answer序號列名數(shù)據(jù)類型長度標(biāo)識主鍵允許空說明1IDint4是是否系統(tǒng)編號2teacherIdvarchar50是教師編號(外鍵)3questionIdvarchar50是問題編號(外鍵)4answerContentvarcharMAX是回復(fù)內(nèi)容5answerTimedatetime8是回復(fù)時(shí)間新聞公告dbo.Bulletin序號列名數(shù)據(jù)類型長度標(biāo)識主鍵允許空說明1IDint4是是否系統(tǒng)編號2titlevarchar50是新聞公告標(biāo)題3contentsvarcharMAX是新聞公告內(nèi)容4issuanceDatedatetime8是發(fā)布時(shí)間班級dbo.Class序號列名數(shù)據(jù)類型長度標(biāo)識主鍵允許空說明1IDint4是否系統(tǒng)編號2classIdvarchar50是否班級編號3classNamevarchar50是班級名稱4majorvarchar50是所屬專業(yè)班級dbo.ClassCourse序號列名數(shù)據(jù)類型長度標(biāo)識主鍵允許空說明1IDint4是否系統(tǒng)編號2classIdvarchar50是否班級編號3courseIdvarchar50是否課程編號課程dbo.Course序號列名數(shù)據(jù)類型長度標(biāo)識主鍵允許空說明1IDint4是否系統(tǒng)編號2courseIdvarchar50是否課程編號3courseNamevarchar50是課程名稱4teacherIdvarchar50是教師編號(外鍵)5majorvarchar50是所屬專業(yè)6introductionvarchar50是課程簡介課件dbo.Courseware序號列名數(shù)據(jù)類型長度標(biāo)識主鍵允許空說明1IDint4是否系統(tǒng)編號2coursewareIdvarchar50是否課件編號3coursewareNamevarchar50是課件名稱4teacherIdvarchar50是教師編號(外鍵)5coursewareTimedatetime8是課件上傳時(shí)間6courseIdvarchar50是課程編號(外鍵)7coursewarePathvarcharMAX是課件路徑帖子dbo.Post序號列名數(shù)據(jù)類型長度標(biāo)識主鍵允許空說明1IDint4是否系統(tǒng)編號2postIdvarchar50是否帖子編號3threadvarchar50是帖子主題4contentsvarcharMAX是帖子內(nèi)容5userIdvarchar50是用戶編號(學(xué)生或教師)6createTimedatetime8是創(chuàng)建時(shí)間問題dbo.Question序號列名數(shù)據(jù)類型長度標(biāo)識主鍵允許空說明1IDint4是否系統(tǒng)編號2questionIdvarchar50是否問題編號3questionNamevarchar50是問題4studentIdvarchar50是學(xué)生編號(外鍵)5questionTimedatetime8是問題發(fā)布時(shí)間6statusbit1是問題狀態(tài)帖子回復(fù)dbo.Reply序號列名數(shù)據(jù)類型長度標(biāo)識主鍵允許空說明1IDint4是是否系統(tǒng)編號2postIdvarchar50是帖子編號(外鍵)3userIdvarchar50是用戶編號(學(xué)生或教師)4replyTimedatetime8是回復(fù)時(shí)間5replyContentvarcharMAX是回復(fù)內(nèi)容考試成績dbo.Score序號列名數(shù)據(jù)類型長度標(biāo)識主鍵允許空說明1IDint4是是否系統(tǒng)編號2studentIdvarchar50否學(xué)生編號(外鍵)3courseIdvarchar50是課程編號(外鍵)4scoreint4是成績5studentAnsvarchar50是學(xué)生答案6rightAnsvarchar50是正確答案學(xué)生dbo.Student序號列名數(shù)據(jù)類型長度標(biāo)識主鍵允許空說明1IDint4是否系統(tǒng)編號2studentNumvarchar50是否學(xué)生編號3studentNamevarchar50是學(xué)生姓名4studentPwdvarchar50是學(xué)生密碼5studentSexvarchar50是學(xué)生性別7classIdvarchar50是班級編號(外鍵)8idNumbervarchar50是身份證號教師dbo.Teacher序號列名數(shù)據(jù)類型長度標(biāo)識主鍵允許空說明1IDint4是否系統(tǒng)編號2teacherNumvarchar50是否教師編號3teacherNamevarchar50是教師姓名4teacherPwdvarchar50是教師密碼6idNumbervarchar50是身份證號7teacherSexvarchar50是教師性別試題dbo.Test序號列名數(shù)據(jù)類型長度標(biāo)識主鍵允許空說明1IDint4是否系統(tǒng)編號2testIdvarchar50是否試題編號3testTopicvarchar50是試題內(nèi)容4testAns1varchar50是答案選項(xiàng)15testAns2varchar50是答案選項(xiàng)26testAns3varchar50是答案選項(xiàng)37testAns4varchar50是答案選項(xiàng)48rightAnsvarchar50是正確答案9pubbit1是是否發(fā)布10courseIdvarchar50是課程編號(外鍵)11teacherIdvarchar50是教師編號(外鍵)視頻dbo.Video序號列名數(shù)據(jù)類型長度標(biāo)識主鍵允許空說明1IDint4是否系統(tǒng)編號2videoIdvarchar50是否視頻編號3videoTitlevarchar50是視頻標(biāo)題4videoNamevarchar50是視頻名稱5videoSaveNamevarchar50是視頻存儲名稱6videoContentvarcharMAX是視頻內(nèi)容7videoDatevarchar50是視頻上傳時(shí)間8videoPathvarcharMAX是視頻路徑9videoPicturevarcharMAX是視頻圖片10videoTypevarchar50是視頻類型11courseIdvarchar50是課程編號(外鍵)12teacherIdvarchar50是教師編號(外鍵)第四章系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)系統(tǒng)設(shè)計(jì)總體框架設(shè)計(jì)本系統(tǒng)運(yùn)用ASP.NET框架,使用C#語言在VisualStudio2010環(huán)境中進(jìn)行網(wǎng)站的設(shè)計(jì)開發(fā)。項(xiàng)目資源管理圖如上圖所示,本系統(tǒng)將公共操作的方法類提取存放在App_Code中,在App_Themes中設(shè)置主題并編寫css文件存放在文件夾css中以實(shí)現(xiàn)系統(tǒng)風(fēng)格的統(tǒng)一,文件夾admin存放實(shí)現(xiàn)管理員功能的各個(gè)操作頁面,文件夾student與teacher則分別存放學(xué)生用戶與教師用戶實(shí)現(xiàn)功能的各個(gè)頁面,文件夾courseware存放教師上傳的普通課件,文件夾upFiles存放教師上傳的視頻,video則是視頻轉(zhuǎn)換工具ffmpeg的安裝文件夾,其他頁面則實(shí)現(xiàn)用戶的公共功能,如AddPost.aspx及其后臺文件實(shí)現(xiàn)了學(xué)生教師發(fā)帖的功能,Default.aspx則是公共模塊的實(shí)現(xiàn)頁面。公共類與外觀在本系統(tǒng)中,將公共操作與特殊功能實(shí)現(xiàn)類提取到.cs文件中。如將與數(shù)據(jù)庫的交互提取到操作類BaseClass.cs中,主要實(shí)現(xiàn)對數(shù)據(jù)庫的基本操作及對用戶訪問權(quán)限的驗(yàn)證。通過后臺代碼管理及公共類FileOperation.cs與OperateMethod.cs的使用實(shí)現(xiàn)文件不同名上傳、視頻格式轉(zhuǎn)換等各種數(shù)據(jù)處理要求。結(jié)合css樣式、主題與模版的使用,實(shí)現(xiàn)了系統(tǒng)風(fēng)格的統(tǒng)一。下面簡單介紹下以上各文件在本系統(tǒng)中的應(yīng)用與實(shí)現(xiàn):數(shù)據(jù)庫操作類數(shù)據(jù)庫操作類BaseClass.cs實(shí)現(xiàn)了對數(shù)據(jù)庫的基本操作及用戶登錄權(quán)限的驗(yàn)證。其關(guān)鍵代碼如下:publicstaticSqlConnectionDBCon()//連接數(shù)據(jù)庫{returnnewSqlConnection("server=CAPRICORN\\SQLEXPRESS;database=NetworkTeaching;uid=sa;pwd=sa;");}publicstaticvoidBindDG(GridViewdg,stringid,stringstrSql,stringTname)//綁定GridView控件{SqlConnectionconn=DBCon();SqlDataAdaptersda=newSqlDataAdapter(strSql,conn);DataSetds=newDataSet();sda.Fill(ds,Tname);dg.DataSource=ds.Tables[Tname];dg.DataKeyNames=newstring[]{id};dg.DataBind();}publicstaticboolOperateData(stringstrsql)//執(zhí)行sql語句{SqlConnectionconn=DBCon();conn.Open();SqlCommandcmd=newSqlCommand(strsql,conn);intisEx=cmd.ExecuteNonQuery();conn.Close();if(isEx>0)returntrue;elsereturnfalse;}publicstaticboolCheckStudent(stringstudentNum,stringstudentPwd)//驗(yàn)證學(xué)生用戶{SqlConnectionconn=DBCon();conn.Open();SqlCommandcmd=newSqlCommand("selectcount(*)fromStudentwherestudentNum='"+studentNum+"'andstudentPwd='"+studentPwd+"'",conn);inti=Convert.ToInt32(cmd.ExecuteScalar());if(i>0)returntrue;elsereturnfalse;}publicstaticboolCheckTeacher(stringteacherNum,stringteacherPwd)//驗(yàn)證教師用戶{SqlConnectionconn=DBCon();conn.Open();SqlCommandcmd=newSqlCommand("selectcount(*)fromTeacherwhereteacherNum='"+teacherNum+"'andteacherPwd='"+teacherPwd+"'",conn);inti=Convert.ToInt32(cmd.ExecuteScalar());conn.Close();if(i>0)returntrue;elsereturnfalse;}publicstaticboolCheckAdmin(stringadminNum,stringadminPwd)//驗(yàn)證管理員用戶{SqlConnectionconn=DBCon();conn.Open();SqlCommandcmd=newSqlCommand("selectcount(*)fromAdminwhereadminNum='"+adminNum+"'andadminPwd='"+adminPwd+"'",conn);inti=Convert.ToInt32(cmd.ExecuteScalar());conn.Close();if(i>0)returntrue;elsereturnfalse;}publicstaticstringGetTier(stringsql)//執(zhí)行sql語句并獲取結(jié)果中首行首列的值{SqlConnectionconn=DBCon();conn.Open();SqlCommandcmd=newSqlCommand(sql,conn);SqlDataReadersdr=cmd.ExecuteReader();sdr.Read();//讀取一條記錄stringtier=sdr[0].ToString();//獲取首列的值conn.Close();returntier;}publicstaticDataTableGetRows(stringsql)//執(zhí)行sql語句,將結(jié)果填充到某個(gè)表中并返回表中所有數(shù)據(jù){DataSetds;SqlConnectionconn=DBCon();conn.Open();SqlDataAdaptersda=newSqlDataAdapter(sql,conn);ds=newDataSet();sda.Fill(ds);conn.Close();returnds.Tables[0];}}上傳文件與視頻轉(zhuǎn)換類公共類FileOperation.cs實(shí)現(xiàn)了不同名上傳文件的功能,OperateMethod.cs則進(jìn)行對上傳視頻的轉(zhuǎn)換格式操作。FileOperation.cs關(guān)鍵代碼如下:publicstaticstringGetAFileNameString(stringstrUserSeqID,stringstrFileNameTitle)//得到一個(gè)不重復(fù)的文件名(年月日_時(shí)分秒_微秒_UserSeqID){stringstrTemp,strYear,strMonth,strDay,strHour,strMinute,strSecond,strMillisecond;DateTimedt=DateTime.Now;strYear=dt.Year.ToString();strMonth=(dt.Month>9)?dt.Month.ToString():"0"+dt.Month.ToString();strDay=(dt.Day>9)?dt.Day.ToString():"0"+dt.Day.ToString();strHour=(dt.Hour>9)?dt.Hour.ToString():"0"+dt.Hour.ToString();strMinute=(dt.Minute>9)?dt.Minute.ToString():"0"+dt.Minute.ToString();strSecond=(dt.Second>9)?dt.Second.ToString():"0"+dt.Second.ToString();strMillisecond=dt.Millisecond.ToString();strTemp=strYear+strMonth+strDay+"_"+strHour+strMinute+strSecond+"_"+strMillisecond+"_"+strUserSeqID.Trim()+"_"+strFileNameTitle;//配置文件名returnstrTemp;}OperateMethod.cs關(guān)鍵代碼如下:publicstaticboolChangeVideoType(stringfileName,stringplayFile,stringimgFile)//轉(zhuǎn)換視頻格式(需要轉(zhuǎn)換的的視頻路徑、視頻轉(zhuǎn)換后保存的路徑、視頻抓圖后保存的路徑){stringffmpeg=System.Web.HttpContext.Current.Server.MapPath("~/")+ffmpegtool;//獲取視頻轉(zhuǎn)換工具的路徑stringName=System.Web.HttpContext.Current.Server.MapPath("~/")+upFile+"/"+fileName;//獲取需要轉(zhuǎn)換的視頻路徑if((!System.IO.File.Exists(ffmpeg))||(!System.IO.File.Exists(Name)))returnfalse;stringflvFile=playFile;//獲取視頻轉(zhuǎn)換后需要保存的路徑Processpss=newProcess();//新建一個(gè)進(jìn)程,使用該進(jìn)程運(yùn)行轉(zhuǎn)換工具ffmpegpss.StartInfo.CreateNoWindow=false;pss.StartInfo.FileName=ffmpeg;pss.StartInfo.Arguments="-i"+Name+"-ab128-ar22050-qscale6-r29.97-s"+widthOfFile+"x"+heightOfFile+""+flvFile;try{pss.Start();while(!pss.HasExited)continue;CatchImg(Name,imgFile);//獲取視頻圖片System.Threading.Thread.Sleep(4000);if(!File.Exists(imgFile))//如果視頻圖片存在,則將其拷貝到images文件夾中{File.Copy(System.Web.HttpContext.Current.Server.MapPath("../")+"images\\default.gif",imgFile);}returntrue;}catch{returnfalse;}}css樣式、主題與模版css樣式實(shí)現(xiàn)了導(dǎo)航的外觀,主題使網(wǎng)站中所有GridView控件擁有相同的外觀,模版的使用使各模版塊具有相同的風(fēng)格。css樣式關(guān)鍵代碼如下:.left//導(dǎo)航欄左半框的樣式{background-image:url(../images/left.gif);height:40px;width:2px;}.line//導(dǎo)航欄中按鈕分割線的樣式{background-image:url(../images/line.gif);width:2px;height:40px;}.student//學(xué)子在線模版導(dǎo)航欄上方圖片樣式{background-image:url(../images/student.gif);}.teacher//教師空間模版導(dǎo)航欄上方圖片樣式{background-image:url(../images/teacher.gif);}.manager//管理員空間模版導(dǎo)航欄上方圖片樣式{background-image:url(../images/manage.gif);}.student_current//點(diǎn)擊前導(dǎo)航欄按鈕樣式{background-image:url(../images/s.gif);width:110px;height:40px;}.student_current:hover//光標(biāo)放到導(dǎo)航欄按鈕上時(shí)按鈕樣式{background-image:url(../images/s_hover.gif);}.student_end//點(diǎn)擊后導(dǎo)航欄按鈕樣式{background-image:url(../images/s_end.gif);width:100px;height:40px;}.right//導(dǎo)航欄右半框的樣式{background-image:url(../images/right.gif);width:2px;}a:link//鼠標(biāo)點(diǎn)擊時(shí)鏈接樣式{text-decoration:none;color:Silver}a:active//超級鏈接初始狀態(tài){text-decoration:blink;}a:hover//鼠標(biāo)放上去時(shí)鏈接樣式{text-decoration:none;color:Red}a:visited//訪問過后鏈接樣式{text-decoration:none;color:Orange}主題的使用本系統(tǒng)大部分?jǐn)?shù)據(jù)呈現(xiàn)主要通過GridView控件實(shí)現(xiàn),通過主題思想可達(dá)到統(tǒng)一GridView控件的目的。主題的設(shè)計(jì)與實(shí)現(xiàn)主要通過在Web.config中引入主題“myTheme”,并在myTheme中添加皮膚文件“SkinFile.skin”,在該皮膚文件中添加GridView樣式設(shè)置,設(shè)置完畢該樣式將作用于系統(tǒng)中所有GridView控件。Web.config關(guān)鍵代碼如下:<system.web><pagestheme="myTheme"/>//添加主題myTheme</system.web>SkinFile.skin關(guān)鍵代碼如下:<asp:GridViewrunat="server">//GridView整體樣式設(shè)置<AlternatingRowStyleBackColor="White"/><EditRowStyleBackColor="#2461BF"/><FooterStyleBackColor="#507CD1"Font-Bold="True"ForeColor="White"/><HeaderStyleBackColor="#507CD1"Font-Bold="True"ForeColor="White"/><PagerStyleBackColor="#2461BF"ForeColor="White"HorizontalAlign="Center"/><RowStyleBackColor="#EFF3FB"/><SelectedRowStyleBackColor="#D1DDF1"Font-Bold="True"ForeColor="#333333"/><SortedAscendingCellStyleBackColor="#F5F7FB"/><SortedAscendingHeaderStyleBackColor="#6D95E1"/><SortedDescendingCellStyleBackColor="#E9EBEF"/><SortedDescendingHeaderStyleBackColor="#4870BE"/></asp:GridView>模版本系統(tǒng)以藍(lán)色為基調(diào),體現(xiàn)教學(xué)平臺的沉穩(wěn)、理智、準(zhǔn)確與嚴(yán)謹(jǐn)?shù)耐瑫r(shí),又不流于古板沉悶,不容易造成視覺疲勞,有利于維持學(xué)生的學(xué)習(xí)熱情。本系統(tǒng)有三個(gè)模版頁,分別為學(xué)子在線、教師空間與管理員空間。學(xué)子在線如下圖所示:學(xué)子在線模版教師空間如下圖所示:教師空間模版管理員空間如下圖所示:管理員空間模版系統(tǒng)實(shí)現(xiàn)本系統(tǒng)分為四個(gè)模塊,分別為通用模塊、學(xué)子在線、教師空間、管理員空間。在實(shí)現(xiàn)過程中,基本按照分模塊實(shí)現(xiàn)的方式實(shí)現(xiàn)。所有用戶可在通用模塊中查看平臺最新新聞、最新帖子、登錄系統(tǒng)。在學(xué)子在線,學(xué)生可進(jìn)行在線測試、查看考試結(jié)果、進(jìn)行提問、下載資源。教師可在教師空間進(jìn)行課件管理、出題、答疑、查看學(xué)生考試結(jié)果。學(xué)生與教師均可從相應(yīng)的模塊進(jìn)入在論壇并進(jìn)行發(fā)帖回帖操作。管理員在管理員空間可進(jìn)行班級管理、帖子管理、課程管理、用戶管理以及班級課程管理。通用模塊進(jìn)入首頁運(yùn)行頁面Default.aspx,進(jìn)入系統(tǒng)公共模塊,如下圖4.5所示:系統(tǒng)公共模塊頁在系統(tǒng)公共模塊頁面中,系統(tǒng)通過數(shù)據(jù)庫查詢操作將最新新聞信息與論壇帖子信息分別綁定到兩個(gè)BulletedList控件上,實(shí)現(xiàn)關(guān)鍵代碼如下:protectedvoidPage_Load(objectsender,EventArgse){stringstrNews="selecttop5ID,titlefromBulletinorderbyIDdesc";//獲取最新5條新聞生成列表DataTableNews=BaseClass.GetRows(strNews);blNews.DataSource=News;blNews.DataTextField="title";blNews.DataValueField="ID";blNews.DataBind();stringstrPost="selecttop5postId,threadfromPostorderbypostIddesc";//獲取最新5條帖子生成列表DataTablePost=BaseClass.GetRows(strPost);blPost.DataSource=Post;blPost.DataTextField="thread";blPost.DataValueField="postId";blPost.DataBind();}protectedvoidblNews_Click(objectsender,BulletedListEventArgse)//點(diǎn)擊新聞列表項(xiàng)時(shí)跳轉(zhuǎn)到該新聞具體信息頁面{stringnewsId=blNews.Items[e.Index].Value.ToString();Response.Redirect("News.aspx?ID='"+newsId+"'");}查看新聞在系統(tǒng)公共模塊頁面中,點(diǎn)擊NEWS公告欄中某個(gè)新聞鏈接,進(jìn)入該新聞具體信息頁面,如下圖所示:新聞具體信息頁新聞具體信息頁面通過一個(gè)兩個(gè)Lable填充新聞標(biāo)題與新聞發(fā)布時(shí)間信息,將新聞內(nèi)容呈現(xiàn)在一個(gè)TextBox中,其實(shí)現(xiàn)關(guān)鍵代碼如下protectedvoidPage_Load(objectsender,EventArgse){id=Request.QueryString["ID"].ToString();//從前臺跳轉(zhuǎn)過程中獲取所要顯示的新聞的編號stringstrNews="select*fromBulletinwhereID="+id+"";//從數(shù)據(jù)庫中讀取該新聞具體信息SqlConnectionconn=BaseClass.DBCon();conn.Open();SqlCommandcmd=newSqlCommand(strNews,conn);SqlDataReadersdr=cmd.ExecuteReader();if(sdr.Read()){lblTitle.Text=sdr["title"].ToString();lblTime.Text=sdr["issuanceDate"].ToString();TextBox1.Text=sdr["contents"].ToString();}}登錄頁面用戶點(diǎn)擊新聞具體信息頁或系統(tǒng)公共模塊頁中的“登錄”鏈接,可進(jìn)入登錄頁面,在該頁面中,使用一個(gè)DropDownList實(shí)現(xiàn)用戶身份列表,兩個(gè)TextBox實(shí)現(xiàn)賬號密碼的呈現(xiàn),登錄頁面如下圖所示:登錄頁面當(dāng)用戶點(diǎn)擊“登錄”按鈕進(jìn)行登錄操作時(shí),系統(tǒng)驗(yàn)證用戶該用戶信息,若用戶信息正確,將跳轉(zhuǎn)到相應(yīng)的模塊頁,其關(guān)鍵代碼如下:protectedvoidbtnLogin_Click(objectsender,EventArgse){if(this.ddlStatus.SelectedValue=="學(xué)生"){if(BaseClass.CheckStudent(txtNum.Text.Trim(),txtPwd.Text.Trim()))//判斷是否學(xué)生用戶{Session["ID"]=txtNum.Text.Trim();Response.Redirect("student/Default.aspx");}else{Response.Write("<script>alert('您不是學(xué)生或者賬戶和密碼錯(cuò)誤');location='Login.aspx'</script>");}}if(this.ddlStatus.SelectedValue=="教師")//判斷是否教師用戶{if(BaseClass.CheckTeacher(txtNum.Text.Trim(),txtPwd.Text.Trim())){Session["teacher"]=txtNum.Text.Trim();Response.Redirect("teacher/Default.aspx");}else{Response.Write("<script>alert('您不是教師或者賬戶和密碼錯(cuò)誤');location='Login.aspx'</script>");}}if(this.ddlStatus.SelectedValue=="管理員")//判斷是否管理員{if(BaseClass.CheckAdmin(txtNum.Text.Trim(),txtPwd.Text.Trim())){Session["admin"]=txtNum.Text.Trim();Response.Redirect("admin/Default.aspx");}else{Response.Write("<script>alert('您不是管理員或者賬戶和密碼錯(cuò)誤');location='Login.aspx'</script>");}}}學(xué)子在線進(jìn)入首頁在登錄頁面中以學(xué)生身份登錄,進(jìn)入學(xué)子在線首頁,學(xué)子在線首頁如下圖所示:學(xué)子在線首頁學(xué)子在線首頁默認(rèn)顯示我的課程表格,系統(tǒng)將課程表格填充到一個(gè)GridView中呈現(xiàn),所顯示的課程是該學(xué)生所在班級所指定的課程,課程表格的實(shí)現(xiàn)關(guān)鍵代碼如下:protectedvoidPage_Load(objectsender,EventArgse){stringstuId=Session["ID"].ToString();stringstr="selectCourse.courseId,courseName,teacherNamefromCourseinnerjoinTeacheronTeacher.teacherNum=Course.teacherIdinnerjoinClassCourseonCourse.courseId=ClassCourse.courseIdinnerjoinClassonClass.classId=ClassCourse.classIdinnerjoinStudentonStudent.classId=Class.classIdwhereStudent.studentNum='"+stuId+"'";//從數(shù)據(jù)庫中獲取該學(xué)生用戶所選修的課程的相應(yīng)信息GridView1.DataSource=BaseClass.GetRows(str);GridView1.DataKeyNames=newstring[]{"courseId"};GridView1.DataBind();}在線測試在學(xué)子在線首頁中點(diǎn)擊“在線測試”,進(jìn)入選擇考試科目頁面,該頁面使用一個(gè)DropDownList實(shí)現(xiàn)考試科目下拉列表,所顯示的考試科目是該學(xué)生所在班級所有的課程,選擇考試科目頁面如下圖所示:選擇考試科目頁面在選擇考試科目頁面中,點(diǎn)擊“開始考試”按鈕時(shí)系統(tǒng)判斷該學(xué)生是否參加過所選課程的考試或者所選課程是否存在試題,其實(shí)現(xiàn)關(guān)鍵代碼如下:protectedvoidPage_Load(objectsender,EventArgse){if(!IsPostBack){stuNum.Text=Session["ID"].ToString();SqlConnectionconn=BaseClass.DBCon();conn.Open();SqlCommandcmd=newSqlCommand("selectstudentName,studentSexfromStudentwherestudentNum='"+stuNum.Text+"'",conn);SqlDataReadersdr=cmd.ExecuteReader();if(sdr.Read()){stuName.Text=sdr["studentName"].ToString();stuSex.Text=sdr["studentSex"].ToString();Session["name"]=stuName.Text;Session["sex"]=stuSex.Text;}//顯示該學(xué)生基本信息sdr.Close();ddlKM.Items.Add("");SqlCommanddcmd=newSqlCommand("selectcourseNamefromCourse",conn);SqlDataReaderdr=dcmd.ExecuteReader();while(dr.Read()){ddlKM.Items.Add(dr["courseName"].ToString());}//獲取課程名稱并添加到下拉列表中dr.Close();conn.Close();}}protectedvoidButton1_Click(objectsender,EventArgse)//點(diǎn)擊“開始考試”按鈕時(shí)觸發(fā)事件{stringstuID=Session["ID"].ToString();stringstuKM=ddlKM.SelectedItem.Text;SqlConnectionconn=BaseClass.DBCon();conn.Open();stringstr="selectcourseIdfromCoursewherecourseName='"+stuKM+"'";stringcourseId=BaseClass.GetTier(str);Session["courseId"]=courseId;SqlCommandcmd=newSqlCommand("selectcount(*)fromScorewherestudentId='"+stuID+"'andcourseId='"+courseId+"'",conn);inti=Convert.ToInt32(cmd.ExecuteScalar());//判斷該學(xué)生是否參加過所選擇課程的考試if(i>0)Response.Write("<script>alert('你已經(jīng)參加過此科目的考試了!')</script>");else{cmd=newSqlCommand("selectcount(*)fromTest,CoursewhereTest.courseId=Course.courseIdandCourse.courseName='"+stuKM+"'",conn);intn=Convert.ToInt32(cmd.ExecuteScalar());//判斷所選擇的課程是否有相應(yīng)考試試題if(n>0){cmd=newSqlCommand("insertintoScore(studentId,courseId)values('"+stuID+"','"+courseId+"')",conn);cmd.ExecuteNonQuery();conn.Close();Session["stuKM"]=stuKM;Response.Redirect("../student/StartExam.aspx");//若有試題則跳轉(zhuǎn)到開始考試頁面}else{Response.Write("<script>alert('此科目沒有考試題目!')</script>");return;}}}選擇考試科目“數(shù)據(jù)結(jié)構(gòu)”后點(diǎn)擊“開始考試”,進(jìn)入在線試題頁面(如下圖),該頁面利用Panel實(shí)現(xiàn)試題呈現(xiàn)部分,利用script語句實(shí)現(xiàn)考試計(jì)時(shí)功能。在線試題頁在線試題頁中所顯示的試題由1個(gè)Panel中的多個(gè)Literal組成,每個(gè)Literal放置一道試題,試題默認(rèn)從數(shù)據(jù)庫中隨機(jī)抽取10道。試題顯示的關(guān)鍵代碼如下:protectedvoidPage_Load(objectsender,EventArgse){inti=1;SqlConnectionconn=BaseClass.DBCon();conn.Open();SqlCommandcmd=newSqlCommand("selecttop10*fromTestwherecourseId='"+Session["courseId"].ToString()+"'",conn);//從數(shù)據(jù)庫隨即抽取10道試題SqlDataReadersdr=cmd.ExecuteReader();while(sdr.Read())//如果能讀到數(shù)據(jù),就新建一個(gè)Literal存放試題數(shù)據(jù){Literallittxt=newLiteral();Literallitti=newLiteral();RadioButtonListrbl=newRadioButtonList();rbl.ID="rbl"+i.ToString();littxt.Text=i.ToString()+"、"+Server.HtmlEncode(sdr["testTopic"].ToString())+"<br><Blockquote>";litti.Text="</Blockquote>";rbl.Items.Add("A."+Server.HtmlEncode(sdr["testAns1"].ToString()));rbl.Items.Add("B."+Server.HtmlEncode(sdr["testAns2"].ToString()));rbl.Items.Add("C."+Server.HtmlEncode(sdr["testAns3"].ToString()));rbl.Items.Add("D."+Server.HtmlEncode(sdr["testAns4"].ToString()));rbl.Font.Size=11;for(intj=1;j<=4;j++){rbl.Items[j-1].Value=j.ToString();}Ans+=sdr[7].ToString();//獲取數(shù)據(jù)庫中正確答案屬性列的值Session["Ans"]=Ans;Panel1.Controls.Add(littxt);Panel1.Controls.Add(rbl);Panel1.Controls.Add(litti);i++;testNum++;}sdr.Close();conn.Close();}在線試題頁中考試計(jì)時(shí)功能由前臺頁面中javascript語言控制實(shí)現(xiàn),若頁面打開時(shí)間超過設(shè)置的時(shí)間,考卷將自動提交。計(jì)時(shí)功能實(shí)現(xiàn)關(guān)鍵代碼如下:<scriptlanguage="javascript"type="text/javascript">varsec=0;varmin=0;varhou=0;flag=0;idt=window.setTimeout("Is();",1000);functionIs()//{sec++;if(sec==60){sec=0;min+=1;}if(min==60){min=0;hou+=1;}document.getElementById("lblTime").innerText=min+"分"+sec+"秒";idt=window.setTimeout("Is()",1000);if(min==2)document.getElementById("btnSubmit").click();}</script>在在線試題頁中點(diǎn)擊“提交考卷”按鈕,獲取正確答案與學(xué)生提交的答案進(jìn)行比對,自動生成考試結(jié)果,填充到相應(yīng)的Label中,考試結(jié)果頁面如下圖所示:考試結(jié)果頁上圖中自動生成分?jǐn)?shù)功能實(shí)現(xiàn)關(guān)鍵代碼如下:protectedvoidPage_Load(objectsender,EventArgse){stringRans=Session["Ans"].ToString();//獲取正確答案intj=Convert.ToInt32(Request.QueryString["BInt"]);stringSans=Session["Sans"].ToString();//獲取學(xué)生答案intscore=0;for(inti=0;i<j;i++)//若學(xué)生答案與正確答案匹配,每題加2分{if(Rans.Substring(i,1).Equals(Sans.Substring(i,1)))score+=2;}this.result.Text=score.ToString();stringstrsql="updateScoresetscore='"+score.ToString()+"'wherestudentId='"+Session["ID"].ToString()+"'andcourseId='"+Session["courseId"].ToS

溫馨提示

  • 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

提交評論