畢業(yè)設(shè)計---軟件工程網(wǎng)上輔助教學(xué)系統(tǒng)_第1頁
已閱讀1頁,還剩37頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  畢業(yè)設(shè)計(論文)</b></p><p>  題目: 軟件工程網(wǎng)上輔助教學(xué)系統(tǒng)</p><p>  學(xué) 院 </p><p>  專業(yè)名稱 </p><p>  班級學(xué)號 </p><p>  學(xué)生姓名 </p&

2、gt;<p>  指導(dǎo)教師 </p><p>  二00 年 月</p><p><b>  摘要</b></p><p>  隨著計算機技術(shù)的飛速發(fā)展,信息網(wǎng)絡(luò)已成為社會發(fā)展的重要保證。如何以網(wǎng)絡(luò)為紐帶快速、高效、方便地實現(xiàn)知識傳遞,以現(xiàn)代化手段促進教學(xué)改革,是教育工作者要解決的問題。傳統(tǒng)的教學(xué)方式體現(xiàn)

3、出教師和學(xué)生不能同步的問題,現(xiàn)在有一種教學(xué)方式就是基于網(wǎng)絡(luò)的教學(xué),它實現(xiàn)了在網(wǎng)絡(luò)上學(xué)生和教師互動。</p><p>  網(wǎng)上教學(xué)輔助系統(tǒng)是面向教師和學(xué)生的輔助系統(tǒng), 基于JSP技術(shù)的網(wǎng)絡(luò)教學(xué)平臺是體現(xiàn)校園網(wǎng)的優(yōu)勢,通過此平臺,學(xué)生、老師可以不受時間、空間、地域的限制,進行教學(xué)互動。相比較傳統(tǒng)教學(xué)更容易提高教學(xué)效率。</p><p>  整個系統(tǒng)界面簡潔、操作方便,包含了用戶操作模塊:普通用

4、用戶登錄;學(xué)生提交作業(yè)、查看課件、提出問題和在線答題;教師發(fā)布課件、批改作業(yè)、更新試卷、解答問題等;還包含了管理員操作模塊:系統(tǒng)管理員登錄、維護等功能。</p><p>  本系統(tǒng)語言選擇java,具體采用JSP +SQL Server開發(fā)。系統(tǒng)的實現(xiàn)是在SQL Server數(shù)據(jù)庫上并基于B/S結(jié)構(gòu)。</p><p>  關(guān)鍵詞:軟件工程;網(wǎng)上教學(xué); JSP;B/S;SQL SERVER

5、2000</p><p><b>  ABSTRACT</b></p><p>  With the computer technically developing so fast, the information network has become the important guarantee that the society develop. To take

6、the network as the link fast, it is how highly effective,how to improve the reform of teaching, conveniently realizes the knowledge transmission. In the platform, the student may be spatial, the region limited, not reall

7、y realizing the on-line browsing course content, to complete the study work, function and so on .Now,there is a way of teaching students </p><p>  The on-line teach assistant system faces to the teacher and

8、students’ network teaching system, In this platform system structure, the function has carried on the detailed analysis, and introduced in the design uses essential technology and could be unlimited time and district.Com

9、pared to old system,it can improve the efficiency better.</p><p>  The system is succinct in every management, containing the general user and registration, search , examination and download. The students su

10、bmit the studywork, the examination class and the result. It focus on how to solve the problem that is hard to solve and it provides some ways about design idea. </p><p>  The system adopts java ,JSP and

11、SQL Server 200 technology. The System adopts SQL Server database and based on the B / S structure. </p><p>  Keywords: Software Project;Teaching Network; JSP;B/S;SQL SERVER 2000</p><p><b>

12、;  目 錄</b></p><p><b>  1. 引言</b></p><p>  1.1 課題的來源.意義和目標1</p><p>  1.2. 完成的內(nèi)容與設(shè)計結(jié)果1</p><p>  1.2.1.設(shè)計的內(nèi)容1</p><p>  1.2.2.設(shè)計結(jié)果2&l

13、t;/p><p>  2. 總體設(shè)計與實施方案</p><p>  2.1.總體設(shè)計3</p><p>  2.1.1.設(shè)計目標3</p><p>  2.1.2.系統(tǒng)結(jié)構(gòu)3</p><p>  2. 1. 3.系統(tǒng)數(shù)據(jù)流圖…………………………………………………………………...4</p><p

14、>  2.2.實施方案4</p><p>  2.2.1. 設(shè)計環(huán)境需求與程序設(shè)計語言選擇4</p><p>  2.2.2.方案與實施步驟5</p><p>  2.2.2.1.設(shè)計方案………………………………………………………………………5</p><p>  2.2.2.2.實施步驟………………………………………………………

15、………………6 </p><p>  3. 系統(tǒng)的設(shè)計與實現(xiàn)/程序的編制</p><p>  3.1. 數(shù)據(jù)設(shè)計7</p><p>  3.1.1. 數(shù)據(jù)庫信息表設(shè)計7</p><p>  3.1.2. 數(shù)據(jù)庫的實現(xiàn)11</p><p>  3.2. 系統(tǒng)模塊的設(shè)計12</p><p&g

16、t;  3. 2. 1用戶操作模塊12</p><p>  3. 2. 2管理員操作模塊25</p><p>  程序的調(diào)試及故障分析</p><p>  4.1設(shè)計錯誤…………………………………………………………………………..28</p><p>  4.2配置錯誤…………………………………………………………………………..28<

