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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

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

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

評論

0/150

提交評論