




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
密級(jí):NANCHANGUNIVERSITY學(xué)士學(xué)位論文THESISOFBACHELOR(2008—2012年)題目:基于WEB的網(wǎng)絡(luò)教學(xué)平臺(tái)學(xué)院:軟件學(xué)院系軟件工程專(zhuān)業(yè)班級(jí):軟件設(shè)計(jì)與開(kāi)發(fā)學(xué)生姓名:學(xué)號(hào):指導(dǎo)教師:職稱(chēng):副教授起訖日期: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ě)的成果作品。對(duì)本文的研究作出重要貢獻(xiàn)的個(gè)人和集體,均已在文中以明確方式表明。本人完全意識(shí)到本申明的法律后果由本人承擔(dān)。作者簽名:日期:學(xué)位論文版權(quán)使用授權(quán)書(shū)本學(xué)位論文作者完全了解學(xué)校有關(guān)保留、使用學(xué)位論文的規(guī)定,同意學(xué)校保留并向國(guó)家有關(guān)部門(mén)或機(jī)構(gòu)送交論文的復(fù)印件和電子版,允許論文被查閱和借閱。本人授權(quán)南昌大學(xué)可以將本論文的全部或部分內(nèi)容編入有關(guān)數(shù)據(jù)庫(kù)進(jìn)行檢索,可以采用影印、縮印或掃描等復(fù)制手段保存和匯編本學(xué)位論文。保密□,在年解密后適用本授權(quán)書(shū)。本學(xué)位論文屬于不保密□。(請(qǐng)?jiān)谝陨舷鄳?yīng)方框內(nèi)打“√”)作者簽名:日期:導(dǎo)師簽名:日期:摘要引言課題背景隨著計(jì)算機(jī)技術(shù)與寬帶網(wǎng)絡(luò)的飛速發(fā)展,高校網(wǎng)絡(luò)綜合教學(xué)平臺(tái)為高校教學(xué)提供了一種新的手段和方式。它有效地發(fā)揮了遠(yuǎn)程教育的特點(diǎn),是一種跨地區(qū)的教育體制和教學(xué)模式。現(xiàn)有的網(wǎng)絡(luò)教學(xué)平臺(tái)大多能支持以上傳下載、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é)平臺(tái)基于ASP.NET框架,在VisualStudio環(huán)境中運(yùn)用C#語(yǔ)言作為開(kāi)發(fā)工具,結(jié)合SQLServer作為數(shù)據(jù)庫(kù)載體進(jìn)行數(shù)據(jù)操作。主要內(nèi)容是實(shí)現(xiàn)學(xué)生與教師對(duì)該平臺(tái)的使用以及管理員對(duì)數(shù)據(jù)的管理。在該系統(tǒng)中,用戶(hù)可進(jìn)行在線(xiàn)測(cè)試、查看考試結(jié)果、答疑、上傳下載資源、管理課件與試題、發(fā)帖回帖等操作。課題研究目的掌握基本的系統(tǒng)分析與設(shè)計(jì)思想掌握一類(lèi)語(yǔ)言與數(shù)據(jù)庫(kù)結(jié)合的操作方式掌握簡(jiǎn)單的多媒體技術(shù)課題研究意義在網(wǎng)絡(luò)技術(shù)高速發(fā)展的背景下,網(wǎng)絡(luò)教學(xué)逐漸成為改進(jìn)傳統(tǒng)教學(xué)的必要趨勢(shì)與潮流。網(wǎng)絡(luò)課堂是利用現(xiàn)代信息技術(shù),發(fā)展高素質(zhì)教育的一種教學(xué)方式。發(fā)展網(wǎng)絡(luò)教學(xué)具有以下重要意義:提高學(xué)習(xí)效率只要可以連接到Internet的地方就可以通過(guò)網(wǎng)絡(luò)課堂這個(gè)平臺(tái)進(jìn)行學(xué)習(xí)交流,一定程度上消除了時(shí)間與空間限制。學(xué)生不必再因?yàn)闆](méi)有聽(tīng)清楚內(nèi)容或者忘記內(nèi)容而耽誤學(xué)習(xí),極大的提高了學(xué)習(xí)效率。學(xué)生利用教學(xué)資源,可以根據(jù)自身情況、自身特點(diǎn)和需求來(lái)學(xué)習(xí)并發(fā)散思維,極大限度地激發(fā)了學(xué)習(xí)潛能。促進(jìn)教學(xué)結(jié)構(gòu)改革對(duì)于教學(xué)結(jié)構(gòu)的改革,在觀(guān)念和體制的束縛下難以推進(jìn),而觀(guān)念的改變是一個(gè)漸進(jìn)的過(guò)程,開(kāi)展網(wǎng)絡(luò)教學(xué)可以促進(jìn)這一過(guò)程的進(jìn)行,讓教師和學(xué)生逐漸從習(xí)慣課堂教學(xué)過(guò)渡到接受網(wǎng)絡(luò)教學(xué)。促進(jìn)高校整體的管理教學(xué)資源數(shù)量類(lèi)別龐大,建立網(wǎng)絡(luò)教學(xué)平臺(tái)可以更好的管理它們,也為學(xué)生提供了更方便快捷的學(xué)習(xí)資源。網(wǎng)絡(luò)綜合教學(xué)平臺(tái)也促進(jìn)了教學(xué)信息的管理??尚行苑治霰鞠到y(tǒng)可行性高,具有技術(shù)可行性、經(jīng)濟(jì)可行性與操作可行性。技術(shù)可行性本系統(tǒng)建立在win7系統(tǒng)上,利用VisualStudio2010作為開(kāi)發(fā)工具,結(jié)合SQLServer2008,以C#作為開(kāi)發(fā)語(yǔ)言進(jìn)行系統(tǒng)開(kāi)發(fā)實(shí)現(xiàn)。在系統(tǒng)分析與過(guò)程中,選用OfficeVisio2010作為圖形圖像制作工具。技術(shù)可行性高。經(jīng)濟(jì)可行性系統(tǒng)投入使用后可幫助各高?;蚪逃龣C(jī)構(gòu)節(jié)省大量人力物力。所帶來(lái)的效益遠(yuǎn)遠(yuǎn)大于系統(tǒng)軟件的開(kāi)發(fā)成本。在經(jīng)濟(jì)上完全可行。操作可行性頁(yè)面設(shè)計(jì)簡(jiǎn)單,操作方便,錄入數(shù)據(jù)快速可靠,適應(yīng)性強(qiáng),可移植,容易擴(kuò)充,操作可行性高。背景相關(guān)技術(shù)及其理論本網(wǎng)絡(luò)教學(xué)平臺(tái)采用ASP.NET技術(shù),在VisualStudio2010平臺(tái)上使用C#開(kāi)發(fā)語(yǔ)言實(shí)現(xiàn),以SQLSEVER2008作為數(shù)據(jù)載體。SQLServer2008SQL全稱(chēng)是“結(jié)構(gòu)化查詢(xún)語(yǔ)言(StructuredQueryLanguage)”,最早的是IBM的圣約瑟研究實(shí)驗(yàn)室為其關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)SYSTEMR開(kāi)發(fā)的一種查詢(xún)語(yǔ)言,它的前身是SQUARE語(yǔ)言。SQL語(yǔ)言結(jié)構(gòu)簡(jiǎn)潔,功能強(qiáng)大,簡(jiǎn)單易學(xué),所以自從IBM公司1981年推出以來(lái),SQL語(yǔ)言,得到了廣泛的應(yīng)用。SQLServer2008允許你在使用Microsoft.NET和VisualStudio開(kāi)發(fā)的自定義應(yīng)用程序中使用數(shù)據(jù),在面向服務(wù)的架構(gòu)(SOA)和通過(guò)MicrosoftBizTalkServer進(jìn)行的業(yè)務(wù)流程中使用數(shù)據(jù)。信息工作人員可以通過(guò)他們?nèi)粘J褂玫墓ぞ咧苯釉L(fǎng)問(wèn)數(shù)據(jù)。SQLServer2008提供一個(gè)可信的、高效率智能數(shù)據(jù)平臺(tái),可以滿(mǎn)足你的所有數(shù)據(jù)需求。SQLServer2008的最大優(yōu)點(diǎn):保護(hù)您的信息、提供可預(yù)測(cè)響應(yīng)、最大限度地減少管理監(jiān)視、集成任何數(shù)據(jù)、提供相關(guān)信息。VisualStudio2010VisualStudio是一套完整的開(kāi)發(fā)工具,用于生成ASP.NETWeb應(yīng)用程序、XMLWebservices、桌面應(yīng)用程序和移動(dòng)應(yīng)用程序。VisualBasic、VisualC#和VisualC++都使用相同的集成開(kāi)發(fā)環(huán)境(IDE),這樣就能夠進(jìn)行工具共享,并能夠輕松地創(chuàng)建混合語(yǔ)言解決方案。另外,這些語(yǔ)言使用.NETFramework的功能,它提供了可簡(jiǎn)化ASPWeb應(yīng)用程序和XMLWebservices開(kāi)發(fā)的關(guān)鍵技術(shù)。在VisualStudio2010中,微軟利用WindowsPresentationFoundation完全重建了編輯器,這為開(kāi)發(fā)者提供了靈活、功能豐富的開(kāi)發(fā)環(huán)境,并支持多顯示器——即開(kāi)發(fā)者可以同時(shí)在多臺(tái)顯示器上查看代碼、用戶(hù)界面設(shè)計(jì)器和數(shù)據(jù)庫(kù)結(jié)構(gòu)。ASP.NETASP.NET是一個(gè)統(tǒng)一的Web開(kāi)發(fā)模型,它包括使用盡可能少的代碼生成企業(yè)級(jí)Web應(yīng)用程序所必需的各種服務(wù)。ASP.NET作為.NETFramework的一部分提供。當(dāng)編寫(xiě)ASP.NET應(yīng)用程序的代碼時(shí),可以訪(fǎng)問(wèn).NETFramework中的類(lèi)??梢允褂门c公共語(yǔ)言運(yùn)行庫(kù)(CLR)兼容的任何語(yǔ)言來(lái)編寫(xiě)應(yīng)用程序的代碼,這些語(yǔ)言包括MicrosoftVisualBasic、C#、JScript.NET和J#。使用這些語(yǔ)言,可以開(kāi)發(fā)利用公共語(yǔ)言運(yùn)行庫(kù)、類(lèi)型安全、繼承等方面的優(yōu)點(diǎn)的ASP.NET應(yīng)用程序。ASP.NET包括頁(yè)和控件框架、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)勢(shì):執(zhí)行效率的大幅提高、世界級(jí)的工具支持、強(qiáng)大性和適應(yīng)性、簡(jiǎn)單性和易學(xué)性、高效可管理性、多處理器環(huán)境的可靠性、自定義性和可擴(kuò)展性、安全性。C#C#(讀作“Csharp”)是一種編程語(yǔ)言,它是為生成在.NETFramework上運(yùn)行的各種應(yīng)用程序而設(shè)計(jì)的。C#簡(jiǎn)單、功能強(qiáng)大、類(lèi)型安全,而且是面向?qū)ο蟮?。C#憑借在許多方面的創(chuàng)新,在保持C語(yǔ)言風(fēng)格的表現(xiàn)力和雅致特征的同時(shí),實(shí)現(xiàn)了應(yīng)用程序的快速開(kāi)發(fā)。VisualC#是Microsoft對(duì)C#語(yǔ)言的實(shí)現(xiàn)。VisualStudio通過(guò)功能齊全的代碼編輯器、編譯器、項(xiàng)目模板、設(shè)計(jì)器、代碼向?qū)?、功能?qiáng)大而易用的調(diào)試器以及其他工具,實(shí)現(xiàn)了對(duì)VisualC#的支持。通過(guò).NETFramework類(lèi)庫(kù),可以訪(fǎng)問(wèn)許多操作系統(tǒng)服務(wù)和其他有用的精心設(shè)計(jì)的類(lèi),這些類(lèi)可顯著加快開(kāi)發(fā)周期。第二章需求分析與總體功能需求分析與總體功能需求分析開(kāi)發(fā)網(wǎng)絡(luò)教學(xué)平臺(tái)的必要性信息化是當(dāng)今世界經(jīng)濟(jì)和社會(huì)發(fā)展的大趨勢(shì),20世紀(jì)80年代以來(lái),科學(xué)技術(shù)特別是信息技術(shù)和生命科學(xué)的不斷突破,對(duì)世界政治、經(jīng)濟(jì)、文化生活將產(chǎn)生更加深刻的影響。在教育領(lǐng)域,一方面,以互聯(lián)網(wǎng)和多媒體技術(shù)為核心的信息技術(shù)已成為教學(xué)和學(xué)習(xí)的重要工具,另一方面,知識(shí)經(jīng)濟(jì)時(shí)代,信息素養(yǎng)已成為科學(xué)素養(yǎng)的重要基礎(chǔ),這對(duì)基礎(chǔ)教育的培養(yǎng)目標(biāo)提出新的挑戰(zhàn),尤其是對(duì)學(xué)生的信息技術(shù)素養(yǎng)提出了新的要求。也就是說(shuō),信息化社會(huì)的合格基礎(chǔ)教育畢業(yè)生應(yīng)具備迅速地篩選和獲取信息、創(chuàng)造性地加工和處理信息并利用信息解決問(wèn)題的能力,而且,學(xué)生掌握和運(yùn)用信息技術(shù)的能力應(yīng)與讀、寫(xiě)、算并列,作為基礎(chǔ)教育應(yīng)培養(yǎng)的學(xué)生終身有用的基礎(chǔ)能力。教育信息化已經(jīng)是時(shí)代的選擇,歷史的必然,網(wǎng)絡(luò)環(huán)境的逐漸建立,使學(xué)與教必然隨之調(diào)整。一般的網(wǎng)絡(luò)教學(xué)平臺(tái)功能現(xiàn)有的網(wǎng)絡(luò)教學(xué)平臺(tái)大多是能支持以上傳下載、點(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ái)功能簡(jiǎn)介本系統(tǒng)主要針對(duì)在線(xiàn)測(cè)試、教學(xué)資源的上傳下載、后臺(tái)管理對(duì)網(wǎng)絡(luò)教學(xué)平臺(tái)進(jìn)行初步的開(kāi)發(fā)研究。系統(tǒng)中主要有三類(lèi)用戶(hù):學(xué)生、教師、管理員。所有用戶(hù)可查看平臺(tái)最新新聞、最新帖子。學(xué)生可進(jìn)行在線(xiàn)測(cè)試、查看考試結(jié)果、進(jìn)行提問(wèn)、下載資源。教師可進(jìn)行課件管理、試題管理、答疑、查看學(xué)生考試結(jié)果。學(xué)生與教師可在論壇發(fā)帖回帖。管理員可進(jìn)行班級(jí)管理、帖子管理、課程管理、用戶(hù)管理。通用操作本系統(tǒng)各類(lèi)用戶(hù)除了各自特定的功能權(quán)限外,還具有一些共同的操作功能。登錄用戶(hù)在登錄界面輸入用戶(hù)名密碼,選擇角色之后,若該用戶(hù)是否具有該角色的相應(yīng)權(quán)限,則登錄成功并進(jìn)入相應(yīng)模塊。修改密碼用戶(hù)登錄成功之后,可對(duì)密碼進(jìn)行修改。找回密碼在用戶(hù)登錄頁(yè)面,若用戶(hù)忘記密碼,可點(diǎn)擊鏈接進(jìn)行找回密碼操作。查看新聞?dòng)脩?hù)在公共模塊可點(diǎn)擊新聞鏈接,進(jìn)入該新聞具體信息頁(yè)面,查看新聞。查看最新熱帖用戶(hù)在公共模塊可點(diǎn)擊最新熱貼鏈接,進(jìn)入該帖子頁(yè)面,查看帖子,但登錄前不能發(fā)表評(píng)論。各類(lèi)用戶(hù)操作功能本系統(tǒng)有三類(lèi)用戶(hù),分別為學(xué)生、教師、管理員,各類(lèi)用戶(hù)操作功能不同。學(xué)生查看課程信息學(xué)生可查看所學(xué)課程的基本信息,在該課程信息頁(yè)面可查看課件、課程視頻及下載課件。在線(xiàn)測(cè)試學(xué)生可選擇對(duì)某門(mén)所學(xué)課程進(jìn)行在線(xiàn)測(cè)試,提交考卷后系統(tǒng)會(huì)自動(dòng)顯示考試結(jié)果。提問(wèn)學(xué)生進(jìn)入答疑中心,可查看自己所提交的問(wèn)題,或進(jìn)行提問(wèn)。論壇發(fā)帖在論壇中,學(xué)生可進(jìn)行發(fā)帖、回復(fù)。查看考試結(jié)果學(xué)生可查詢(xún)自己以往的考試結(jié)果。教師課件管理教師可查看自己上傳的課件、視頻信息,可刪除或繼續(xù)上傳課件或視頻。試題管理教師可對(duì)自己添加的試題進(jìn)行修改或刪除操作,可在線(xiàn)出題。在線(xiàn)答疑教師進(jìn)入答疑中心,可對(duì)學(xué)生的提問(wèn)進(jìn)行回復(fù)。學(xué)生考試結(jié)果教師可查詢(xún)學(xué)生的考試結(jié)果。論壇發(fā)帖在論壇中,教師可進(jìn)行發(fā)帖、回復(fù)操作。管理員課程管理在課程管理頁(yè)面,管理員可添加或刪除課程。帖子管理管理員可進(jìn)行刪除帖子操作。用戶(hù)管理管理員可對(duì)學(xué)生用戶(hù)與教師用戶(hù)進(jìn)行添加刪除操作,添加用戶(hù)時(shí)默認(rèn)密碼與學(xué)號(hào)相同。班級(jí)管理管理員可添加或刪除班級(jí),點(diǎn)擊班級(jí),可進(jìn)行班級(jí)課程管理,為相應(yīng)的班級(jí)分配課程。系統(tǒng)總體功能圖本系統(tǒng)分為四個(gè)模塊,分別為公共操作模塊、學(xué)子在線(xiàn)、教師空間、管理員空間。所有用戶(hù)可在公共模塊查看新聞、帖子。學(xué)生用戶(hù)登錄后進(jìn)入學(xué)子在線(xiàn)模塊,可查看課程信息、在線(xiàn)測(cè)試、查看考試結(jié)果、提問(wèn)、下載資源、進(jìn)入論壇。教師用戶(hù)登錄后進(jìn)入教師空間模塊,可進(jìn)行課程管理、試題管理、答疑、查看學(xué)生考試結(jié)果、進(jìn)入論壇。管理員用戶(hù)登錄后進(jìn)入管理員空間模塊,可管理班級(jí)、管理帖子、管理課程、管理用戶(hù)。經(jīng)過(guò)以上分析,得到系統(tǒng)的總體功能圖: 系統(tǒng)總體功能圖第三章數(shù)據(jù)庫(kù)設(shè)計(jì)與實(shí)現(xiàn)數(shù)據(jù)庫(kù)設(shè)計(jì)與實(shí)現(xiàn)本系統(tǒng)利用SQLServer2008數(shù)據(jù)庫(kù)作為數(shù)據(jù)信息的存儲(chǔ)載體。數(shù)據(jù)庫(kù)系統(tǒng)分析本系統(tǒng)使用一個(gè)名為NetworkTeaching的數(shù)據(jù)庫(kù)存儲(chǔ)數(shù)據(jù)信息,數(shù)據(jù)操作則通過(guò)數(shù)據(jù)庫(kù)中表與表之間的關(guān)聯(lián)實(shí)現(xiàn)。數(shù)據(jù)庫(kù)NetworkTeaching中主要有以下表格:數(shù)據(jù)庫(kù)表列表序號(hào)表名備注1dbo.Admin管理員表2dbo.Answer問(wèn)題回復(fù)表3dbo.Bulletin新聞公告4dbo.Class班級(jí)表5dbo.ClassCourse班級(jí)課程表6dbo.Course課程表7dbo.Courseware課件表8dbo.Post帖子表9dbo.Question問(wèn)題表10dbo.Reply帖子回復(fù)表11dbo.Score考試成績(jī)表12dbo.Student學(xué)生表13dbo.Teacher教師表14dbo.Test試題表15dbo.Video視頻表數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)數(shù)據(jù)庫(kù)關(guān)系模式經(jīng)過(guò)分析,本系統(tǒng)的數(shù)據(jù)庫(kù)關(guān)系模式如下所示:管理員(系統(tǒng)編號(hào),管理員編號(hào),管理員姓名,管理員密碼)問(wèn)題回復(fù)(系統(tǒng)編號(hào),教師編號(hào),問(wèn)題編號(hào),回復(fù)內(nèi)容,回復(fù)時(shí)間)新聞公告(系統(tǒng)編號(hào),新聞公告標(biāo)題,新聞公告內(nèi)容,發(fā)布日期)班級(jí)(系統(tǒng)編號(hào),班級(jí)編號(hào),班級(jí)名稱(chēng),所屬專(zhuān)業(yè))班級(jí)課程(系統(tǒng)編號(hào),班級(jí)編號(hào),課程編號(hào))課程(系統(tǒng)編號(hào),課程編號(hào),課程名稱(chēng),教師編號(hào),所屬專(zhuān)業(yè),課程簡(jiǎn)介)課件(系統(tǒng)編號(hào),課件編號(hào),課件名稱(chēng),上傳時(shí)間,課程編號(hào),課件路徑)帖子(系統(tǒng)編號(hào),帖子編號(hào),帖子主題,帖子內(nèi)容,用戶(hù)編號(hào),創(chuàng)建時(shí)間)問(wèn)題(系統(tǒng)編號(hào),問(wèn)題編號(hào),問(wèn)題名稱(chēng),學(xué)生編號(hào),提問(wèn)時(shí)間,問(wèn)題狀態(tài))帖子回復(fù)(系統(tǒng)編號(hào),帖子編號(hào),發(fā)帖者編號(hào),回帖時(shí)間,回復(fù)內(nèi)容)考試成績(jī)(系統(tǒng)編號(hào),學(xué)生編號(hào),課程名稱(chēng),考試成績(jī),學(xué)生答案,正確答案)學(xué)生(系統(tǒng)編號(hào),學(xué)生編號(hào),學(xué)生姓名,學(xué)生密碼,學(xué)生性別,班級(jí)編號(hào),身份證號(hào))教師(系統(tǒng)編號(hào),教師編號(hào),教師姓名,教師密碼,身份證號(hào),教師性別)試題(系統(tǒng)編號(hào),試題編號(hào),試題名稱(chēng),答案選項(xiàng)1,答案選項(xiàng)2,答案選項(xiàng)3,答案選項(xiàng)4,正確答案,是否發(fā)布,課程編號(hào),教師編號(hào))視頻(系統(tǒng)編號(hào),視頻編號(hào),視頻標(biāo)題,視頻名稱(chēng),視頻存儲(chǔ)名稱(chēng),視頻內(nèi)容,上傳時(shí)間,視頻路徑,視頻圖片,視頻類(lèi)型,課程編號(hào),教師編號(hào))數(shù)據(jù)庫(kù)E-R圖 數(shù)據(jù)庫(kù)E-R圖數(shù)據(jù)庫(kù)實(shí)現(xiàn)經(jīng)過(guò)分析,本系統(tǒng)數(shù)據(jù)存儲(chǔ)涉及數(shù)據(jù)庫(kù)中15個(gè)表格,其數(shù)據(jù)字典如下所示:管理員dbo.Admin序號(hào)列名數(shù)據(jù)類(lèi)型長(zhǎng)度標(biāo)識(shí)主鍵允許空說(shuō)明1IDint4是否系統(tǒng)編號(hào)2adminNumvarchar50是否管理員編號(hào)3adminNamevarchar50是管理員姓名4adminPwdvarchar50是管理員密碼問(wèn)題回復(fù)dbo.Answer序號(hào)列名數(shù)據(jù)類(lèi)型長(zhǎng)度標(biāo)識(shí)主鍵允許空說(shuō)明1IDint4是是否系統(tǒng)編號(hào)2teacherIdvarchar50是教師編號(hào)(外鍵)3questionIdvarchar50是問(wèn)題編號(hào)(外鍵)4answerContentvarcharMAX是回復(fù)內(nèi)容5answerTimedatetime8是回復(fù)時(shí)間新聞公告dbo.Bulletin序號(hào)列名數(shù)據(jù)類(lèi)型長(zhǎng)度標(biāo)識(shí)主鍵允許空說(shuō)明1IDint4是是否系統(tǒng)編號(hào)2titlevarchar50是新聞公告標(biāo)題3contentsvarcharMAX是新聞公告內(nèi)容4issuanceDatedatetime8是發(fā)布時(shí)間班級(jí)dbo.Class序號(hào)列名數(shù)據(jù)類(lèi)型長(zhǎng)度標(biāo)識(shí)主鍵允許空說(shuō)明1IDint4是否系統(tǒng)編號(hào)2classIdvarchar50是否班級(jí)編號(hào)3classNamevarchar50是班級(jí)名稱(chēng)4majorvarchar50是所屬專(zhuān)業(yè)班級(jí)dbo.ClassCourse序號(hào)列名數(shù)據(jù)類(lèi)型長(zhǎng)度標(biāo)識(shí)主鍵允許空說(shuō)明1IDint4是否系統(tǒng)編號(hào)2classIdvarchar50是否班級(jí)編號(hào)3courseIdvarchar50是否課程編號(hào)課程dbo.Course序號(hào)列名數(shù)據(jù)類(lèi)型長(zhǎng)度標(biāo)識(shí)主鍵允許空說(shuō)明1IDint4是否系統(tǒng)編號(hào)2courseIdvarchar50是否課程編號(hào)3courseNamevarchar50是課程名稱(chēng)4teacherIdvarchar50是教師編號(hào)(外鍵)5majorvarchar50是所屬專(zhuān)業(yè)6introductionvarchar50是課程簡(jiǎn)介課件dbo.Courseware序號(hào)列名數(shù)據(jù)類(lèi)型長(zhǎng)度標(biāo)識(shí)主鍵允許空說(shuō)明1IDint4是否系統(tǒng)編號(hào)2coursewareIdvarchar50是否課件編號(hào)3coursewareNamevarchar50是課件名稱(chēng)4teacherIdvarchar50是教師編號(hào)(外鍵)5coursewareTimedatetime8是課件上傳時(shí)間6courseIdvarchar50是課程編號(hào)(外鍵)7coursewarePathvarcharMAX是課件路徑帖子dbo.Post序號(hào)列名數(shù)據(jù)類(lèi)型長(zhǎng)度標(biāo)識(shí)主鍵允許空說(shuō)明1IDint4是否系統(tǒng)編號(hào)2postIdvarchar50是否帖子編號(hào)3threadvarchar50是帖子主題4contentsvarcharMAX是帖子內(nèi)容5userIdvarchar50是用戶(hù)編號(hào)(學(xué)生或教師)6createTimedatetime8是創(chuàng)建時(shí)間問(wèn)題dbo.Question序號(hào)列名數(shù)據(jù)類(lèi)型長(zhǎng)度標(biāo)識(shí)主鍵允許空說(shuō)明1IDint4是否系統(tǒng)編號(hào)2questionIdvarchar50是否問(wèn)題編號(hào)3questionNamevarchar50是問(wèn)題4studentIdvarchar50是學(xué)生編號(hào)(外鍵)5questionTimedatetime8是問(wèn)題發(fā)布時(shí)間6statusbit1是問(wèn)題狀態(tài)帖子回復(fù)dbo.Reply序號(hào)列名數(shù)據(jù)類(lèi)型長(zhǎng)度標(biāo)識(shí)主鍵允許空說(shuō)明1IDint4是是否系統(tǒng)編號(hào)2postIdvarchar50是帖子編號(hào)(外鍵)3userIdvarchar50是用戶(hù)編號(hào)(學(xué)生或教師)4replyTimedatetime8是回復(fù)時(shí)間5replyContentvarcharMAX是回復(fù)內(nèi)容考試成績(jī)dbo.Score序號(hào)列名數(shù)據(jù)類(lèi)型長(zhǎng)度標(biāo)識(shí)主鍵允許空說(shuō)明1IDint4是是否系統(tǒng)編號(hào)2studentIdvarchar50否學(xué)生編號(hào)(外鍵)3courseIdvarchar50是課程編號(hào)(外鍵)4scoreint4是成績(jī)5studentAnsvarchar50是學(xué)生答案6rightAnsvarchar50是正確答案學(xué)生dbo.Student序號(hào)列名數(shù)據(jù)類(lèi)型長(zhǎng)度標(biāo)識(shí)主鍵允許空說(shuō)明1IDint4是否系統(tǒng)編號(hào)2studentNumvarchar50是否學(xué)生編號(hào)3studentNamevarchar50是學(xué)生姓名4studentPwdvarchar50是學(xué)生密碼5studentSexvarchar50是學(xué)生性別7classIdvarchar50是班級(jí)編號(hào)(外鍵)8idNumbervarchar50是身份證號(hào)教師dbo.Teacher序號(hào)列名數(shù)據(jù)類(lèi)型長(zhǎng)度標(biāo)識(shí)主鍵允許空說(shuō)明1IDint4是否系統(tǒng)編號(hào)2teacherNumvarchar50是否教師編號(hào)3teacherNamevarchar50是教師姓名4teacherPwdvarchar50是教師密碼6idNumbervarchar50是身份證號(hào)7teacherSexvarchar50是教師性別試題dbo.Test序號(hào)列名數(shù)據(jù)類(lèi)型長(zhǎng)度標(biāo)識(shí)主鍵允許空說(shuō)明1IDint4是否系統(tǒng)編號(hào)2testIdvarchar50是否試題編號(hào)3testTopicvarchar50是試題內(nèi)容4testAns1varchar50是答案選項(xiàng)15testAns2varchar50是答案選項(xiàng)26testAns3varchar50是答案選項(xiàng)37testAns4varchar50是答案選項(xiàng)48rightAnsvarchar50是正確答案9pubbit1是是否發(fā)布10courseIdvarchar50是課程編號(hào)(外鍵)11teacherIdvarchar50是教師編號(hào)(外鍵)視頻dbo.Video序號(hào)列名數(shù)據(jù)類(lèi)型長(zhǎng)度標(biāo)識(shí)主鍵允許空說(shuō)明1IDint4是否系統(tǒng)編號(hào)2videoIdvarchar50是否視頻編號(hào)3videoTitlevarchar50是視頻標(biāo)題4videoNamevarchar50是視頻名稱(chēng)5videoSaveNamevarchar50是視頻存儲(chǔ)名稱(chēng)6videoContentvarcharMAX是視頻內(nèi)容7videoDatevarchar50是視頻上傳時(shí)間8videoPathvarcharMAX是視頻路徑9videoPicturevarcharMAX是視頻圖片10videoTypevarchar50是視頻類(lèi)型11courseIdvarchar50是課程編號(hào)(外鍵)12teacherIdvarchar50是教師編號(hào)(外鍵)第四章系統(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#語(yǔ)言在VisualStudio2010環(huán)境中進(jìn)行網(wǎng)站的設(shè)計(jì)開(kāi)發(fā)。項(xiàng)目資源管理圖如上圖所示,本系統(tǒng)將公共操作的方法類(lèi)提取存放在App_Code中,在App_Themes中設(shè)置主題并編寫(xiě)css文件存放在文件夾css中以實(shí)現(xiàn)系統(tǒng)風(fēng)格的統(tǒng)一,文件夾admin存放實(shí)現(xiàn)管理員功能的各個(gè)操作頁(yè)面,文件夾student與teacher則分別存放學(xué)生用戶(hù)與教師用戶(hù)實(shí)現(xiàn)功能的各個(gè)頁(yè)面,文件夾courseware存放教師上傳的普通課件,文件夾upFiles存放教師上傳的視頻,video則是視頻轉(zhuǎn)換工具ffmpeg的安裝文件夾,其他頁(yè)面則實(shí)現(xiàn)用戶(hù)的公共功能,如AddPost.aspx及其后臺(tái)文件實(shí)現(xiàn)了學(xué)生教師發(fā)帖的功能,Default.aspx則是公共模塊的實(shí)現(xiàn)頁(yè)面。公共類(lèi)與外觀(guān)在本系統(tǒng)中,將公共操作與特殊功能實(shí)現(xiàn)類(lèi)提取到.cs文件中。如將與數(shù)據(jù)庫(kù)的交互提取到操作類(lèi)BaseClass.cs中,主要實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的基本操作及對(duì)用戶(hù)訪(fǎng)問(wèn)權(quán)限的驗(yàn)證。通過(guò)后臺(tái)代碼管理及公共類(lèi)FileOperation.cs與OperateMethod.cs的使用實(shí)現(xiàn)文件不同名上傳、視頻格式轉(zhuǎn)換等各種數(shù)據(jù)處理要求。結(jié)合css樣式、主題與模版的使用,實(shí)現(xiàn)了系統(tǒng)風(fēng)格的統(tǒng)一。下面簡(jiǎn)單介紹下以上各文件在本系統(tǒng)中的應(yīng)用與實(shí)現(xiàn):數(shù)據(jù)庫(kù)操作類(lèi)數(shù)據(jù)庫(kù)操作類(lèi)BaseClass.cs實(shí)現(xiàn)了對(duì)數(shù)據(jù)庫(kù)的基本操作及用戶(hù)登錄權(quán)限的驗(yàn)證。其關(guān)鍵代碼如下:publicstaticSqlConnectionDBCon()//連接數(shù)據(jù)庫(kù){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語(yǔ)句{SqlConnectionconn=DBCon();conn.Open();SqlCommandcmd=newSqlCommand(strsql,conn);intisEx=cmd.ExecuteNonQuery();conn.Close();if(isEx>0)returntrue;elsereturnfalse;}publicstaticboolCheckStudent(stringstudentNum,stringstudentPwd)//驗(yàn)證學(xué)生用戶(hù){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)證教師用戶(hù){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)證管理員用戶(hù){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語(yǔ)句并獲取結(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語(yǔ)句,將結(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)換類(lèi)公共類(lèi)FileOperation.cs實(shí)現(xiàn)了不同名上傳文件的功能,OperateMethod.cs則進(jìn)行對(duì)上傳視頻的轉(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)航的外觀(guān),主題使網(wǎng)站中所有GridView控件擁有相同的外觀(guān),模版的使用使各模版塊具有相同的風(fēng)格。css樣式關(guān)鍵代碼如下:.left//導(dǎo)航欄左半框的樣式{background-image:url(../images/left.gif);height:40px;width:2px;}.line//導(dǎo)航欄中按鈕分割線(xiàn)的樣式{background-image:url(../images/line.gif);width:2px;height:40px;}.student//學(xué)子在線(xiàn)模版導(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//超級(jí)鏈接初始狀態(tài){text-decoration:blink;}a:hover//鼠標(biāo)放上去時(shí)鏈接樣式{text-decoration:none;color:Red}a:visited//訪(fǎng)問(wèn)過(guò)后鏈接樣式{text-decoration:none;color:Orange}主題的使用本系統(tǒng)大部分?jǐn)?shù)據(jù)呈現(xiàn)主要通過(guò)GridView控件實(shí)現(xiàn),通過(guò)主題思想可達(dá)到統(tǒng)一GridView控件的目的。主題的設(shè)計(jì)與實(shí)現(xiàn)主要通過(guò)在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é)平臺(tái)的沉穩(wěn)、理智、準(zhǔn)確與嚴(yán)謹(jǐn)?shù)耐瑫r(shí),又不流于古板沉悶,不容易造成視覺(jué)疲勞,有利于維持學(xué)生的學(xué)習(xí)熱情。本系統(tǒng)有三個(gè)模版頁(yè),分別為學(xué)子在線(xiàn)、教師空間與管理員空間。學(xué)子在線(xiàn)如下圖所示:學(xué)子在線(xiàn)模版教師空間如下圖所示:教師空間模版管理員空間如下圖所示:管理員空間模版系統(tǒng)實(shí)現(xiàn)本系統(tǒng)分為四個(gè)模塊,分別為通用模塊、學(xué)子在線(xiàn)、教師空間、管理員空間。在實(shí)現(xiàn)過(guò)程中,基本按照分模塊實(shí)現(xiàn)的方式實(shí)現(xiàn)。所有用戶(hù)可在通用模塊中查看平臺(tái)最新新聞、最新帖子、登錄系統(tǒng)。在學(xué)子在線(xiàn),學(xué)生可進(jìn)行在線(xiàn)測(cè)試、查看考試結(jié)果、進(jìn)行提問(wèn)、下載資源。教師可在教師空間進(jìn)行課件管理、出題、答疑、查看學(xué)生考試結(jié)果。學(xué)生與教師均可從相應(yīng)的模塊進(jìn)入在論壇并進(jìn)行發(fā)帖回帖操作。管理員在管理員空間可進(jìn)行班級(jí)管理、帖子管理、課程管理、用戶(hù)管理以及班級(jí)課程管理。通用模塊進(jìn)入首頁(yè)運(yùn)行頁(yè)面Default.aspx,進(jìn)入系統(tǒng)公共模塊,如下圖4.5所示:系統(tǒng)公共模塊頁(yè)在系統(tǒng)公共模塊頁(yè)面中,系統(tǒng)通過(guò)數(shù)據(jù)庫(kù)查詢(xún)操作將最新新聞信息與論壇帖子信息分別綁定到兩個(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)到該新聞具體信息頁(yè)面{stringnewsId=blNews.Items[e.Index].Value.ToString();Response.Redirect("News.aspx?ID='"+newsId+"'");}查看新聞在系統(tǒng)公共模塊頁(yè)面中,點(diǎn)擊NEWS公告欄中某個(gè)新聞鏈接,進(jìn)入該新聞具體信息頁(yè)面,如下圖所示:新聞具體信息頁(yè)新聞具體信息頁(yè)面通過(guò)一個(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();//從前臺(tái)跳轉(zhuǎn)過(guò)程中獲取所要顯示的新聞的編號(hào)stringstrNews="select*fromBulletinwhereID="+id+"";//從數(shù)據(jù)庫(kù)中讀取該新聞具體信息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();}}登錄頁(yè)面用戶(hù)點(diǎn)擊新聞具體信息頁(yè)或系統(tǒng)公共模塊頁(yè)中的“登錄”鏈接,可進(jìn)入登錄頁(yè)面,在該頁(yè)面中,使用一個(gè)DropDownList實(shí)現(xiàn)用戶(hù)身份列表,兩個(gè)TextBox實(shí)現(xiàn)賬號(hào)密碼的呈現(xiàn),登錄頁(yè)面如下圖所示:登錄頁(yè)面當(dāng)用戶(hù)點(diǎn)擊“登錄”按鈕進(jìn)行登錄操作時(shí),系統(tǒng)驗(yàn)證用戶(hù)該用戶(hù)信息,若用戶(hù)信息正確,將跳轉(zhuǎn)到相應(yīng)的模塊頁(yè),其關(guān)鍵代碼如下:protectedvoidbtnLogin_Click(objectsender,EventArgse){if(this.ddlStatus.SelectedValue=="學(xué)生"){if(BaseClass.CheckStudent(txtNum.Text.Trim(),txtPwd.Text.Trim()))//判斷是否學(xué)生用戶(hù){Session["ID"]=txtNum.Text.Trim();Response.Redirect("student/Default.aspx");}else{Response.Write("<script>alert('您不是學(xué)生或者賬戶(hù)和密碼錯(cuò)誤');location='Login.aspx'</script>");}}if(this.ddlStatus.SelectedValue=="教師")//判斷是否教師用戶(hù){if(BaseClass.CheckTeacher(txtNum.Text.Trim(),txtPwd.Text.Trim())){Session["teacher"]=txtNum.Text.Trim();Response.Redirect("teacher/Default.aspx");}else{Response.Write("<script>alert('您不是教師或者賬戶(hù)和密碼錯(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('您不是管理員或者賬戶(hù)和密碼錯(cuò)誤');location='Login.aspx'</script>");}}}學(xué)子在線(xiàn)進(jìn)入首頁(yè)在登錄頁(yè)面中以學(xué)生身份登錄,進(jìn)入學(xué)子在線(xiàn)首頁(yè),學(xué)子在線(xiàn)首頁(yè)如下圖所示:學(xué)子在線(xiàn)首頁(yè)學(xué)子在線(xiàn)首頁(yè)默認(rèn)顯示我的課程表格,系統(tǒng)將課程表格填充到一個(gè)GridView中呈現(xiàn),所顯示的課程是該學(xué)生所在班級(jí)所指定的課程,課程表格的實(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ù)庫(kù)中獲取該學(xué)生用戶(hù)所選修的課程的相應(yīng)信息GridView1.DataSource=BaseClass.GetRows(str);GridView1.DataKeyNames=newstring[]{"courseId"};GridView1.DataBind();}在線(xiàn)測(cè)試在學(xué)子在線(xiàn)首頁(yè)中點(diǎn)擊“在線(xiàn)測(cè)試”,進(jìn)入選擇考試科目頁(yè)面,該頁(yè)面使用一個(gè)DropDownList實(shí)現(xiàn)考試科目下拉列表,所顯示的考試科目是該學(xué)生所在班級(jí)所有的課程,選擇考試科目頁(yè)面如下圖所示:選擇考試科目頁(yè)面在選擇考試科目頁(yè)面中,點(diǎn)擊“開(kāi)始考試”按鈕時(shí)系統(tǒng)判斷該學(xué)生是否參加過(guò)所選課程的考試或者所選課程是否存在試題,其實(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());}//獲取課程名稱(chēng)并添加到下拉列表中dr.Close();conn.Close();}}protectedvoidButton1_Click(objectsender,EventArgse)//點(diǎn)擊“開(kāi)始考試”按鈕時(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é)生是否參加過(guò)所選擇課程的考試if(i>0)Response.Write("<script>alert('你已經(jīng)參加過(guò)此科目的考試了!')</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)到開(kāi)始考試頁(yè)面}else{Response.Write("<script>alert('此科目沒(méi)有考試題目!')</script>");return;}}}選擇考試科目“數(shù)據(jù)結(jié)構(gòu)”后點(diǎn)擊“開(kāi)始考試”,進(jìn)入在線(xiàn)試題頁(yè)面(如下圖),該頁(yè)面利用Panel實(shí)現(xiàn)試題呈現(xiàn)部分,利用script語(yǔ)句實(shí)現(xiàn)考試計(jì)時(shí)功能。在線(xiàn)試題頁(yè)在線(xiàn)試題頁(yè)中所顯示的試題由1個(gè)Panel中的多個(gè)Literal組成,每個(gè)Literal放置一道試題,試題默認(rèn)從數(shù)據(jù)庫(kù)中隨機(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ù)庫(kù)隨即抽取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ù)庫(kù)中正確答案屬性列的值Session["Ans"]=Ans;Panel1.Controls.Add(littxt);Panel1.Controls.Add(rbl);Panel1.Controls.Add(litti);i++;testNum++;}sdr.Close();conn.Close();}在線(xiàn)試題頁(yè)中考試計(jì)時(shí)功能由前臺(tái)頁(yè)面中javascript語(yǔ)言控制實(shí)現(xiàn),若頁(yè)面打開(kāi)時(shí)間超過(guò)設(shè)置的時(shí)間,考卷將自動(dòng)提交。計(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>在在線(xiàn)試題頁(yè)中點(diǎn)擊“提交考卷”按鈕,獲取正確答案與學(xué)生提交的答案進(jìn)行比對(duì),自動(dòng)生成考試結(jié)果,填充到相應(yīng)的Label中,考試結(jié)果頁(yè)面如下圖所示:考試結(jié)果頁(yè)上圖中自動(dòng)生成分?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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年工程師專(zhuān)業(yè)技能考試試卷及答案
- 2025年中醫(yī)執(zhí)業(yè)醫(yī)師資格考試試卷及答案
- 2025年財(cái)政稅務(wù)基本法律知識(shí)考試試卷及答案
- 2025年文化遺產(chǎn)保護(hù)專(zhuān)業(yè)考試試卷及答案
- 2025年職業(yè)道德與法律課程結(jié)業(yè)考試卷及答案
- 2025年安全工程師考試試題及答案
- 航海船舶船員職位全職聘用服務(wù)合同范本
- 主題公園項(xiàng)目投資建設(shè)與知識(shí)產(chǎn)權(quán)保護(hù)協(xié)議
- 金融科技開(kāi)源軟件貢獻(xiàn)者責(zé)任與權(quán)益協(xié)議
- 教育科技項(xiàng)目孵化器股權(quán)投資合同
- 2025年入團(tuán)考試一覽無(wú)遺試題及答案
- 公司檔案及文件管理制度
- 2025年四川筠連縣國(guó)有資本投資運(yùn)營(yíng)有限公司招聘筆試參考題庫(kù)含答案解析
- 2024年貴州遵義公開(kāi)招聘社區(qū)工作者考試試題答案解析
- 2025年全國(guó)低壓電工證(復(fù)審)考試筆試試題(300題)含答案
- 2025至2030中國(guó)注射用重組人腦利鈉肽行業(yè)運(yùn)行態(tài)勢(shì)及未來(lái)趨勢(shì)研究報(bào)告
- 文言常識(shí)測(cè)試題及答案
- 入團(tuán)考試測(cè)試題及答案
- 中班早期閱讀《跑跑鎮(zhèn)》課件
- 【語(yǔ)文試卷+答案 】上海市崇明區(qū)2025屆高三第二學(xué)期第二次模擬考試(崇明二模)
- Unit 4 第5課時(shí) B learn學(xué)習(xí)任務(wù)單
評(píng)論
0/150
提交評(píng)論