17、;/p><p>  5. 設(shè)計的結(jié)果與討論</p><p>  5.1 系統(tǒng)完成結(jié)果…………………………………………………………………….29</p><p>  5.2 系統(tǒng)討論結(jié)果…………………………………………………………………….29</p><p>  6. 總結(jié)...................................

18、.............31</p><p>  參考文獻................................................32</p><p>  致 謝……………………………………………………………....33 </p><p><b>  1. 引言</b></p><p> 

19、 1.1課題的來源,意義和目標</p><p>  近年來,隨著計算機的普及,管理系統(tǒng)的應(yīng)用也得到迅速發(fā)展,計算機越來越廣泛的應(yīng)用于各個領(lǐng)域。隨著學(xué)生人數(shù)的增多,傳統(tǒng)教學(xué)局限性,使得軟件工程網(wǎng)上教學(xué)輔助系統(tǒng)成為教學(xué)管理的迫切需要。</p><p>  傳統(tǒng)的教學(xué)方式表現(xiàn)出在老師和學(xué)生不能同步;例如:作業(yè)必須由人上交、提問只能在課堂上提出;這樣既浪費了各自的時間又使教學(xué)效率變得較低。而網(wǎng)上教

20、學(xué)輔助系統(tǒng),實現(xiàn)了電子教學(xué);它可以隨時隨地讓學(xué)生和老師進行互動。通過整個系統(tǒng)能時時監(jiān)控,以便隨時對教學(xué)進行管理,大大提高了管理效率、工作效率。</p><p>  網(wǎng)上教學(xué)輔助系統(tǒng)的目標就是學(xué)生和老師可以互動??梢詫崿F(xiàn)學(xué)生查看課件、上傳作業(yè)、在線提問、答題等功能;老師可以上傳課件、在線回答、更新試卷等功能;管理員可以更新用戶信息、維護等功能。</p><p>  1.2. 完成的內(nèi)容與設(shè)計

21、結(jié)果</p><p>  1.2.1.設(shè)計的內(nèi)容</p><p>  軟件工程網(wǎng)上教學(xué)輔助系統(tǒng)由教師教學(xué)系統(tǒng)、學(xué)生學(xué)習(xí)系統(tǒng)和教學(xué)管理系統(tǒng)三大模塊組成,這些模塊之間相互聯(lián)系,相互配合構(gòu)成一個完整的網(wǎng)絡(luò)教學(xué)系統(tǒng)。</p><p><b>  主要設(shè)計的內(nèi)容:</b></p><p>  1、教師教學(xué)系統(tǒng)與學(xué)生學(xué)習(xí)系統(tǒng)<

22、/p><p>  教師教學(xué)系統(tǒng)與學(xué)生學(xué)習(xí)系統(tǒng)的功能相對應(yīng),主要包含以下幾個模塊:</p><p>  (1) 網(wǎng)上作業(yè):作業(yè)環(huán)節(jié)是對所學(xué)知識理解和鞏固的過程。</p><p>  (2) 在線測試:教師可以完成試題添加,試題管理。</p><p>  (3) 討論答疑 :在界面上采用了BBS形式,提問與回答的過程是異步的, 學(xué)生將學(xué)習(xí)中遇到的問題

23、用留言的形式公布在網(wǎng)上,教師通過此模塊進行答疑。教師也可以在網(wǎng)上發(fā)布討論題,引導(dǎo)學(xué)生進行學(xué)術(shù)研究和討論</p><p>  (5) 網(wǎng)上交流:通過此模塊可以解決個別學(xué)生的概念模糊,解題思路混亂等問題。</p><p><b>  2、教學(xué)管理系統(tǒng)</b></p><p>  系統(tǒng)分為人員管理、課程管理、作業(yè)管理、考試管理和討論交流管理。<

24、/p><p>  (1) 人員管理:包括系統(tǒng)管理員、教師和學(xué)生管理。其中管理員可以對所有人員進行添加、修改、刪除和查詢,同時還可以對教師的所有權(quán)限進行分配。</p><p>  (2) 課程管理:包括課程添加、課程查詢和課件管理。</p><p>  (3) 作業(yè)管理:可以查看、修改和刪除作業(yè)。</p><p>  (4) 考試管理:試題添加、修

25、改和刪除。</p><p>  3、普通用用戶登錄;搜索課件、查看作業(yè)、下載課件等操作</p><p> ?。?)普通用用戶登錄;</p><p>  普通用戶可以登錄個人信息到軟件工程網(wǎng)上教學(xué)輔助系統(tǒng),成為普通用戶。</p><p> ?。?)搜索課件、查看作業(yè)、下載課件等</p><p>  普通用戶登錄軟件工程網(wǎng)

26、上教學(xué)輔助系統(tǒng)以后可以進行搜索信息或者資料、查看信息或者資料、下載信息等功能,</p><p>  4、系統(tǒng)管理員登錄、維護等功能。</p><p>  系統(tǒng)管理員在軟件工程網(wǎng)上教學(xué)輔助系統(tǒng)上登錄、維護信息的等功能。</p><p><b>  5、 其他基本功能</b></p><p>  系統(tǒng)同時要具備其他的系統(tǒng)的基

