版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、. . . . 目 錄引言3第一部分問(wèn)題定義與容簡(jiǎn)介41.1問(wèn)題的定義41.2 容簡(jiǎn)介4第二部分研究背景與研究意義52.1 研究背景52.2 研究意義5第三部分開(kāi)發(fā)平臺(tái)與語(yǔ)言簡(jiǎn)介63.1 IIS簡(jiǎn)介63.2 ASP簡(jiǎn)介63.3 ADO簡(jiǎn)介63.4 Microsoft SQL Server 2000簡(jiǎn)介7第四部份系統(tǒng)需求分析與可行性分析84.1 系統(tǒng)需求分析84.1.1 系統(tǒng)功能體系圖84.1.2 目標(biāo)84.1.3 用戶的特點(diǎn)84.1.4 假定與約束84.1.5 基本功能94.1.6 對(duì)性能的規(guī)定94.1.7 限制條件94.2 系統(tǒng)難點(diǎn)分析9第五部份總體設(shè)計(jì)115.1 數(shù)據(jù)庫(kù)設(shè)計(jì)115.1.1
2、數(shù)據(jù)庫(kù)圖115.1.2 數(shù)據(jù)庫(kù)的約束與關(guān)系125.2 特殊功能的原理125.2.1 管理員添加專業(yè)班級(jí)的處理原理135.2.2 管理員添加教師管理員的原理135.2.3 教師發(fā)布修改作業(yè)的原理135.2.4 教師發(fā)布修改成績(jī)的原理135.2.5 教師批量下載作業(yè)的原理135.2.6 學(xué)生上傳下載作業(yè)的原理135.2.7 實(shí)現(xiàn)回車換行與空格的原理135.2.8 作業(yè)目錄的處理原理135.3 主要功能的界面與編碼145.3.2密碼找回界面與編碼185.3.3 DataGrid的編碼設(shè)計(jì)225.3.4 管理員添加用戶的界面與編碼235.3.5 教師發(fā)布修改作業(yè)的界面與編碼255.3.6 教師批量下載
3、作業(yè)的界面與編碼295.3.7 學(xué)生上傳作業(yè)的界面與編碼31第六部分結(jié)束語(yǔ)33本系統(tǒng)的優(yōu)點(diǎn)33本系統(tǒng)的不足之處與發(fā)展意見(jiàn)33在系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)過(guò)程中的收獲33第七部分辭34第八部份參考文獻(xiàn)34參考書(shū)籍:34其它數(shù)據(jù):34第九部份附錄35(附錄一)建立數(shù)據(jù)庫(kù)與表的SQL語(yǔ)句35(附錄二)測(cè)試數(shù)據(jù)插入的SQL語(yǔ)句37引言作業(yè)提交系統(tǒng)2.0是基于b/s結(jié)構(gòu),在IIS平臺(tái)上使用ASP與Microsoft SQL 2000開(kāi)發(fā)的,主要目的是解決學(xué)校機(jī)房管理上機(jī)作業(yè)的問(wèn)題。因?yàn)閭鹘y(tǒng)的對(duì)學(xué)生作業(yè)管理是在服務(wù)器上建立一個(gè)FTP服務(wù)器,然后對(duì)學(xué)生用戶設(shè)置一個(gè)專門的,只允許對(duì)作業(yè)進(jìn)行上傳,然后學(xué)生將作業(yè)上傳到服務(wù)器
4、里對(duì)應(yīng)的班級(jí)文件夾下面,傳統(tǒng)方式無(wú)法解決的問(wèn)題有:不能防止學(xué)生亂上傳作業(yè),不能防止學(xué)生找錯(cuò)班級(jí)文件夾,不能對(duì)作業(yè)進(jìn)行限制如大小,類型,上傳時(shí)間等,教師布置作業(yè)要通過(guò)黑板寫(xiě)字,教師打分之后只能記在本子上,不能通過(guò)局域網(wǎng)發(fā)布出來(lái)讓學(xué)生看,教師下載作業(yè)必須到服務(wù)器上拷貝。而這套系統(tǒng)正是出于這個(gè)目的,為了解決上面的問(wèn)題而設(shè)計(jì)的。系統(tǒng)對(duì)于復(fù)雜的問(wèn)題都采用程序的方式解決了。系統(tǒng)分了管理員、教師、學(xué)生用戶,管理員須要的操作只是添加專業(yè),添加班級(jí),添加管理員或教師用戶都是通過(guò)網(wǎng)頁(yè)的形式展示出來(lái)。而教師無(wú)須向以前那樣,只需要發(fā)布作業(yè),對(duì)作業(yè)的要求進(jìn)行限制,不必去服務(wù)器上建文件夾來(lái)存放你的作業(yè),并且程序自動(dòng)創(chuàng)建目
5、錄。下載作業(yè)也只須要點(diǎn)一下就會(huì)將作業(yè)全部打包下載回來(lái),在局域網(wǎng)的任何一臺(tái)計(jì)算機(jī)都可以進(jìn)行各種操作。學(xué)生則再也不會(huì)將作業(yè)上傳錯(cuò),上傳到別的班級(jí)中,也不允許上傳非法的文件,對(duì)一次未上傳完成的作業(yè)也可以先上傳后下節(jié)課再下載回來(lái)接著做。系統(tǒng)用程序的方式解決了那些非常復(fù)雜的操作,比如對(duì)文件夾的創(chuàng)建等,所有的角色只需要簡(jiǎn)單的幾步操作就可以完成,非常簡(jiǎn)單實(shí)用。第一部分 問(wèn)題定義與容簡(jiǎn)介1.1問(wèn)題的定義解決傳統(tǒng)的FTP服務(wù)器不能夠滿足作業(yè)上傳的要求下:1教師發(fā)布作業(yè)必須到服務(wù)器上建立文件夾2教師發(fā)布作業(yè)由在黑板上寫(xiě)的形式改為在網(wǎng)頁(yè)上寫(xiě)再發(fā)布3教師不能對(duì)作業(yè)進(jìn)行限制如大小,類型,過(guò)期時(shí)間4教師下載作業(yè)的必須到服
6、務(wù)器去下載改為在局域網(wǎng)任何一臺(tái)計(jì)算機(jī)都可以下載5教師無(wú)法發(fā)布成績(jī)改為通過(guò)網(wǎng)頁(yè)發(fā)布成績(jī)6學(xué)生一次未完成的作業(yè)可以先上傳再下載,完成之后再上傳。7學(xué)生上傳作業(yè)只須點(diǎn)一個(gè)按鈕,無(wú)須選擇要上傳的目錄1.2 容簡(jiǎn)介通過(guò)網(wǎng)頁(yè)的形式來(lái)完成作業(yè)提交的管理。首先講述開(kāi)發(fā)平臺(tái)的特點(diǎn),和所使用的開(kāi)發(fā)語(yǔ)言的簡(jiǎn)介。再介紹研究的背景與意義并對(duì)系統(tǒng)進(jìn)行需求分析與可行性分析,最后進(jìn)行詳細(xì)的設(shè)計(jì)。通過(guò)此文檔,可以讓讀者了解作業(yè)上傳系統(tǒng)的大至流程,對(duì)于其中的功能也有一定的了解,知道作者的實(shí)現(xiàn)原理與使用的方法。第二部分 研究背景與研究意義2.1 研究背景為學(xué)校各位老師提供了一個(gè)可靠的軟件,更好的讓學(xué)生提交作業(yè)。傳統(tǒng)的手工操作方式,
7、容易對(duì)自己身體疲勞,統(tǒng)計(jì)錯(cuò)誤,且速度慢。這套系統(tǒng)可以提高管理效率和水平2.2 研究意義網(wǎng)絡(luò)化教育代表了教育改革的一個(gè)發(fā)展方向,已經(jīng)成為現(xiàn)代教育的一個(gè)特征,并對(duì)教育的發(fā)展形成新的推動(dòng)力。通過(guò)Internet/Intranet來(lái)實(shí)現(xiàn)網(wǎng)上作業(yè)提交,是現(xiàn)代教育技術(shù)的一個(gè)具體實(shí)現(xiàn),具有很重要的現(xiàn)實(shí)意義??梢詫?shí)現(xiàn)學(xué)生在線提交作業(yè)的無(wú)紙化管理,可以有效利用校園網(wǎng)的軟硬件資源,使其發(fā)揮最大效力,更好的為學(xué)校的教學(xué)、科研、管理服務(wù),隨時(shí)隨地的可以讓學(xué)生聯(lián)機(jī)操作提交。第三部分 開(kāi)發(fā)平臺(tái)與語(yǔ)言簡(jiǎn)介3.1 .NET 簡(jiǎn)介“.NET 是 Microsoft 的用以創(chuàng)建 XML Web 服務(wù)(下一代軟件)平臺(tái),該平臺(tái)將信
8、息、設(shè)備和人以一種統(tǒng)一的、個(gè)性化的方式聯(lián)系起來(lái)?!薄敖柚?.NET 平臺(tái),可以創(chuàng)建和使用基于 XML 的應(yīng)用程序、進(jìn)程和 Web 站點(diǎn)以與服務(wù),它們之間可以按設(shè)計(jì)、在任何平臺(tái)或智能設(shè)備上共享和組合信息與功能,以向單位和個(gè)人提供定制好的解決方案。”“.NET 是一個(gè)全面的產(chǎn)品家族,它建立在行業(yè)標(biāo)準(zhǔn)和 Internet 標(biāo)準(zhǔn)之上,提供開(kāi)發(fā)(工具)、管理(服務(wù)器)、使用(構(gòu)造塊服務(wù)和智能客戶端)以與 XML Web 服務(wù)體驗(yàn)(豐富的用戶體驗(yàn))。.NET 將成為您今天正在使用的 Microsoft 應(yīng)用程序、工具和服務(wù)器的一部分,同時(shí),新產(chǎn)品不斷擴(kuò)展 XML Web 的服務(wù)能力以滿足您的所有業(yè)務(wù)需求
9、?!?NET為開(kāi)發(fā)人員提供了新的開(kāi)發(fā)平臺(tái) (.NET框架) ,新的開(kāi)發(fā)語(yǔ)言(ASP) ,新的開(kāi)發(fā)工具 (Visual Studio .NET) ,新的開(kāi)發(fā)方式 (Web Service) ;為普通用戶提供了Windows CE、Windows XP、Stinger、Xbox、Tablet PC、.NET My Services、MSN等產(chǎn)品;為企業(yè)提供了bCentral。在未來(lái),最終大多數(shù)流行的 Microsoft 軟件應(yīng)用程序包括 Office 和 Visual Studio .NET將開(kāi)始與 XML Web 服務(wù)實(shí)現(xiàn)交互,并把它們的主要功能作為 XML Web 服務(wù)公開(kāi),以便其他開(kāi)發(fā)人員可
10、以利用。3.2 ASP 簡(jiǎn)介ASP(讀作“csharp”)作為Microsoft的下一代面向?qū)ο蟮恼Z(yǔ)言產(chǎn)品能夠讓開(kāi)發(fā)人員在IIS平臺(tái)上快速地建立大量的應(yīng)用程序。按照微軟給出的定義,asp是一種源自于c和c+的簡(jiǎn)單的、現(xiàn)代的、面向?qū)ο蟮暮皖愋桶踩某绦蛟O(shè)計(jì)語(yǔ)言。asp為程序員提供了開(kāi)發(fā)飛速發(fā)展的Web應(yīng)用程序所需的強(qiáng)大而靈活的功能。asp和Java的核心與c+比較有著一樣的優(yōu)勢(shì)和局限,比起c+,asp將更容易被人們理解和接受,未來(lái)大量NET平臺(tái)的應(yīng)用將由ASP開(kāi)發(fā)。3.3 ADO.NET簡(jiǎn)介ADO.NET是對(duì)Microsoft ActiveX Data Objects (ADO)一個(gè)跨時(shí)代的改進(jìn)
11、,它提供了平臺(tái)互用性和可伸縮的數(shù)據(jù)訪問(wèn)。由于傳送的數(shù)據(jù)都是XML格式的,因此任何能夠讀取XML格式的應(yīng)用程序都可以進(jìn)行數(shù)據(jù)處理。事實(shí)上,接受數(shù)據(jù)的組件不一定要是ADO .NET組件,它可以是基于一個(gè)Microsoft Visual Studio的解決方案,也可以是任何運(yùn)行在其它平臺(tái)上的任何應(yīng)用程序。ADO.NET 提供對(duì) Microsoft SQL Server 等數(shù)據(jù)源以與通過(guò) OLE DB 和 XML 公開(kāi)的數(shù)據(jù)源的一致訪問(wèn)。數(shù)據(jù)共享使用者應(yīng)用程序可以使用 ADO.NET 來(lái)連接到這些數(shù)據(jù)源,并檢索、操作和更新數(shù)據(jù)。ADO.NET 有效地從數(shù)據(jù)操作中將數(shù)據(jù)訪問(wèn)分解為多個(gè)可以單獨(dú)使用或一前一
12、后使用的不連續(xù)組件。ADO.NET 包含用于連接到數(shù)據(jù)庫(kù)、執(zhí)行命令和檢索結(jié)果的 .NET 數(shù)據(jù)提供程序。您可以直接處理檢索到的結(jié)果,或?qū)⑵浞湃?ADO.NET DataSet 對(duì)象,以便與來(lái)自多個(gè)源的數(shù)據(jù)或在層之間進(jìn)行遠(yuǎn)程處理的數(shù)據(jù)組合在一起,以特殊方式向用戶公開(kāi)。ADO.NET DataSet 對(duì)象也可以獨(dú)立于 .NET 數(shù)據(jù)提供程序使用,以管理應(yīng)用程序本地的數(shù)據(jù)或源自 XML 的數(shù)據(jù)。3.4 Microsoft SQL Server 2000簡(jiǎn)介Microsoft SQL Server 2000是一個(gè)高性能的客戶端/服務(wù)器結(jié)構(gòu)的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)(RDBMS,Relational Data
13、base Management System)。SQL Server 2000是為了支持高容量的事務(wù)處理(比如在線訂購(gòu)錄入、存貨目錄、記帳或制造)以與數(shù)據(jù)倉(cāng)庫(kù)和決策支持系統(tǒng)(比如銷售分析應(yīng)用)而設(shè)計(jì)的。它運(yùn)行在Microsoft Windows NT4或Microsoft Windows 2000 Server上基于intel處理器的網(wǎng)絡(luò)??梢园裇QL Server 2000作為一種個(gè)人桌面數(shù)據(jù)庫(kù)系統(tǒng)安裝在運(yùn)行Window NT Workstation 4、Windows 2000 Professional、Windows98和Windows Millennium Edition(Me)的機(jī)器
14、上??梢允褂靡粯拥腃D來(lái)安裝任何一個(gè)SQL Server 2000的服務(wù)器版本或個(gè)人版本。第四部份 系統(tǒng)需求分析與可行性分析4.1 系統(tǒng)需求分析4.1.1 系統(tǒng)功能體系圖作業(yè)提交系統(tǒng)注冊(cè)登錄密碼找回學(xué)生用戶登錄教師用戶登錄管理員用戶登錄查看成績(jī)打包下載作業(yè)發(fā)布修改作業(yè)添加班級(jí)添加用戶數(shù)據(jù)庫(kù)管理上傳作業(yè)下載作業(yè)查看作業(yè)發(fā)布修改成績(jī)刪除作業(yè)添加專業(yè)通用模板修改密碼查看個(gè)人資料注銷系統(tǒng)4.1.2 目標(biāo)完成一套網(wǎng)上的作業(yè)提交系統(tǒng),免費(fèi)提供給學(xué)校機(jī)房使用,將所有源代碼公開(kāi),方便別人學(xué)習(xí),也希望更多的人參與本系統(tǒng)的開(kāi)發(fā)。4.1.3 用戶的特點(diǎn)用戶是機(jī)房管理員,對(duì)計(jì)算機(jī)技術(shù)比較了解,學(xué)校教師專業(yè)教師能很快熟
15、悉系統(tǒng)的使用方法,非專業(yè)教師也能很快掌握,學(xué)校學(xué)生能很快學(xué)會(huì)使用系統(tǒng)。4.1.4 假定與約束 1如果壓縮文件夾的功能不能解決,那么只有教師到服務(wù)器拷貝文件夾 2如果學(xué)校覺(jué)得系統(tǒng)不能滿足學(xué)生作業(yè)上傳的需要,那么將不能放在機(jī)房,供學(xué)生使用 3如果遇到一些技術(shù)問(wèn)題無(wú)法解決,那么將會(huì)加大系統(tǒng)的開(kāi)發(fā)周期 4如果此系統(tǒng)在離開(kāi)學(xué)期之前都無(wú)法開(kāi)發(fā)成功,那么也不能提供給機(jī)房使用。4.1.5 基本功能1學(xué)生注冊(cè)2學(xué)生、教師、管理員密碼找回功能3不同用戶登錄進(jìn)入不同的界面4學(xué)生作業(yè)的查看5學(xué)生作業(yè)成績(jī)的查看6學(xué)生作業(yè)上傳7教師布置作業(yè)8教師刪除作業(yè)9教師修改作業(yè)10教師發(fā)布成績(jī)11教師修改成績(jī)12教師下載作業(yè)13管
16、理員添加教師用戶14管理員添加管理員用戶15管理員添加專業(yè)16管理員添加班級(jí)17個(gè)人資料的查看18個(gè)人密碼的修改4.1.6 對(duì)性能的規(guī)定1要求系統(tǒng)支持Microsoft .NET Framework 1.12要求系統(tǒng)支持Microsoft SQL Server數(shù)據(jù)庫(kù)3要求必須安裝IIS4.1.7 限制條件1 學(xué)生不可以進(jìn)行教師與管理員的頁(yè)面2 教師也不可以進(jìn)入管理員頁(yè)面,還有學(xué)生頁(yè)面3 管理員也不可以進(jìn)行學(xué)生和教師面頁(yè)4 每個(gè)學(xué)生登錄進(jìn)入之后只能看到自己班級(jí)的作業(yè),不可以看到別的班級(jí)的作業(yè)5 每個(gè)教師登錄只對(duì)自己發(fā)布的作業(yè)進(jìn)行管理,不可以對(duì)別的教師發(fā)布的作業(yè)進(jìn)行管理6 當(dāng)學(xué)生注冊(cè)時(shí)輸入的學(xué)號(hào)必
17、需與選定的班級(jí)匹配。7 不同的用戶使用修改密碼都只能修改自己的密碼,無(wú)法修改他人的8 不同的用戶使用個(gè)人數(shù)據(jù)功能時(shí),也是只可以看到自己的信息不可以看到他們的信息9 學(xué)生上傳作業(yè)的類型,大小,時(shí)間等,受到教師發(fā)布作業(yè)的約束4.2 系統(tǒng)難點(diǎn)分析本系統(tǒng)最大的難點(diǎn)是對(duì)作業(yè)的壓縮與打包下載,因?yàn)槭窃赪EB上,無(wú)法運(yùn)行像winrar這樣的壓縮軟件來(lái)進(jìn)行文件夾的壓縮,壓縮的技術(shù)也不是我們現(xiàn)在能現(xiàn)寫(xiě)出來(lái)的,因?yàn)檫@個(gè)功能需要非常復(fù)雜的技術(shù),但是我們可以引用別人開(kāi)發(fā)出來(lái)的東西,上網(wǎng)查了很多的數(shù)據(jù),找到一個(gè)SharpZipLib控件可以實(shí)現(xiàn)在線文件夾的壓縮,而且他的源代碼是開(kāi)放的,可以在“第五部份 總體設(shè)計(jì)5.1
18、數(shù)據(jù)庫(kù)設(shè)計(jì)5.1.1 數(shù)據(jù)庫(kù)圖Admin表列名數(shù)據(jù)類型長(zhǎng)度允許空Xuehaovarchar15Xingmingvarchar20pwvarchar30Pw_wentivarchar50Pw_daanvarchar50Emailvarchar20denglushuint4Class表列名數(shù)據(jù)類型長(zhǎng)度允許空Class_namevarchar50Class_daihaovarchar15Student表列名數(shù)據(jù)類型長(zhǎng)度允許空Xuehaovarchar15Xingmingvarchar20Pwvarchar30Pw_wentivarchar50Pw_daanvarchar50Emailvarchar2
19、0Denglushuint4banjidaihaovarchar15Teacher表列名數(shù)據(jù)類型長(zhǎng)度允許空Xuehaoint4Xingmingvarchar20Pwvarchar30Pw_wentivarchar50Pw_daanvarchar50Emailvarchar20Denglushuint4zuoyeshuint4Zhuanye表列名數(shù)據(jù)類型長(zhǎng)度允許空Ad_idint4mingchengvarchar30Zuoye表列名數(shù)據(jù)類型長(zhǎng)度允許空Ad_idint4Zy_titlevarchar3Zy_contentText16Zy_xingmingvarchai10Zy_xuehaoInt4
20、Zy_dateDatetime8Zy_wcdateDatetime8Zy_lujingvarchar50Zy_wenjianleixingvarchar10Zy_daxiaoInt4Zy_class_daihaoVarchar15Zy_chengjiText16注:創(chuàng)建數(shù)據(jù)庫(kù)與表的SQL語(yǔ)句與各字段表示什么意思見(jiàn)(附錄一)5.1.2 數(shù)據(jù)庫(kù)的約束與關(guān)系管理員表與其它表無(wú)關(guān)系只是為了存放管理員的與密碼等數(shù)據(jù)教師表里的xuehao字段為主鍵用于存放老師的ID班級(jí)表里存放的是班級(jí)的全稱與班級(jí)的代號(hào)學(xué)生表與班級(jí)表之間存在著外鍵約束,如果學(xué)生表里班級(jí)代號(hào)字段的值與班級(jí)表里面的班級(jí)代號(hào)值關(guān)鍵。專業(yè)表與其它
21、表無(wú)關(guān)系作業(yè)表也是最重要的一個(gè)表它同時(shí)與二個(gè)表存在著外鍵約束,ZY_XueHao字段與教師的代號(hào)之間相關(guān)聯(lián),ZY_class與班級(jí)表里面班級(jí)代號(hào)相關(guān)聯(lián)。其它各字段的值都是有一些非空的約束,詳細(xì)情況請(qǐng)見(jiàn)(附錄一中的備注)在新建數(shù)據(jù)庫(kù)之后要插入了幾條測(cè)試數(shù)據(jù)(見(jiàn)附錄二)5.2 特殊功能的原理5.2.1 管理員添加專業(yè)班級(jí)的處理原理以本系為例子,有十多個(gè)專業(yè),當(dāng)某個(gè)專業(yè)人數(shù)比較多時(shí)就會(huì)分成幾個(gè)班,如圖形圖像一班,圖形圖像二班,ACCP一班,ACCP二班等,而且還分為2004級(jí)圖形圖像一班,2004級(jí)圖像圖像二班,2005級(jí)圖形圖像一班,2005級(jí)圖形圖像二班等。在程序中,首先應(yīng)該添加專業(yè),而把“圖形
22、圖像一班”視為一個(gè)專業(yè),“圖形圖像二班”視為一個(gè)專業(yè)。前面的“2004級(jí)”“2005級(jí)”當(dāng)作年份。添加專業(yè)的時(shí)候不用只需要添加專業(yè)的名稱,在添加班級(jí)的時(shí)候只須要選擇年份和專業(yè),再輸入班級(jí)的代號(hào)就可以添加班級(jí)了。5.2.2 管理員添加教師管理員的原理管理員可以添加教師用戶,教師用戶必須由管理員添加,每次當(dāng)管理員添加教師用戶時(shí)就會(huì)在目錄下的一個(gè)專門用于存放上傳作業(yè)的目錄(up)的根目錄下以教師的為目錄名新建一個(gè)根目錄。用于教師布置作業(yè)之后,學(xué)生上傳作業(yè)的存放目錄。5.2.3 教師發(fā)布修改作業(yè)的原理老師發(fā)布作業(yè)之后可以修改作業(yè),而且二個(gè)功能都是使用的一個(gè)界面來(lái)完成,通過(guò)傳遞的一個(gè)參數(shù)來(lái)判斷用戶的操作
23、是發(fā)布作業(yè)還是修改作業(yè),如果是修改作業(yè)而取得一個(gè)ID值將數(shù)據(jù)庫(kù)里的容綁定到用戶界面。(注:但是在修改作業(yè)的時(shí)候作業(yè)的班級(jí)與作業(yè)的標(biāo)題設(shè)與到文件的目錄所有修改時(shí)定為不可以修改)5.2.4 教師發(fā)布修改成績(jī)的原理教師發(fā)布成績(jī)或修改成績(jī)的原理和教師發(fā)布修改作業(yè)的原理大至一樣,都是使用一個(gè)頁(yè)面來(lái)完成的,通過(guò)一個(gè)參數(shù)來(lái)判斷用戶的操作是發(fā)布還是修改。5.2.5 教師批量下載作業(yè)的原理教師批量下載作業(yè)是將學(xué)生上傳后的作業(yè)全部打包成一個(gè)zip的壓縮文件,然后從服務(wù)器上下載。因?yàn)檫@里面涉與到壓縮文件的一些算法,非常復(fù)雜。所以我用使用了國(guó)外的一個(gè)壓縮類來(lái)完成。下載地址:5.2.6 學(xué)生上傳下載作業(yè)的原理學(xué)生上傳作
24、業(yè)的時(shí)候,首先應(yīng)該選擇上傳那科的作業(yè)。例:學(xué)生登錄200416140 密碼snryang 班級(jí)代號(hào)是2004161 “文兵”作業(yè)標(biāo)題為“實(shí)用軟件工程方法第一次作業(yè)”班級(jí)名通過(guò)查詢班級(jí)表得到為“2004級(jí)WEB應(yīng)用程序設(shè)計(jì)”。上傳目錄設(shè)為“C:inetpubwwwrootnxwszuoyeup” 作業(yè)的存置教師為“XXX”則學(xué)生上傳作業(yè)的時(shí)候則會(huì)上傳到“C:inetpubwwwrootnxwszuoyeupXXX2004級(jí)WEB應(yīng)用程序設(shè)計(jì)實(shí)用軟件工程方法第一次作業(yè)”這個(gè)目錄下面,下載的時(shí)候也會(huì)在這個(gè)目錄下面下載,上傳的文件名為加上教師布置作業(yè)時(shí)的擴(kuò)展名。如果有重復(fù)上傳則會(huì)覆蓋原來(lái)上傳的文件。5
25、.2.7 實(shí)現(xiàn)回車換行與空格的原理使用到的頁(yè)面有發(fā)布作業(yè)和修改作業(yè)和學(xué)生查看作業(yè)。(因?yàn)樵诎l(fā)布作業(yè)的時(shí)候?qū)⒒剀囖D(zhuǎn)換成<br>存入數(shù)據(jù)庫(kù)這樣在顯示數(shù)據(jù)時(shí)才會(huì)顯示換行,不然無(wú)法實(shí)現(xiàn)換行,空格也是必須換成“ ”。如果不進(jìn)行字符的替換,則文本框中的回車與空格將會(huì)省去,存入數(shù)據(jù)庫(kù)中,通過(guò)數(shù)據(jù)庫(kù)顯示到用戶界面的時(shí)候就無(wú)法區(qū)分用戶的換車和空格,格式不好看,所以在這里進(jìn)行了簡(jiǎn)單的替換實(shí)現(xiàn)回車與空格的效果。ASP中的代碼為TextContel.Text.Replace("rn" , "<br>").Replace(" &
26、quot;," ")5.2.8 作業(yè)目錄的處理原理在Web.config文件中存放了上傳文件的目錄默認(rèn)為(目錄一)“c:Inetpubwwwrootnxwszuoyeup”。當(dāng)新建一個(gè)教師用戶時(shí)就會(huì)在目錄一下面以教師的為目錄名建立一個(gè)根目錄如(目錄二)“c:InetpubwwwrootnxwszuoyeupXXX”。當(dāng)老師用戶登錄之后發(fā)布作業(yè)的時(shí)候要輸入作業(yè)的標(biāo)題,還要先擇作業(yè)的所屬班級(jí)。每一次發(fā)布作業(yè)就會(huì)新建目錄,在目錄二的下面建立如下形式的目錄“c:InetpubwwwrootnxwszuoyeupXXX作業(yè)的所屬班級(jí)作業(yè)的標(biāo)題”耐用會(huì)將“XXX作業(yè)的
27、所屬班級(jí)作業(yè)的標(biāo)題”存入發(fā)布作業(yè)的一個(gè)字段里面。方便以后目錄的查找,也就實(shí)現(xiàn)了不同的用戶上傳的作業(yè)存放到不同的文件夾,并進(jìn)行分類存放,也方便了老師對(duì)作業(yè)目錄的管理,方便的下載作業(yè)等。這是本系統(tǒng)的一個(gè)核心。5.3 主要功能的界面與編碼5.3.1 DB類的編碼using System;using System.Data;using System.Configuration; /導(dǎo)入的一個(gè)命名空間,不然無(wú)法讀取WEB.config配置文件using System.Data.SqlClient; using ICSharpCode.SharpZipLib.Zip; /導(dǎo)入壓縮文件夾的命名空間using
28、 System.Web;using System.IO; /用于實(shí)現(xiàn)下載文件的命名空間using System.Threading; /用于實(shí)現(xiàn)下載文件的命名空間namespace nxwszuoye public class db /我自己建立的一個(gè)數(shù)據(jù)訪問(wèn)類,public db()/一個(gè)靜態(tài)方法返回web.config配置文件中的數(shù)徑public static string zuoyepath()string yang=ConfigurationSettings.AppSettings"FileLuJing" /fileLuJing為配置文件中的值return yang
29、; /靜態(tài)方法,返回一個(gè)SqlConnection對(duì)象public static SqlConnection conn()string yang=ConfigurationSettings.AppSettings"myconn" /myconn為配置文件中的值SqlConnection aa = new SqlConnection (yang); return aa; /建立數(shù)據(jù)庫(kù)的連接 /靜態(tài)方法,反回查詢是否成功public static bool ChaZhao(string sql) /判斷記錄是否重復(fù)bool yang=false; try /捕獲異常SqlCon
30、nection conn=db.conn();SqlCommand cmd= new SqlCommand(sql,conn);conn.Open();SqlDataReader dr=cmd.ExecuteReader();if(dr.Read()yang=true; elseyang=false;dr.Close();conn.Close();catch(Exception e)throw(e);return yang; /靜態(tài)方法,執(zhí)行SQL語(yǔ)句,返回值是否成功public static bool Edit(string sql) /對(duì)數(shù)據(jù)庫(kù)增刪改操作bool yang=false;in
31、t dr=0;/對(duì)異常進(jìn)行了捕獲trySqlConnection conn=db.conn();SqlCommand cmd= new SqlCommand(sql,conn);conn.Open();dr=cmd.ExecuteNonQuery();conn.Close();catch(Exception e)throw(e);finallyif(dr>0)yang=true; return yang;/返回SQL語(yǔ)句第一行第一列的值public static string getValue(string sql)string str=null;trySqlConnection con
32、n=db.conn();SqlCommand cmd = new SqlCommand(sql,conn);conn.Open();str = cmd.ExecuteScalar().ToString();conn.Close();catch(Exception e)throw(e);return str; /下載文件的靜態(tài)方法public static bool ResponseFile( Request _Request, Response _Response,string _fileName,string _fullPath, long _speed)tryFileStream myFi
33、le = new FileStream(_fullPath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);BinaryReader br = new BinaryReader(myFile);try_Response.AddHeader("Accept-Ranges", "bytes");_Response.Buffer = false;long fileLength = myFile.Length;long startBytes = 0; int pack = 10240; /10K byt
34、es/int sleep = 200; /每秒5次 即5*10K bytes每秒int sleep = (int)Math.Floor(1000 * pack / _speed) + 1;if (_Request.Headers"Range" != null)_Response.StatusCode = 206;string range = _Request.Headers"Range".Split(new char '=', '-');startBytes = Convert.ToInt64(range1);_Respo
35、nse.AddHeader("Content-Length", (fileLength - startBytes).ToString();if (startBytes != 0)_Response.AddHeader("Content-Range", string.Format(" bytes 0-1/2", startBytes, fileLength-1, fileLength);_Response.AddHeader("Connection", "Keep-Alive");_Respons
36、e.ContentType = "application/octet-stream"_Response.AddHeader("Content-Disposition","attachment;filename=" + Utility.UrlEncode(_fileName,System.Text.Encoding.UTF8) );br.BaseStream.Seek(startBytes, SeekOrigin.Begin);int maxCount = (int) Math.Floor(fileLength - startBytes
37、) / pack) + 1;for (int i = 0; i < maxCount; i+)if (_Response.IsClientConnected)_Response.BinaryWrite(br.ReadBytes(pack);Thread.Sleep(sleep);elsei=maxCount; catchreturn false;finallybr.Close();myFile.Close();catchreturn false;return true;5.3.2密碼找回界面與編碼重點(diǎn)對(duì)panel的應(yīng)用圖:以為每一塊為一個(gè)從左到右從上到下為panel1,panel2,pa
38、nel3,panel4,panel5。代號(hào):public static string PW_DaAn=null; /用于存放密碼提示答案的變量private void Page_Load(object sender, System.EventArgs e)if(!this.IsPostBack) /頁(yè)面初始時(shí)顯示第一步this.Panel1.Visible=false;this.Panel2.Visible=false;this.Panel3.Visible=false;this.Panel4.Visible=false;this.Panel5.Visible=true;private voi
39、d Button7_Click(object sender, System.EventArgs e)if(YongHu.SelectedValue.ToString()="wu") /如果未選擇用戶的類型則給出提示.Response.Write("<script language='javascript'>alert('必須選擇用戶類型');</script>");Response.Write("<script language='javascript'>his
40、tory.go(-1)</script>");elsethis.Panel1.Visible=true; /顯示第二步,其它步驟危隱藏.this.Panel2.Visible=false;this.Panel3.Visible=false;this.Panel4.Visible=false;this.Panel5.Visible=false;private void Button8_Click(object sender, System.EventArgs e)/返回上一步this.Panel1.Visible=false;this.Panel2.Visible=fals
41、e;this.Panel3.Visible=false;this.Panel4.Visible=false;this.Panel5.Visible=true;private void Button2_Click(object sender, System.EventArgs e)/判斷是否存在string sql=null;/根據(jù)選擇的不同用戶,建立不同的查詢語(yǔ)句switch(YongHu.SelectedValue.ToString()case "Admin":sql="select * from Admin Where XingMing='"
42、+ZhangHao.Text +"'"break;case "Teacher":sql="select * from Teacher Where XingMing='"+ZhangHao.Text +"'"break;case "Student":sql="select * from Student Where XueHao='"+ZhangHao.Text +"'"break;SqlConnection conn=
43、db.conn();SqlCommand cmd=new SqlCommand(sql,conn);conn.Open();SqlDataReader dr=cmd.ExecuteReader();/根據(jù)查詢語(yǔ)句的結(jié)果,查詢出密碼提示的問(wèn)題,并將密碼提示答案存入一個(gè)全局變量if(dr.Read()this.Label1.Text=dr"Pw_WenTi".ToString();PW_DaAn=dr"Pw_DaAn".ToString();this.Panel1.Visible=false;this.Panel2.Visible=true;this.Pan
44、el3.Visible=false;this.Panel4.Visible=false;this.Panel5.Visible=false;elseResponse.Write("<script language='javascript'>alert('對(duì)不起!不存在此用戶');</script>");Response.Write("<script language='javascript'>history.go(-1)</script>");dr.Close
45、();conn.Close();private void Button3_Click(object sender, System.EventArgs e)this.Panel1.Visible=true;this.Panel2.Visible=false;this.Panel3.Visible=false;this.Panel4.Visible=false;this.Panel5.Visible=false;private void Button1_Click(object sender, System.EventArgs e)/如果用戶輸入的的密碼提示答案不與數(shù)據(jù)庫(kù)里的一樣,則給出提示,if
46、(MiMaDaAn.Text=PW_DaAn)this.Panel1.Visible=false;this.Panel2.Visible=false;this.Panel3.Visible=true;this.Panel4.Visible=false;this.Panel5.Visible=false;elseResponse.Write("<script language='javascript'>alert('對(duì)不起!密碼答案不正確,請(qǐng)重新輸入!');</script>");Response.Write("
47、;<script language='javascript'>history.go(-1)</script>");private void Button5_Click(object sender, System.EventArgs e)this.Panel1.Visible=false;this.Panel2.Visible=false;this.Panel3.Visible=true;this.Panel4.Visible=false;this.Panel5.Visible=false;private void Button4_Click(o
48、bject sender, System.EventArgs e)/根據(jù)用戶的類型建立不同的密碼更新SQL語(yǔ)句string upsql=null;switch(YongHu.SelectedValue.ToString()case "Admin":upsql="update Admin set PW='"+PW.Text+"' Where XingMing='"+ZhangHao.Text +"'"break;case "Teacher":upsql="
49、update Teacher set PW='"+PW.Text+"' Where XingMing='"+ZhangHao.Text +"'"break;case "Student":upsql="update Student set PW='"+PW.Text+"' Where XueHao='"+ZhangHao.Text +"'"break;/執(zhí)行更新操作bool yang=db.Edit(up
50、sql);if(yang)this.Panel1.Visible=false;this.Panel2.Visible=false;this.Panel3.Visible=false;this.Panel4.Visible=true;this.Panel5.Visible=false;elseResponse.Write("<script language='javascript'>alert('更新密碼出錯(cuò)!');</script>");Response.Write("<script language=
51、'javascript'>history.go(-1)</script>");private void Button6_Click(object sender, System.EventArgs e)Response.Redirect("index.aspx");5.3.3 DataGrid的編碼設(shè)計(jì)1當(dāng)鼠標(biāo)指向DataGrid時(shí)DataGrid中的行時(shí)背景變色/如果是數(shù)據(jù)項(xiàng)并且是交替項(xiàng) DataGrid鼠標(biāo)指向背景變色if(e.Item.ItemType = ListItemType.Item |e.Item.ItemType
52、= ListItemType.AlternatingItem) /添加自定義屬性,當(dāng)鼠標(biāo)移過(guò)來(lái)時(shí)設(shè)置該行的背景色為"6699ff",并保存原背景色 e.Item.Attributes.Add("onmouseover","currentcolor=this.style.backgroundColor;this.style.backgroundColor='#6699ff'"); /添加自定義屬性,當(dāng)鼠標(biāo)移走時(shí)還原該行的背景色 e.Item.Attributes.Add("onmouseout","this.style.backgroundColor=currentcolor"); 以上代碼添加到DataGrid的ItemDataBound事件中2為DataGrid的刪除按鈕添加確認(rèn)對(duì)話框(LinkButton)(e.Item.Cells4.Controls0).Attributes.Add("onclick","r
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年豪華賓館獨(dú)家承包經(jīng)營(yíng)合同版B版
- 2025版辦公室裝修與室內(nèi)植物養(yǎng)護(hù)服務(wù)合同3篇
- 2024年玉器行業(yè)質(zhì)量檢測(cè)與認(rèn)證合同3篇
- 2024某公司與某政府機(jī)構(gòu)關(guān)于公共服務(wù)項(xiàng)目的合同
- 二零二五年合伙開(kāi)設(shè)瑜伽舞蹈工作室的合同3篇
- 2024版產(chǎn)品推廣合作協(xié)議模板
- 2025版草原承包租賃合同包含草原旅游開(kāi)發(fā)合作協(xié)議2篇
- 2025版環(huán)保產(chǎn)業(yè)股份合作與投資管理協(xié)議書(shū)3篇
- 2024年電子產(chǎn)品購(gòu)銷合作詳細(xì)合同版B版
- 2024年行政案件復(fù)議代表協(xié)議條款版
- 中國(guó)珠寶市場(chǎng)發(fā)展報(bào)告(2019-2024)(中英)-中國(guó)珠寶玉石首飾行業(yè)協(xié)會(huì)
- 2024年陜西省安全員《A證》考試題庫(kù)及答案
- 2024版新能源汽車購(gòu)置補(bǔ)貼及服務(wù)保障合同3篇
- 2024-2025學(xué)年華東師大新版八年級(jí)上冊(cè)數(shù)學(xué)期末復(fù)習(xí)試卷(含詳解)
- 《praat使用入門》課件
- 醫(yī)藥銷售主管市場(chǎng)規(guī)劃
- 測(cè)量應(yīng)急管理方案
- 2024-2025學(xué)年深圳市初三適應(yīng)性考試模擬試卷語(yǔ)文試卷
- DB22JT 147-2015 巖土工程勘察技術(shù)規(guī)程
- 杵針療法課件
- 期末測(cè)試卷-2024-2025學(xué)年語(yǔ)文四年級(jí)上冊(cè)統(tǒng)編版
評(píng)論
0/150
提交評(píng)論