27、本功能:新用戶添加,用戶登錄,用戶退出、刪除用戶等</p><p>  1.2.2.設(shè)計結(jié)果</p><p>  完成的軟件工程網(wǎng)上教學(xué)輔助系統(tǒng)是提供給用戶的一個查看教學(xué)的平臺,界面簡約、明快、方便,功能是學(xué)生、老師可以在線操作。例如:學(xué)生查看課件、老師上傳課件。</p><p>  2. 總體設(shè)計與實施方案</p><p><b>

28、;  2.1.總體設(shè)計</b></p><p>  2.1.1.設(shè)計目標</p><p>  整個系統(tǒng)界面簡潔、操作方便,包含了普通用用戶登錄;搜索課件、查看課件、下載課件等操作;學(xué)生提交作業(yè)、查看課件、提問和在線答題;教師發(fā)布課件、查看作業(yè)、更新試卷、解答問題;系統(tǒng)管理員登錄、維護等功能。</p><p>  2.1.2.系統(tǒng)結(jié)構(gòu)</p>

29、<p>  本系統(tǒng)分為三大塊:教師、學(xué)生、管理員系統(tǒng);模塊結(jié)構(gòu)如下:</p><p><b>  圖1系統(tǒng)模塊</b></p><p>  2.1.3.系統(tǒng)結(jié)構(gòu)數(shù)據(jù)流圖:</p><p>  數(shù)據(jù)流圖表現(xiàn)了用戶、系統(tǒng)、數(shù)據(jù)庫的關(guān)系。</p><p><b>  圖2數(shù)據(jù)流圖</b><

30、;/p><p><b>  2.2.實施方案</b></p><p>  2.2.1. 設(shè)計環(huán)境需求與程序設(shè)計語言選擇</p><p>  為了開發(fā)一個安全、穩(wěn)定的系統(tǒng),選擇以下開發(fā)平臺:</p><p>  硬件環(huán)境:建議使用CPU cellon1.7G、內(nèi)存256以上的機器,因為J2EE和JAVA BEEN很占內(nèi)存運行起

31、來確實不容樂觀。</p><p>  軟件環(huán)境: jDK1.5、Eclipse、MS SQL SERVER 2000、Dreamweaver MX、tomcat5.5</p><p><b>  等;</b></p><p>  本系統(tǒng)采用MS SQL SERVER 2000作為后臺數(shù)據(jù)庫,最初擬定的數(shù)據(jù)庫選擇有MS SQL Server、OR

32、ACLE、BEA的PointBase。 因為整個系統(tǒng)在windows下開發(fā), ORACLE針對小型系統(tǒng)又相對較臃腫,而且我相對最熟悉且簡單的MS SQL SERVER 2000,所以后臺數(shù)據(jù)庫就選擇了MS SQL SERVER 2000;</p><p>  程序設(shè)設(shè)計語言為:JSP、J2EE</p><p>  1.J2EE技術(shù),也就是Java 2 Platform Enterprise

33、 Edition,即Java2企業(yè)版。它是由Sun公司發(fā)起的,J2EE是現(xiàn)在市場上的主流產(chǎn)品。J2EE標準是過去幾年中開發(fā)的許多重要應(yīng)用最終促成的一個與廠家無關(guān)的公共標準。它將許多分散的Java技術(shù)整合到一起,組合成一個完整的企業(yè)標準。</p><p>  本系統(tǒng)設(shè)計使用瀏覽器+jsp(servlet)+SQL SEVER</p><p>  Servlet及JSP</p>

34、<p>  Servlet及JSP都是基于Java的技術(shù)。Servlet是用來擴展Web服務(wù)器功能的網(wǎng)絡(luò)組件,它基于請求/響應(yīng)機制。JSP和Servlet非常相似,但JSP并不是純Java代碼。</p><p>  本系統(tǒng)采用三層結(jié)構(gòu): </p><p>  三層客戶機/服務(wù)器應(yīng)用程序使用一個中間或中間層,應(yīng)用程序服務(wù)器,它在客戶機應(yīng)用程序和后端數(shù)據(jù)庫之間操作。中間層存儲了系統(tǒng)的

35、商業(yè)邏輯,并協(xié)調(diào)客戶機上與后端數(shù)據(jù)庫交互的顯示?!?lt;/p><p>  使用三層體系結(jié)構(gòu)是出于以下兩個動機:  改進的可伸縮性、可用性和性能</p><p>  2、JSP技術(shù):JSP是一種卓越的Java技術(shù),它基于強大的Java語言,可在任何Web或應(yīng)用服務(wù)器上運行,與Java Enterprise API(Java 企業(yè)應(yīng)用編程接口)緊密結(jié)合,可快速創(chuàng)建高性能的Web應(yīng)用程序。它將內(nèi)容

36、的生成和顯示進行分離,使Web開發(fā)人員能專注于應(yīng)用邏輯的處理;利用可重用的組件(Java Btens\EJB),加快了總體開發(fā)速度,并提高了系統(tǒng)質(zhì)量,采用標識簡化頁面編程,降低了開發(fā)人員的難度。</p><p>  3、 XML與HTML技術(shù):XML和HTML一樣屬于標記語言,可以通過標記來描述數(shù)據(jù)的結(jié)構(gòu),并且它允許用戶自行視描述數(shù)據(jù)的需要,隨意地制定不同的標記,這和HTML有著極大的差別,除此之外,XML不同于

37、HTML對于所有的標記都已經(jīng)定義了顯示格式的意義, </p><p>  4. SQL Server</p><p>  SQL Server 是一個關(guān)系數(shù)據(jù)庫管理系統(tǒng)。SQL Server 2000, 是Microsoft 公司推出的SQL Server 數(shù)據(jù)庫管理系統(tǒng)的新版本。它增加了許多更先進的功能,具有使用方便、可伸縮性好、與相關(guān)軟件集成程度高等優(yōu)點。運行Microsoft Win

38、dows 2000 的大型多處理器的服務(wù)器等多種平臺使用。</p><p>  2.2.2.方案與實施步驟</p><p>  2.2.2.1設(shè)計方案</p><p>  利用B/S結(jié)構(gòu):即Browser/Server(瀏覽器/服務(wù)器)結(jié)構(gòu),是隨著Internet技術(shù)的興起,對C/S結(jié)構(gòu)的一種變化或者改進的結(jié)構(gòu)。在這種結(jié)構(gòu)下,用戶界面完全通過WWW瀏覽器實現(xiàn),一部分

39、事務(wù)邏輯在前端實現(xiàn),但是主要事務(wù)邏輯在服務(wù)器端實現(xiàn),形成所謂3-tier結(jié)構(gòu)。B/S結(jié)構(gòu),用通用瀏覽器就實現(xiàn)了原來需要復(fù)雜專用軟件才能實現(xiàn)的強大功能,并節(jié)約了開發(fā)成本,是一種全新的軟件系統(tǒng)構(gòu)造技術(shù)。隨著Windows 98/Windows 2000將瀏覽器技術(shù)植入操作系統(tǒng)內(nèi)部,這種結(jié)構(gòu)更成為當今應(yīng)用軟件的首選體系結(jié)構(gòu)。顯然B/S結(jié)構(gòu)應(yīng)用程序相對于傳統(tǒng)的C/S結(jié)構(gòu)應(yīng)用程序?qū)⑹蔷薮蟮倪M步。</p><p>  利用J

40、SP編程技術(shù)及SQL數(shù)據(jù)庫管理與建立,來實現(xiàn)兩者的鏈接,并且運用SQLSERVER語言實現(xiàn)對其數(shù)據(jù)庫進行訪問或者修改。</p><p>  2.2.2.2實施步驟</p><p>  1.根據(jù)網(wǎng)上教學(xué)輔助系統(tǒng)工程特點,制定出用于軟件工程的教學(xué)方案</p><p>  2.依據(jù)總體方案對系統(tǒng)的設(shè)計進行更完善的修改。</p><p>  3.做出

41、系統(tǒng)的概要設(shè)計,并對系統(tǒng)進行分析和可行性實驗。</p><p>  4.對系統(tǒng)進行具體的實現(xiàn),模塊的聯(lián)接。</p><p><b>  5.測試并完善。</b></p><p>  3. 系統(tǒng)的設(shè)計與實現(xiàn)/程序的編制</p><p><b>  3.1. 數(shù)據(jù)設(shè)計</b></p>&l

42、t;p>  3.1.1. 數(shù)據(jù)庫信息表設(shè)計</p><p>  由于軟件工程網(wǎng)上教學(xué)輔助系統(tǒng)要實現(xiàn),整個數(shù)據(jù)數(shù)據(jù)信息都要存儲、更新;課件資源等信息都是動態(tài)變化的。這涉及多個頁面、多個功能,所有的操作都要與數(shù)據(jù)庫聯(lián)系。系統(tǒng)為這些,動態(tài)信息設(shè)計了以下主要數(shù)據(jù)庫表:</p><p>  人員表:存儲登錄軟件工程網(wǎng)上教學(xué)輔助系統(tǒng)個人信息。Id為編號、name為名稱、</p>&

43、lt;p>  Password為密碼、sex為性別、department為所在系、jiguan為籍貫、tel為電話、</p><p>  E_mail為郵箱、mark為標記。</p><p><b>  表3.1人員表</b></p><p>  課件表:存儲每門課程的課件存放路徑及課程的基本信息。Id為編號、Coursewarename

44、為課件名稱、addtime為添加時間、filename為系統(tǒng)文件的名稱、</p><p>  Path為上傳課件的路徑、teacherid為老師的編號、remark為課件的標記。</p><p><b>  表3.2課件表</b></p><p>  試卷表:存儲試卷信息。Id為試卷的編號、papersname為試卷名稱、addtime添加時間

45、、remark為試卷標記。</p><p><b>  表3.3試卷表</b></p><p>  作業(yè)表:用于存放教師布置的課后作業(yè)。字符為:作業(yè)名稱、時間、路徑等信息。</p><p>  Id為作業(yè)編號、 homeworkname為作業(yè)的名稱、 addtime為上傳時間、 filename為在系統(tǒng)文件的名稱、 path為上傳文件的路徑、

46、stuid為學(xué)生的編號、 remark為作業(yè)標記、 isRead為是否閱讀。</p><p><b>  表3.4作業(yè)表</b></p><p>  問題:用于存放學(xué)生的提問問題和老師解答問題的表。</p><p>  Id為編號、 title為標題、 content為問題內(nèi)容、 addtime為上傳時間、 stuid為學(xué)生的編號、 isres

47、olved為是否解決、 answertitle為答案標題、 answercontent回答內(nèi)容、 teacherid為老師編號。</p><p><b>  表3.5問題表</b></p><p>  考試信息表:用于存放考試內(nèi)容。Id為編號、 papersid為試卷編號、 title試卷標題、 type類型 optionA、B、C、D為選項、 answer為答案。&

48、lt;/p><p><b>  表3.6考試信息表</b></p><p>  管理員:用于存放管理員信息。Id 為管理員編號、password為密碼。</p><p><b>  表3.7管理員表</b></p><p>  答案表: 用于存放學(xué)生在線做答的答案信息。Id為編號、 quesid為問題編

49、號、 answer為答案、 stuid 為學(xué)生編號、pspersid為試卷編號。</p><p><b>  表3.8考試答案表</b></p><p>  課程表:用于存儲課程信息 id為課程編號、 name為課程名稱、 dep為系、 mark 為標記、detail為課程介紹。</p><p><b>  表3.9課程表</b

50、></p><p>  教師表:用于存儲教師個人信息。Id為編號、 name為名稱 title為職稱、 password為密碼。</p><p>  表3.10教師信息表</p><p>  上傳信息表:用于存放上傳文件本地的路徑信息。Id為編號、 wid_name為文件所在大的名稱、 path為路徑、 min_path為具體路徑、 sizes為大小、 tim

51、es為時間、 ip為上傳者的機IP</p><p>  表3.11上傳信息表</p><p>  3.1.2. 數(shù)據(jù)庫的實現(xiàn)</p><p>  上述的數(shù)據(jù)表存儲信息,系統(tǒng)進行數(shù)據(jù)庫連接具體實現(xiàn)要核心代碼:</p><p>  public class DataBaseConnection</p><p><b&

52、gt;  {</b></p><p><b>  /**</b></p><p>  *一個靜態(tài)方法,返回一個數(shù)據(jù)庫連接</p><p>  *這樣達到了對數(shù)據(jù)庫統(tǒng)一控制的目的</p><p><b>  */</b></p><p>  //#MySQL 數(shù)據(jù)庫

53、連接信息</p><p>  //#MySQL 數(shù)據(jù)庫驅(qū)動程序</p><p>  //String MySQLDriver="org.gjt.mm.mysql.Driver"</p><p>  //#MySQL數(shù)據(jù)庫連接字符串。</p><p>  //#upload 為數(shù)據(jù)庫名,user為登錄用戶名,password

54、為登錄密碼。</p><p>  //String MySQLURL="jdbc:mysql://localhost:3306/upload?user=sa&password=&useUnicode=true&characterEncoding=GBK"</p><p>  //#SQL Server 數(shù)據(jù)庫連接信息</p><

55、;p>  //#SQL Server 驅(qū)動程序</p><p>  //String SQLDriver="net.sourceforge.jtds.jdbc.Driver";</p><p>  //#SQL Server 數(shù)據(jù)庫連接字符串</p><p>  //#upload 為數(shù)據(jù)庫名,user 為登錄用戶名,password 為登

56、錄密碼。</p><p>  //String SQLURL="jdbc:jtds:sqlserver://localhost:1433/upload;user=sa;password="; </p><p>  public static Connection getConnection()</p><p><b>  {<

57、/b></p><p>  Connection con=null;</p><p>  String SQLDriver="com.microsoft.jdbc.sqlserver.SQLServerDriver";</p><p>  String SQLURL="jdbc:microsoft:sqlserver://loca

58、lhost:1433;DatabaseName=upload;user=sa;password=123456";</p><p><b>  try</b></p><p><b>  {</b></p><p>  Class.forName(SQLDriver).newInstance();</p>

59、;<p>  con=DriverManager.getConnection(SQLURL);</p><p><b>  }</b></p><p>  catch(Exception e)</p><p><b>  {</b></p><p>  e.printStackTrac

60、e();</p><p><b>  }</b></p><p>  return con;</p><p><b>  }</b></p><p><b>  };</b></p><p>  //在其他文件里面就可以直接調(diào)用Connection co

61、n=DataBaseConnection.getConnection();</p><p><b>  來獲得數(shù)據(jù)庫的連接</b></p><p>  3.2. 系統(tǒng)模塊的設(shè)計</p><p>  本系統(tǒng)具體分為:用戶操作、管理員操作模塊</p><p>  3.2.1用戶操作模塊</p><p>

62、;  a 用戶的登錄模塊</p><p>  用戶可以注冊成為系統(tǒng)用戶,填寫相應(yīng)的個人信息;系統(tǒng)也要為用戶提供一個以用戶身份登陸的接口;當用戶個人信息需要修改時,如地址變更等,應(yīng)能及時更改,這點暫有管理員代為修改。</p><p>  用戶登錄的核心代碼:</p><p>  jsp:useBean id="ss" scope="pa

63、ge" class="stu.login">//引用login類</p><p>  <jsp:setProperty name="ss" property="*" /></p><p>  </jsp:useBean></p><p>  <jsp:useBe

64、an id="db" scope="page" class="stu.sqlBean"/></p><p><b>  <%</b></p><p>  String sql="";</p><p>  String kind=ss.getKind()

65、;</p><p>  String pw="";</p><p>  ResultSet rs =null;</p><p>  String id=ss.getId();</p><p>  System.out.println("進入驗證");</p><p>  sql=

66、"select password from "+kind+" where id='"+id+"' ";//SQL用查詢的語句</p><p>  System.out.println();</p><p>  rs=db.executeQuery(sql); //查詢用戶信息</p>&l

67、t;p>  if(rs.next()){</p><p>  pw=rs.getString("password").trim();}</p><p>  if(ss.getPassword().trim().equals(pw)) //判斷用戶是否登錄成功</p><p><b>  { </b></p&

68、gt;<p>  System.out.println("進入驗證====通過驗證");</p><p>  session.setAttribute("id",String.valueOf(id)); //在session中緩存用戶信息</p><p>  int flag=ss.getFlag();</p><p

69、>  session.setAttribute("flag",String.valueOf(flag));</p><p>  response.sendRedirect("main.jsp?flag="+flag);//重定向用戶請求</p><p>  out.print(flag);</p><p><b&g

70、t;  }</b></p><p><b>  else {</b></p><p>  String message= "登陸失敗,用戶名或密碼有誤!!";</p><p>  session.setAttribute("error",String.valueOf(message));<

71、;/p><p>  response.sendRedirect("index.jsp?error='error'");}</p><p><b>  %></b></p><p>  用戶可以在本頁面登錄:</p><p><b>  圖3.1用戶登錄</b>

72、</p><p>  用戶登錄后的主頁面為下圖,此為系統(tǒng)的主界面;用戶可以在這里進行具體操作:</p><p>  圖3.2用戶登錄后主頁面</p><p>  c 查詢課件、下載課件等功能</p><p>  普通用戶可以在軟件工程網(wǎng)上教學(xué)輔助系統(tǒng)上查詢課件、下載課件等功能</p><p><b>  查詢

73、的代碼:</b></p><p>  String search=request.getParameter("search");//獲取參數(shù)</p><p>  String searchby=request.getParameter("searchby");</p><p>  String textvalue=

74、request.getParameter("textvalue");</p><p>  ResultSet rs=null; </p><p>  if(search!=null) //判斷輸入查詢值不為空</p><p><b>  { </b></p><p>  if(textvalue

75、==null||textvalue.equals(""))//未輸入查詢條件,默認為查詢?nèi)啃畔?lt;/p><p>  rs=db.executeQuery("select * from homework"); //從db數(shù)據(jù)表中獲值</p><p><b>  else{</b></p><p>  if

76、(searchby.trim().equals("0")) //查詢條件為課件編號</p><p><b>  {</b></p><p>  rs=db.executeQuery("select * from homework where id="+textvalue);//查詢相應(yīng)信息</p><p>

77、;  }else if(searchby.trim().equals("1"))//查詢條件為課件名稱</p><p><b>  {</b></p><p>  rs=db.executeQuery("select * from homework where homeworkname='"+textvalue+&quo

78、t;'");</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  else</b></p><p>  rs=db.e

79、xecuteQuery("select * from homework");</p><p>  ResultSetMetaData rsmd = rs.getMetaData();</p><p>  int numberOfColumns = rsmd.getColumnCount();</p><p>  int ccc=0;</p&

80、gt;<p>  while(rs.next()){</p><p><b>  ccc++;</b></p><p>  id=rs.getString(1);</p><p>  String url=rs.getString(5); //獲取相對應(yīng)的值</p><p>  String full

81、url=request.getRealPath("/")+url;</p><p>  String filename=rs.getString(4);</p><p><b>  查詢課件的頁面為:</b></p><p>  圖3.3查詢課件頁面</p><p>  學(xué)生可以在網(wǎng)上下載老師發(fā)的課件

82、,可以了解課程內(nèi)容。</p><p><b>  下載的代碼:</b></p><p>  byte[] buffer = new byte[4096];//緩存區(qū)</p><p>  BufferedOutputStream output = null;</p><p>  BufferedInputStream in

83、put = null;</p><p><b>  try {</b></p><p>  output = new BufferedOutputStream(response.getOutputStream());//創(chuàng)建輸出流</p><p>  input = new BufferedInputStream(new FileInputSt

84、ream(filefullname));</p><p>  int n = (-1);</p><p>  while ((n = input.read(buffer, 0, 4096)) > -1) {</p><p>  output.write(buffer, 0, n);//循環(huán)讀入輸入流中的數(shù)據(jù)并由輸出流輸出</p><p>

85、;<b>  }</b></p><p>  response.flushBuffer();//清除緩存</p><p><b>  }</b></p><p>  catch (Exception e) {</p><p><b>  } </b></p>&l

86、t;p>  finally { //關(guān)閉輸入、輸出流</p><p>  if (input != null) input.close();</p><p>  if (output != null) output.close();</p><p><b>  }</b></p><p>  學(xué)生下載課件的

87、頁面為:</p><p>  圖3.4下載課件頁面</p><p>  d. 學(xué)生提交作業(yè)、查看課件、提問和在線答題</p><p>  學(xué)生登錄軟件工程網(wǎng)上教學(xué)輔助系統(tǒng)以后可以進行提交作業(yè)、查看課件、提問和考試等功能。</p><p>  上傳中用到j(luò)spsmartupload,jspSmartUpload是由www.jspsmart.co

88、m網(wǎng)站開發(fā)的一個可免費使用的全功能的文件上傳下載組件,適于嵌入執(zhí)行上傳下載操作的JSP文件中。</p><p>  上傳時就是上傳連接數(shù)據(jù)庫的核心代碼為:</p><p>  con=DataBaseConnection.getConnection();//連接數(shù)據(jù)庫</p><p>  Statement stmt=con.createStatement();//

89、創(chuàng)建stmt語句</p><p>  String sql1="select count(*) from up_imges";//定義SQL語句</p><p>  ResultSet rs=stmt.executeQuery(sql1);//執(zhí)行查詢操作</p><p>  rs.next();</p><p>  su

90、m=rs.getInt(1);//獲取總行數(shù)</p><p><b>  }</b></p><p>  catch(Exception e)</p><p><b>  {</b></p><p>  e.printStackTrace();</p><p><b&g

91、t;  }</b></p><p>  if(sum>=1)</p><p><b>  {</b></p><p>  con=DataBaseConnection.getConnection();</p><p>  Statement stmt=con.createStatement();<

92、/p><p>  String sql2="select top "+spage+" * from up_imges";</p><p>  ResultSet rs2=stmt.executeQuery(sql2);</p><p>  while(rs2.next())</p><p><b>

93、;  {</b></p><p>  if(n>(cpage-1)*ipage-1)</p><p><b>  {</b></p><p><b>  m++;</b></p><p>  int id=rs2.getInt(1);</p><p>  S

94、tring wid_name=rs2.getString(2);//獲取查詢數(shù)據(jù)</p><p>  String path=rs2.getString(3);</p><p>  String min_path=rs2.getString(4);</p><p>  int size=rs2.getInt(5);</p><p>  Str

95、ing time=rs2.getString(6);</p><p>  String ip=rs2.getString(7);</p><p>  學(xué)生上傳作業(yè)的頁面:</p><p>  圖3.5上傳作業(yè)頁面</p><p>  學(xué)生可以在線答題,下面就是學(xué)生在線打開的試卷并作答的頁面:</p><p>  圖3.

96、6下線答題頁面</p><p>  e 教師發(fā)布課件、批改作業(yè)、試卷、解答問題</p><p>  教師登錄軟件工程網(wǎng)上教學(xué)輔助系統(tǒng)以后可以進行發(fā)布課件、批改作業(yè)、考試內(nèi)容和時間、解答問題</p><p>  更新信息的核心代碼:</p><p>  String id=request.getParameter("id"

97、);//獲取參數(shù)</p><p>  String admin_id = (String)session.getAttribute("id"); //從session中獲取用戶信息</p><p>  if(admin_id==null){response.sendRedirect("login.jsp");}//重定向</p><

98、;p>  String insert=request.getParameter("insert");</p><p>  if(insert!=null){</p><p>  String name=request.getParameter("name");</p><p>  String remark=reques

99、t.getParameter("remark");</p><p>  String sql="update papers set papersname='"+name+"',remark='"+remark+"' where id="+id;</p><p><b>

100、;  int cc=0;</b></p><p><b>  try{</b></p><p>  System.out.print("sqqq\t"+sql);</p><p>  db.executeDelete(sql);//執(zhí)行數(shù)據(jù)庫更新操作</p><p><b>  

101、cc++;</b></p><p>  }catch(Exception e){</p><p><b>  cc=0;</b></p><p><b>  }</b></p><p>  if(cc>0){//根據(jù)數(shù)據(jù)庫更新操作的結(jié)果重定向用戶請求</p><

102、p>  response.sendRedirect("Paperslist.jsp");</p><p><b>  }else{</b></p><p>  response.sendRedirect("updatePapers.jsp?error=error");</p><p><b&g

103、t;  }</b></p><p><b>  }</b></p><p><b>  %></b></p><p><b>  </p></b></p><p>  <p align="center"><fo

104、nt color="#000000" size="+3" >修改試卷</font></p></p><p>  <form name="form1" method="post" action="updatePapers.jsp"></p><p> 

105、 <% String getsql="select papersname,remark from papers where id="+id;</p><p>  String names="",remarks="";</p><p>  java.sql.ResultSet rss=db.executeQuery(getsq

106、l);//執(zhí)行數(shù)據(jù)庫查詢</p><p>  while(rss.next()){</p><p>  names=rss.getString(1);</p><p>  remarks=rss.getString(2);</p><p>  在線更新課程的頁面:</p><p>  圖3.7更新課程頁面</p&

107、gt;<p>  f 系統(tǒng)管理員登錄、維護等功能</p><p>  系統(tǒng)管理員登錄、維護等功能可以對軟件工程網(wǎng)上教學(xué)輔助系統(tǒng)上的信息進行綜合管理。</p><p>  管理員登錄后的頁面:</p><p>  圖3.8管理員登錄后主頁面</p><p>  3.2.2管理員操作模塊</p><p> 

108、 該模塊是跟前臺相對應(yīng)的,以上各個模塊后來都有相應(yīng)的管理。具體如下:</p><p><b>  1、 用戶管理 </b></p><p>  該模塊主要實現(xiàn)用戶添加,刪除,修改用戶信息等功能,該模塊是通過java操作數(shù)據(jù)庫,跟教學(xué)展示、查找模塊相似,所有的數(shù)據(jù)庫操作都封裝到servlet中,這樣保證了數(shù)據(jù)的安全性。這個模塊值得一提的是教學(xué)圖片上傳功能,文件的上傳功

109、能在基于B/S的開發(fā)模式中非常普遍。同其他開發(fā)工具相比較,JSP對文件的上傳支持并不是很完美,它既不象ASP那樣一定需要使用組件來完成。JSP實現(xiàn)文件上傳的實現(xiàn)方式是這樣的:使用ServletRequest類的getInputStream()方法獲得一個客戶端向服務(wù)器發(fā)出的數(shù)據(jù)流,然后處理這個數(shù)據(jù)流,從中分析、得到文件上傳中傳遞到服務(wù)器的各個參數(shù)和數(shù)據(jù),然后將其中的文件數(shù)據(jù)存儲為一個文件或插入到數(shù)據(jù)庫中。通常JSP頁面中不處理文件的上傳

110、功能,而是把這些功能放到Servlet 或JavaBean中去實現(xiàn)。使用Servlet完成文件上傳的例子在一些JSP的相關(guān)書籍中都有所介紹,我這里使用JeanBean完成文件上傳。</p><p><b>  刪除的核心代碼:</b></p><p>  String ids=request.getParameter("id");</p>

111、;<p>  String name1=request.getParameter("name");</p><p>  String name2=request.getParameter("min_name");</p><p>  int s1=name1.indexOf("/");</p><

112、p>  String n1=name1.substring(s1+1,name1.length()); //要刪除的文件名</p><p>  String subPath=name1.substring(0,s1); //獲取文件夾名</p><p>  int s2=name2.indexOf("/");</p><p>  Str

113、ing n2=name2.substring(s2+1,name2.length());//要刪除的縮略文件名</p><p>  String FilePath=request.getRealPath("");</p><p>  String allPath=FilePath+"\\"+subPath+"\\"; //獲取整個

114、絕對路徑</p><p>  java.io.File delFile=new java.io.File(allPath,n1);</p><p>  if(delFile.exists())</p><p>  delFile.delete(); //如果該文件存在,則刪除</p><p>  java.io.File min_delFil

115、e=new java.io.File(allPath,n2);</p><p>  if(min_delFile.exists())</p><p>  min_delFile.delete(); //如果該文件存在,則刪除</p><p><b>  try</b></p><p><b>  {</b

116、></p><p>  String sql="delete up_imges where id="+ids;</p><p>  Connection con=DataBaseConnection.getConnection();</p><p>  PreparedStatement pstmt=con.prepareStatement

117、(sql);</p><p>  pstmt.executeUpdate();</p><p>  out.println("<SCRIPT language=javascript>alert('刪除成功!');window.location='upload.jsp';</script>");</p>

118、<p><b>  }</b></p><p>  catch(Exception e)</p><p><b>  {</b></p><p>  e.printStackTrace();</p><p><b>  }</b></p><p&

119、gt;  用戶管理:如刪除教師信息:</p><p>  圖3.9刪除編號002老師信息</p><p><b>  2、信息管理</b></p><p><b>  管理員管理</b></p><p>  系統(tǒng)管理員在軟件工程網(wǎng)上教學(xué)輔助系統(tǒng)上登錄、維護信息的等功能。</p><

120、;p>  整個系統(tǒng)設(shè)計的核心部分在Servlet,它負責(zé)整個系統(tǒng)的業(yè)務(wù)處理。利用JSP,并處理數(shù)據(jù)。</p><p>  4.程序的調(diào)試及故障分析</p><p><b>  4.1設(shè)計錯誤</b></p><p>  調(diào)試環(huán)境為Eclipse+tomcat5.5以上環(huán)境,調(diào)試中遇到問題多多,開發(fā)系統(tǒng)的過程中,稍有不慎就漏洞百出。<

121、/p><p>  a 最初的問題是XML文件路徑的問題。Xml存放路徑,需要加絕對路徑,web服務(wù)器才能找到。這就大大折損了JAVA語言的可移植性。經(jīng)過深思熟慮,和多次測試,我想到了絕對路徑和相對路徑相結(jié)合的辦法。讀文件的時候用絕對路徑去讀,寫文件的時候用web服務(wù)器的相對路徑去寫。</p><p>  b 對于jsp和servlet的顯示和處理中文,經(jīng)常可能出現(xiàn)亂碼。 通常對于j

122、sp,有</p><p>  <%@ page contentType="text/html;charset=gb2312"%>   對于</p><p>  servlet,Response.setContentType("text/html;charset=gb2312");   一般對于顯

123、示,中文上面是保險的辦法,其他的一些編碼會經(jīng)常出亂碼。有時還需要對request的內(nèi)容進行編碼。如 request.setCharacterEncoding("GBK");</p><p>  c 關(guān)于空值讀寫XML文檔的問題。</p><p>  數(shù)據(jù)庫某列為空值寫入XML,就拋出了異常;解決辦法,增加了多處空判斷。</p><p>  d

124、程序部署測試階段</p><p>  tomcat5.5上部署成功編譯過的系統(tǒng),因操作系統(tǒng)環(huán)境而定,在不打補丁的情況,有時可以正常連接,有時卻不能,所以建議還是安裝最新的SQL SERVER 2000. </p><p>  如果你的程序在運行時提示:Error establishing socket,一般情況下,打上SQL SERVER 2000的補丁就可解決。</p>&

125、lt;p><b>  4.2配置錯誤</b></p><p>  a 數(shù)據(jù)庫配置文件的修改</p><p>  本次系統(tǒng)需要使用XML文檔配置數(shù)據(jù)庫信息,當手工修改xml信息內(nèi)容時,只能通過拷貝一個XML文檔,再做簡單修改,如果自己修改過多的話,系統(tǒng)就會報錯。我最終的解決辦法是把數(shù)據(jù)庫的配置信息,寫到EXCEL里,然后寫用剛寫好的用JDOM從EXCEL轉(zhuǎn)換到XM

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論