版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 畢業(yè)設(shè)計論文</b></p><p> 題 目 </p><p> 系 別 計算機系 </p><p> 姓 名 XXXX </p><p> 學(xué)
2、 號 </p><p> 指導(dǎo)教師 xxxxx </p><p> 2010年12月25 日</p><p><b> 畢業(yè)設(shè)計任務(wù)書</b></p><p><b> 畢業(yè)設(shè)計論文摘要</b><
3、/p><p> 近些年來網(wǎng)絡(luò)技術(shù)的迅速發(fā)展,使得不同地點的人們在任何時間都可以輕松獲得自己需要的信息,同時也極大地推動了網(wǎng)絡(luò)教學(xué)的發(fā)展,特別是Java技術(shù)的出現(xiàn),以其安全性、跨平臺性的優(yōu)勢,使網(wǎng)絡(luò)教學(xué)的發(fā)展變得更加迅速,很多在網(wǎng)絡(luò)平臺上用Java技術(shù)開發(fā)出的教學(xué)軟件系統(tǒng)相繼問世,如網(wǎng)上考試系統(tǒng)、視頻點播系統(tǒng)等。</p><p> 本文闡述的是運用J2EE技術(shù)構(gòu)建一個基于B/S結(jié)構(gòu)的網(wǎng)上作業(yè)
4、提交系統(tǒng),以其改變過去傳統(tǒng)的學(xué)生遞交作業(yè)的方式,老師批改作業(yè)的方式,讓學(xué)生遞交作業(yè)更加靈活,大大減輕了老師的工作量和學(xué)生的學(xué)習(xí)任務(wù),極大地提高了老師的工作效率和學(xué)生的學(xué)習(xí)效率。此次作業(yè)提交系統(tǒng)是用Java等技術(shù)開發(fā)而成,用戶登錄時有三種身份可供選擇,分別為學(xué)生、老師和管理員。忘記密碼時可以根據(jù)自己的身份證號重設(shè)學(xué)生有查看作業(yè)、提交作業(yè)、查看成績等功能,老師有發(fā)布作業(yè)、批改作業(yè)等功能,管理員有添加、刪除學(xué)生老師信息,添加刪除班級、系部,添
5、加刪除課程等功能。</p><p> 本系統(tǒng)采用功能強大的MyEclipse6.5做為開發(fā)工具、使用當(dāng)前最流行的MVC模式、使用struts2、hibernate,再結(jié)合Ajax技術(shù),以及Mysql做為數(shù)據(jù)庫開發(fā)出來作業(yè)提交系統(tǒng)。</p><p> 論文主要介紹了本課題的開發(fā)背景,所要完成的功能和開發(fā)的過程。重點的說明了系統(tǒng)設(shè)計的重點、設(shè)計思想、難點技術(shù)和解決方案。</p>
6、<p> 本文將著重論述在系統(tǒng)的開發(fā)過程中的各個階段的具體步驟和實施技巧。</p><p> 【關(guān)鍵詞】: 作業(yè)提交系統(tǒng) Struts2 Hibernate Ajax技術(shù)</p><p><b> 目 錄</b></p><p><b> 第一章 緒 論1</b></p><
7、;p><b> 1.1課題來源1</b></p><p> 1.2開發(fā)工具的選擇2</p><p> 1.3 本文所作工作8</p><p> 第二章 需求分析9</p><p> 2.1總體需求調(diào)查9</p><p> 2.1.1組織結(jié)構(gòu)圖9</p>
8、<p> 2.1.2系統(tǒng)目標(biāo)9</p><p> 2.1.3應(yīng)用現(xiàn)狀調(diào)查9</p><p> 2.1.4業(yè)務(wù)總體流程9</p><p> 2.2系統(tǒng)功能調(diào)查10</p><p> 2.2.1前臺功能11</p><p> 2.2.1后臺功能11</p><p>
9、 2.3系統(tǒng)功能流程圖11</p><p> 2.3.1后臺管理功能流程圖11</p><p> 2.3.2用戶系統(tǒng)功能流程圖11</p><p> 第三章 概要設(shè)計13</p><p> 3.1概念設(shè)計13</p><p> 3.2數(shù)據(jù)庫設(shè)計15</p><p> 第
10、四章 詳細設(shè)計19</p><p> 4.1環(huán)境構(gòu)建19</p><p> 4.1.1 獲取資源19</p><p> 4.1.2創(chuàng)建庫表19</p><p> 4.1.3為項目添加Struts2框架22</p><p> 4.1.4為項目添加Hibernate框架23</p>&l
11、t;p> 4.1.5配置Struts2并添加Ajax支持24</p><p> 4.2系統(tǒng)總體設(shè)計28</p><p> 5.1 系統(tǒng)測試概述53</p><p> 5.2測試環(huán)境53</p><p> 5.3系統(tǒng)測試的重要性53</p><p> 5.4測試分析及結(jié)果54</p&g
12、t;<p> 第六章 畢業(yè)設(shè)計小結(jié)57</p><p><b> 致 謝59</b></p><p> 參 考 書 目60</p><p><b> 第一章 緒 論</b></p><p><b> 1.1課題來源</b></p>
13、<p> 信息化是當(dāng)今世界經(jīng)濟和社會發(fā)展的大趨勢,以網(wǎng)絡(luò)和多媒體為核心的信息技術(shù)已經(jīng)成為拓展人類能力的創(chuàng)造性工具。隨著網(wǎng)絡(luò)技術(shù)、多媒體技術(shù)在教育領(lǐng)域應(yīng)用的不斷發(fā)展, 網(wǎng)絡(luò)教育己成為當(dāng)前教育發(fā)展的熱點。計算機應(yīng)用的普及,使得計算機教學(xué)深入到課堂。另一方面, 校園網(wǎng)己從辦公室、教室、實驗室、圖書館延伸到學(xué)生宿舍, 這為網(wǎng)上教學(xué)提供了廣闊的舞臺。開發(fā)和充分利用網(wǎng)絡(luò)教學(xué), 是當(dāng)前教育發(fā)展的必然趨勢。網(wǎng)上大學(xué)的興起徹底改變了傳統(tǒng)的
14、教學(xué)模式,作業(yè)是教學(xué)過程的一項重要活動,傳統(tǒng)書面提交作業(yè)的方式已跟不上新型教學(xué)模式的發(fā)展。目前,許多高校仍然是教師上課布置作業(yè), 學(xué)生課下完成,學(xué)生完成后上交作業(yè), 教師手工批改, 再把作業(yè)發(fā)給學(xué)生。在這種傳統(tǒng)模式下, 反饋時間長, 難以全面統(tǒng)計學(xué)生作業(yè)情況,不利于教師掌握學(xué)生的學(xué)習(xí)情況。同時由于作業(yè)布置、提交到批改存在時間差,老課當(dāng)中的問題并未得到解決, 新課中新問題又已形成,如果新問題的解決要依賴老問題的解決,那么又加大了解決新問題
15、的難度系數(shù),久而久之,最后問題成堆,許多學(xué)生因此而跟不上學(xué)習(xí)的進度。另外手工批改作業(yè)也有可能因人為因素對作業(yè)批改造成影響。如何系統(tǒng)地管理和批改學(xué)生</p><p> 隨著計算機及網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,Internet/Intranet應(yīng)用在全球范圍內(nèi)日益普及,在眾多的網(wǎng)絡(luò)服務(wù)中,Web給人耳目一新的感覺,而在這其中,在網(wǎng)絡(luò)平臺上開展各項工作已經(jīng)日漸普及,而且當(dāng)網(wǎng)絡(luò)技術(shù)發(fā)展到今天,已經(jīng)成為可以為任何人在網(wǎng)絡(luò)所提供的
16、平臺上進行工作的新型方式。在眾多網(wǎng)絡(luò)開發(fā)技術(shù)中,Java技術(shù)是當(dāng)前相當(dāng)熱門,因為它可以進行復(fù)雜的數(shù)據(jù)庫操作、很強的交互性以及方便用戶控制管理。 </p><p> 這套作業(yè)提交系統(tǒng)正是當(dāng)今技術(shù)發(fā)展的產(chǎn)物,它是一套用Java開發(fā)的能在網(wǎng)上進行的作業(yè)提交系統(tǒng),它不僅方便學(xué)生提交作業(yè),而且更為老師提供檢查作業(yè)的方便的手段。 這套系統(tǒng)功能比較完善,是符合實際需求開發(fā)的,學(xué)生可以查看最新作業(yè),并提交作業(yè),查看作業(yè)成績等,
17、教師可以發(fā)布作業(yè),對作業(yè)進行檢查,管理,統(tǒng)計成績等。由以上可看出,網(wǎng)絡(luò)教育學(xué)習(xí)及網(wǎng)絡(luò)各種信息交流的好與壞,嚴重影響著我們學(xué)習(xí)生活的各個角落,我們需要一套有效的網(wǎng)上學(xué)習(xí)管理系統(tǒng)為我們快節(jié)奏高效率的工作學(xué)習(xí)提供一種保障。同時擴大系統(tǒng)使用的效率和應(yīng)用范圍,為更多的有這種需求的教師和廣大的學(xué)生提供必要和及時的服務(wù)。因此作業(yè)提交系統(tǒng)的實現(xiàn)開發(fā)出現(xiàn)了其必要性和可行性。相信隨著契機的發(fā)展,作業(yè)提交系統(tǒng)會在未來的高校發(fā)展管理模式中占十分重要的地位,而且
18、還有很大的發(fā)展空間來展現(xiàn)其時效的作用。</p><p> 1.2開發(fā)工具的選擇</p><p> 雖然Struts2號稱是一個全新的框架,但這僅僅是相對Struts 1而言。Struts 2 與Struts 1相比,確實有很多革命性的改進,但它并不是新發(fā)布的新框架,而是在另一個赫赫有名的框架:WebWork基礎(chǔ)上發(fā)展起來的。從某種程度上來講,Struts2沒有繼承Struts 1的血統(tǒng)
19、,而是繼承WebWork的血統(tǒng)?;蛘哒f,WebWork衍生出了Struts2,而不是Struts 1衍生了Struts2。因為Struts2是WebWork的升級,而不是一個全新的框架,因此穩(wěn)定性、性能等各方面都有很好的保證:而且吸收了Struts 1和WebWork兩者的優(yōu)勢 Struts2擁有許多新的特性:</p><p> ◆Action類更加靈活</p><p> Struts
20、2的Action類可以實現(xiàn)一個Action接口,也可謂一實現(xiàn)其它接口,因此更容易添加定制性服務(wù),Struts2提供一個ActionSupport,它實現(xiàn)了Struts常用接口的方便類,Action接口不是必須的,任何具有execute簽名的POJO都可以用作Struts2的接口對象。</p><p> ◆每一個請求對應(yīng)一個Action對象</p><p> Struts1的Action
21、是以但實例運行的,所有的Action對應(yīng)一個Action實例,因此用戶必須保證Action本身是線程安全的,Struts2的Action為每一個請求對象產(chǎn)生一個實例,因此沒有線程安全問題,</p><p> ◆不依賴與Servlet容器Struts2 Action不依賴于Servlet容器,,允許Action脫離容器單獨進行測試,如果需要,Struts2的Action仍然可以訪問到request和respon
22、se實例Struts2的工作流程:</p><p> 說明:Struts2還有很多的新功能在此不一一做介紹,如有需要可以自行查閱Hibernate框架技術(shù)。在本系統(tǒng)的開發(fā)中對數(shù)據(jù)庫的操作并不是使用原始的JDBC,而是使用了Hibernate框架,數(shù)據(jù)庫中每個表都有對應(yīng)的Java類文件和一個DAO類文件,使操作起來更方便。Hibernate是一個開放源代碼的對象關(guān)系映射框架,它對JDBC進行了非常輕量級的對
23、象封裝,使得Java程序員可以隨心所欲的使用對象編程思維來操縱數(shù)據(jù)庫。 Hibernate可以應(yīng)用在任何使用JDBC的場合,既可以在Java的客戶端程序?qū)嵱?,也可以在Servlet/JSP的Web應(yīng)用中使用,最具革命意義的是,Hibernate可以在應(yīng)用EJB的J2EE架構(gòu)中取代CMP,完成數(shù)據(jù)持久化的重任。</p><p> Hibernate的核心接口一共有5個,分別為:Session、SessionFac
24、troy、Transaction、Query和Configuration。這5個核心接口在任何開發(fā)中都會用到。通過這些接口,不僅可以對持久化對象進行存取,還能夠進行事務(wù)控制。下面對這五的核心接口分別加以介紹。Session接口:Session接口負責(zé)執(zhí)行被持久化對象的CRUD操作(CRUD的任務(wù)是完成與數(shù)據(jù)庫的交流,包含了很多常見的SQL語句。)。但需要注意的是Session對象是非線程安全的。同時,Hibernate的session不
25、同于JSP應(yīng)用中的HttpSession。這里當(dāng)使用session這個術(shù)語時,其實指的是Hibernate中的session,而以后會將HttpSession對象稱為用戶session。SessionFactroy接口:SessionFactroy接口負責(zé)初始化Hibernate。它充當(dāng)數(shù)據(jù)存儲源的代理,并負責(zé)創(chuàng)建Session對象。這里用到了工廠模式。需要注意的是SessionFactroy并不是輕量級的,因為一般情況下,一個項目通常
26、只需要一個SessionFactro</p><p> JavaBean技術(shù)。由于在系統(tǒng)的開發(fā)中有些代碼需要反復(fù)的調(diào)用,為了提高代碼的重用性,就使用JavaBean將它們封裝起來,供以后在程序代碼中調(diào)用。JavaBean 是一種JAVA語言寫成的可重用組件。為寫JavaBean,類必須是具體的和公共的,并且具有無參數(shù)的構(gòu)造器。JavaBeans 通過提供符合一致性設(shè)計模式的公共方法將內(nèi)部域暴露稱為屬性。眾所
27、周知,屬性名稱符合這種模式,其他Java 類可以通過自省機制發(fā)現(xiàn)和操作這些JavaBeans 屬性。用戶可以使用JavaBean將功能、處理、值、數(shù)據(jù)庫訪問和其他任何可以用java代碼創(chuàng)造的對象進行打包,并且其他的開發(fā)者可以通過內(nèi)部的JSP頁面、Servlet、其他JavaBean、applet程序或者應(yīng)用來使用這些對象。用戶可以認為JavaBean提供了一種隨時隨地的復(fù)制和粘貼的功能,而不用關(guān)心任何改變。JavaBean是Sun微系
28、統(tǒng)的一個面向?qū)ο蟮木幊探涌?,它可以讓你建可重用?yīng)用程序或能在網(wǎng)絡(luò)中任何主流操作系統(tǒng)平臺上配置的程序塊,稱作組件。像Java applet一樣,JavaBeans組件(或“Beans”)能夠給予萬維網(wǎng)頁面</p><p> Ajax技術(shù)。在本系統(tǒng)的開發(fā)中,總共包含三個大模塊,而每個模塊只用了一個JSP頁面,因此為了實現(xiàn)系統(tǒng)預(yù)期的功能,在網(wǎng)站中使用了大量的Ajax。網(wǎng)站中幾乎所有的功能都是通過Ajax結(jié)合Strut
29、s2 的JSON插件與后臺的Action 實現(xiàn)交互的。實現(xiàn)了不刷新頁面而更新頁面內(nèi)容的效果,使網(wǎng)站更具人性化。Ajax(Asynchronous JavaScript and XML)是結(jié)合了Java技術(shù)、XML以及JavaScript等編程技術(shù),可以讓開發(fā)人員構(gòu)建基于Java技術(shù)的Web應(yīng)用,并打破了使用頁面重載的慣例。Ajax是使用客戶端腳本與Web服務(wù)器交換數(shù)據(jù)的Web應(yīng)用開發(fā)方法。這樣,Web頁面不用打斷交互流程進行重新加裁,
30、就可以動態(tài)地更新。使用Ajax,用戶可以創(chuàng)建接近本地桌面應(yīng)用的直接、高可用、更豐富、更動態(tài)的Web用戶界面。異步JavaScript和XML(AJAX)不是什么新技術(shù),而是指這樣一種方法:使用幾種現(xiàn)有技術(shù)——包括級聯(lián)樣式表(CSS)、JavaScript、XHTML、XML 和可擴展樣式語言轉(zhuǎn)換(XSLT),開發(fā)外觀及操作類似桌面軟件的Web應(yīng)用軟件。實現(xiàn)Ajax的</p><p> 圖3 傳統(tǒng)模式流程圖(上
31、) Ajax異步存取模式流程圖(下)</p><p> JavaScript腳本語言。為了實現(xiàn)前臺的個性化人性化在本系統(tǒng)中,使用了大量的JavaScript腳本代碼。JavaScript是一種輕型的、解釋型的程序設(shè)計語言。因此,JavaScript一般被作為嵌入式腳本使用,這也使其具有強大的靈活性??梢哉f,靈活性是JavaScript的靈魂,你可以把程序?qū)懙煤芎唵?,簡單到只是一行驗證腳本;當(dāng)然也可以寫得很復(fù)雜,
32、復(fù)雜到一個龐大的技術(shù)框架,例如,Google地圖就是一個很龐大的 JavaScript應(yīng)用項目。其實Ajax技術(shù)使用的就是JavaScript語言,本系統(tǒng)中,利用JavaScript語言實現(xiàn)了前臺動態(tài)的生成顯示數(shù)據(jù)的效果,另外,在美化方面也用到了一點JavaScript。</p><p> JavaScript從誕生起就沒有被定式化,在成長中不斷兼容并取,所以它支持多種不同的編程風(fēng)格。你可以采用函數(shù)式編程風(fēng)格,
33、也可以采用面向?qū)ο蟮木幊田L(fēng)格?;蛘吣阃耆珤仐壓瘮?shù)式編程或面向?qū)ο缶幊?,同樣能夠?qū)懗鰪?fù)雜的程序,實現(xiàn)個性效果。</p><p> 前臺的美化、頁面排版少不了CSS,為實現(xiàn)系統(tǒng)的美化效果,系統(tǒng)中使用了CSS+DIV對網(wǎng)站排版設(shè)計。DIV+CSS是網(wǎng)站標(biāo)準(zhǔn)(或稱“WEB標(biāo)準(zhǔn)”)中常用術(shù)語之一,通常為了說明與HTML網(wǎng)頁設(shè)計語言中的表格(table)定位方式的區(qū)別,因為XHTML網(wǎng)站設(shè)計標(biāo)準(zhǔn)中,不再使用表格定位技術(shù),而
34、是采用DIV+CSS的方式實現(xiàn)各種定位。</p><p> DIV+CSS的優(yōu)勢</p><p> 1、符合W3C標(biāo)準(zhǔn)。微軟等公司均為W3C支持者。這一點是最重要的,因為這保證您的網(wǎng)站不會因為將來網(wǎng)絡(luò)應(yīng)用的升級而被淘汰。 2、支持瀏覽器的向后兼容,也就是無論未來的瀏覽器大戰(zhàn),勝利的是IE7或者是火狐,您的網(wǎng)站都能很好的兼容。 3、搜索引擎更加友好。相對與傳統(tǒng)的table, 采用DIV+
35、CSS技術(shù)的網(wǎng)頁,對于搜索引擎的收錄更加友好。 4、樣式的調(diào)整更加方便。內(nèi)容和樣式的分離,使頁面和樣式的調(diào)整變得更加方便。 現(xiàn)在YAHOO,MSN等國際門戶網(wǎng)站,網(wǎng)易,新浪等國內(nèi)門戶網(wǎng)站,和主流的WEB2.0網(wǎng)站,均采用DIV+CSS的框架模式,更加印證了DIV+CSS是大勢所趨。5、CSS的極大優(yōu)勢表現(xiàn)在簡潔的代碼,對于一個大型網(wǎng)站來說,可以節(jié)省大量帶寬,而且眾所周知,搜索引擎喜歡清潔的代碼。6、表現(xiàn)和結(jié)構(gòu)分離,在團隊開發(fā)中更容易分工
36、合作而減少相互關(guān)聯(lián)性。</p><p> 1.3 本文所作工作</p><p> 第一章緒論部分緒論主要敘述課題提出背景、目前應(yīng)用現(xiàn)狀、分析比較當(dāng)前開發(fā)工具,數(shù)據(jù)庫技術(shù)的比較。</p><p> 第二章結(jié)合軟件工程方法,對系統(tǒng)進行需求分析、功能劃分、數(shù)據(jù)流圖設(shè)計,并結(jié)合數(shù)據(jù)庫原理和功能劃分進行ER圖的繪制、數(shù)據(jù)庫結(jié)構(gòu)設(shè)計,</p><p&g
37、t; 第三章根據(jù)需求分析的結(jié)果,用戶概念數(shù)據(jù)模型表示數(shù)據(jù)及其相互間的聯(lián)系。</p><p> 第四章根據(jù)需求分析的結(jié)果,對系統(tǒng)進行詳細設(shè)計,主要介紹環(huán)境構(gòu)建、系統(tǒng)個性的實現(xiàn)</p><p> 第五章畢業(yè)設(shè)計小結(jié),總結(jié)部分介紹了設(shè)計體會和編程體會,并指出了系統(tǒng)設(shè)計中的不足和改進的方向。</p><p><b> 第二章 需求分析</b>&
38、lt;/p><p><b> 2.1總體需求調(diào)查</b></p><p> 2.1.1組織結(jié)構(gòu)圖</p><p> 本系統(tǒng)總共有三個角色:</p><p><b> 圖4 </b></p><p><b> 2.1.2系統(tǒng)目標(biāo)</b></p&
39、gt;<p> 整個網(wǎng)站統(tǒng)一風(fēng)格,用CSS+DIV把用戶UI裝飾的美觀大方,網(wǎng)站安全性穩(wěn)定性較高,用Ajax技術(shù)使網(wǎng)站更具人性化,節(jié)省老師的辦公時間,學(xué)生能夠及時查閱最新作業(yè)和成績</p><p> 系統(tǒng)應(yīng)符合人們?nèi)粘2僮鞯幕拘枨?,并達到操作直觀、方便、實用、安全等要求。</p><p> 2.1.3應(yīng)用現(xiàn)狀調(diào)查</p><p> 目前流行的
40、MVC開發(fā)模式能給程序員帶來的很大的方便,減輕的代碼的個層間的耦合度高的難題,也提高了代碼的重用率。大大的減輕的程序員的工作量。也提高了程序員的開發(fā)效率。這種模式的開發(fā)效率高而且便于擴充。</p><p> 2.1.4業(yè)務(wù)總體流程</p><p><b> 前臺</b></p><p><b> 圖5</b><
41、/p><p> 前臺主要有學(xué)生用戶和教師用戶,用戶如果忘記密碼,可以用自己的身份證號重置密碼,學(xué)生主要是查看作業(yè)提交作業(yè)以及查看成績;老師可以批閱作業(yè)和發(fā)布新作業(yè)</p><p><b> 后臺</b></p><p><b> 圖6</b></p><p><b> 2.2系統(tǒng)功能調(diào)
42、查</b></p><p> 整個系統(tǒng)分為前臺后臺兩個部分,前臺的角色主要是教師用戶和學(xué)生用戶,后臺只有管理員才能登錄。每一部分應(yīng)實現(xiàn)的功能如下:</p><p><b> 2.2.1前臺功能</b></p><p><b> 用戶登錄、重置密碼</b></p><p> 學(xué)生用
43、戶查看作業(yè),提交作業(yè),查看作業(yè)成績</p><p> 教師用戶批閱作業(yè),發(fā)布作業(yè)</p><p><b> 2.2.1后臺功能</b></p><p><b> 管理教師和學(xué)生用戶</b></p><p><b> 管理系部信息</b></p><p
44、><b> 管理班級信息</b></p><p><b> 管理課程信息</b></p><p> 2.3系統(tǒng)功能流程圖</p><p> 2.3.1后臺管理功能流程圖</p><p><b> 圖7</b></p><p> 2.3.
45、2用戶系統(tǒng)功能流程圖</p><p><b> 圖8</b></p><p><b> 第三章 概要設(shè)計</b></p><p><b> 3.1概念設(shè)計</b></p><p> 概要設(shè)計基礎(chǔ)是完成需求分析后提供的需求說明書,用概念數(shù)據(jù)模型表示數(shù)據(jù)及其相互間的關(guān)系,這
46、種數(shù)據(jù)模型是與DBMS無關(guān)的、面向現(xiàn)實世界的、易如理解的數(shù)據(jù)模型,其獨立于計算機的數(shù)據(jù)模型,獨立于計算機的軟硬件系統(tǒng),與用戶進行交流十分方便。</p><p> 概念性數(shù)據(jù)模型關(guān)心的是如何完整、正確地反映客觀實際情況,不關(guān)心在數(shù)據(jù)庫中如何實現(xiàn)。這種數(shù)據(jù)模式能真實地反應(yīng)用戶要求的實際情況,是一種容易被人們理解的直觀的數(shù)據(jù)庫結(jié)構(gòu)模式。同時也是一種相對穩(wěn)定統(tǒng)一的數(shù)據(jù)模式,一般情況下很少變動。概念性數(shù)據(jù)在用戶和設(shè)計者之
47、間建立了橋梁。是設(shè)計數(shù)據(jù)庫結(jié)構(gòu)的基礎(chǔ)。</p><p> 概念設(shè)計中自頂向下的實體分析方法,即常用的實體聯(lián)系模型(簡稱E-R模型),對具體數(shù)據(jù)進行抽象加工,將實體集合抽象成實體類型。用實體間聯(lián)系反映現(xiàn)實世界事物間的內(nèi)在聯(lián)系。E-R模型是建立概念性數(shù)據(jù)模型的有力工具。</p><p> 通過對作業(yè)提交系統(tǒng)功能和過程的分析,本系統(tǒng)應(yīng)設(shè)計的實體和屬性如下:</p><p&
48、gt; 學(xué)生表(ID號,學(xué)號,密碼,姓名,身份證號,班級)教師表(ID號,職工號,密碼,姓名,身份證號,所屬系部)管理員表(用戶名,密碼,身份證號)系部表(ID號,系部編號,系部名稱)班級表(ID號,班級編號,班級名稱,所屬系部)課程表(ID號,課程編號,課程名,所屬系部,授課教師ID)作業(yè)要求表(ID號,作業(yè)名,作業(yè)描述,存放地址,所屬課程ID,上傳老 師)作業(yè)情況表(ID號,得分,
49、作業(yè)存放路徑,提交時間,批改時間,提交作業(yè) 學(xué)生,提交狀態(tài),批改狀態(tài))</p><p> 提交狀態(tài)表(ID號,提交狀態(tài))</p><p> 批改狀態(tài)表(ID號,批改狀態(tài))</p><p><b> 圖9</b></p><p><b> 圖10</b></p&g
50、t;<p><b> 3.2數(shù)據(jù)庫設(shè)計</b></p><p> 根據(jù)前面定義的實體及實休之間的關(guān)系,形成數(shù)據(jù)庫的表格以及各個表之間的關(guān)系。</p><p> 對與關(guān)系選擇主健,按照關(guān)系模式的規(guī)范化進行規(guī)范,消除數(shù)據(jù)依賴中不合適的部分,使模式中的各關(guān)系模式達到某種程度的’分離’。</p><p> user_student
51、s(學(xué)生信息表)</p><p><b> 圖11</b></p><p> 說明:用于存放學(xué)生信息和所在班級,stu_no為登錄賬號。</p><p> user_teacher(教師信息表)</p><p><b> 圖12</b></p><p> 說明:用于
52、存放教師信息以及所在系部,teach_no為教師登錄賬號。</p><p> user_admin(系統(tǒng)管理員表)</p><p><b> 圖13</b></p><p> 說明:此表存放著管理員的信息。</p><p> departments(系部表)</p><p><b&g
53、t; 圖14</b></p><p> 說明:保存著學(xué)院的所有系部信息。</p><p> classes (班級表)</p><p><b> 圖15</b></p><p> 說明:此表保存了班級的信息,以及所在的系部。</p><p> course (課程表)<
54、;/p><p><b> 圖16</b></p><p> assignment (作業(yè)要求表)</p><p><b> 圖17</b></p><p> assignment_condition (作業(yè)情況表)</p><p><b> 圖18</b
55、></p><p> modifystatus (作業(yè)批改狀態(tài)表)</p><p><b> 圖19</b></p><p> submitstatus(作業(yè)提交狀態(tài)表)</p><p><b> 圖20</b></p><p><b> 第四章 詳
56、細設(shè)計</b></p><p> 根據(jù)需求分析、概要設(shè)計的結(jié)果,采用MyEclipse6.5+Mysql作為開發(fā)工具,實現(xiàn)作業(yè)提交系統(tǒng)的各個功能。</p><p><b> 4.1環(huán)境構(gòu)建</b></p><p> 4.1.1 獲取資源</p><p> Struts2.1.8的下載地址為:http:
57、//people.apache.org/builds/struts/2.1.8</p><p> Hibernate3.1的下載地址為:http://www.hibernate.org</p><p><b> 4.1.2創(chuàng)建庫表</b></p><p> 以下是數(shù)據(jù)庫腳本文件Assignment_SS.sql</p>&l
58、t;p> 4.1.3為項目添加Struts2框架</p><p> 配置web.xml,添加Struts2 框架</p><p> 4.1.4為項目添加Hibernate框架</p><p> 添加并編寫hibernate.cfg.xml 文件</p><p> 此外還要添加Hibernate與數(shù)據(jù)表的映射類以及映射文件。&l
59、t;/p><p> 4.1.5配置Struts2并添加Ajax支持</p><p> 添加并編寫Struts.xml文件,Struts2 比Struts1更加友好的支持Ajax,在Struts2里添加了很多支持Ajax的方式,在本項目里用到了Struts2的Ajax插件——JSON插件,JSON語法簡單易用,通過利用JSON插件,允許開發(fā)者以非常靈活簡單的方式來開發(fā)Ajax應(yīng)用。</
60、p><p> <constant name="struts.action.extension" value="acl" />這句把提交路徑的后綴名改為 .acl 。</p><p> extends="json-default" 這句是添加了Struts2 對Ajax的支持。</p><p>
61、 在result中加入type="json" 是action返回的數(shù)據(jù)以JSON形式返回給客戶端</p><p><b> 4.2系統(tǒng)總體設(shè)計</b></p><p> 作業(yè)提交系統(tǒng)就是在校園網(wǎng)絡(luò)中供學(xué)生和老師進行學(xué)習(xí)交流使用的系統(tǒng),只要學(xué)生和老師擁有聯(lián)網(wǎng)的電腦,就可以使用瀏覽器使用本系統(tǒng)。</p><p> 系統(tǒng)登
62、錄頁面如下圖:</p><p><b> 圖21</b></p><p> 如果用戶忘記密碼,可點擊圖中的取回密碼,此功能是利用自己的身份證號重設(shè)密碼,主要代碼及截圖如下:</p><p><b> 圖22</b></p><p><b> 驗證所填信息代碼:</b>&
63、lt;/p><p><b> 信息錯誤:</b></p><p><b> 圖23</b></p><p><b> 信息輸入正確之后:</b></p><p><b> 圖24</b></p><p><b> 確
64、定重設(shè)密碼代碼:</b></p><p> 用戶登錄此系統(tǒng)中用了兩個action控制,第一個用來驗證用戶的用戶名和密碼,第二個驗證登錄成功后的session值,這個方法是為了防止用戶登錄刷新頁面重新提交表單,和退出登錄然后后退到管理頁面刷新頁面依然依重新提交用戶登錄的表單數(shù)據(jù),主要代碼如下:</p><p> 用戶名、密碼驗證通過之后跳轉(zhuǎn)到第二個action驗證登錄成功后的
65、session,action之間的跳轉(zhuǎn)要配置一下struts.xml配置文件:</p><p> 在管理教師信息、系部、班級、學(xué)生信息、課程時,通過JavaScript控制可以批量添加或移除教師、系部、班級、學(xué)生、課程,主要代碼如下:</p><p><b> 效果圖如下:</b></p><p><b> 圖25</b&
66、gt;</p><p><b> 圖26</b></p><p><b> 圖27</b></p><p> 管理員查看并修改系部,所有操作都利用Ajax異步傳輸進行,前臺頁面顯示也是結(jié)合JavaScript,產(chǎn)生一種人性化的效果,主要代碼如下:</p><p><b> 圖28&
67、lt;/b></p><p><b> 圖29</b></p><p> ?。ㄗⅲ汗芾韱T模塊實現(xiàn)的功能比較多,代碼也很繁多,在這里不一一展示)</p><p> 教師查看作業(yè)、批改作業(yè)如下圖:</p><p><b> 圖30</b></p><p> 教師模塊
68、中,教師發(fā)布作業(yè),可以批量上傳附件:</p><p><b> 圖31</b></p><p> 教師上傳文件部分代碼:</p><p> 在學(xué)生模塊,學(xué)生登錄系統(tǒng)之后顯示所有課程的作業(yè),如圖:</p><p><b> 圖32</b></p><p> 學(xué)生上傳作
69、業(yè)也添加了批量上傳功能,效果圖如下:</p><p><b> 圖33</b></p><p> 下圖是學(xué)生查看成績的效果圖,學(xué)生不僅可以查看成績,還可以查看批改時間和老師的評語:</p><p><b> 圖34</b></p><p><b> 第五章 系統(tǒng)測試</b&g
70、t;</p><p> 5.1 系統(tǒng)測試概述</p><p> 系統(tǒng)測試是將已經(jīng)確認的軟件、計算機硬件、外設(shè)、網(wǎng)絡(luò)等其他元素結(jié)合在一起,進行信息系統(tǒng)的各種組裝測試和確認測試,其目的是通過與系統(tǒng)的需求相比較,發(fā)現(xiàn)所開發(fā)的系統(tǒng)與用戶需求不符或矛盾的地方,從而提出更加完善的方案.。它的的任務(wù)是盡可能徹底地檢查出程序中的錯誤,提高軟件系統(tǒng)的可靠性,其目的是檢驗系統(tǒng)"做得怎樣?&quo
71、t;。</p><p><b> 5.2測試環(huán)境</b></p><p> 該作業(yè)提交系統(tǒng)用MyEclipse測試,在安裝了Mysql數(shù)據(jù)庫,及Windows98以上操作系統(tǒng)的機器上可以正常測試</p><p> CPU: Pentium 3以上,建議使用P4 2.0</p><p> 內(nèi)存:32MB以上內(nèi)存或更
72、高</p><p> 硬盤:20G以上硬盤</p><p> 5.3系統(tǒng)測試的重要性</p><p> 軟件測試的意義在于: </p><p> a. 發(fā)現(xiàn)軟件錯誤; </p><p> b. 有效定義和實現(xiàn)軟件成分由低層到高層的組裝過程; </p><p> c. 驗證軟件是否滿足
73、任務(wù)書和系統(tǒng)定義文檔所規(guī)定的技術(shù)要求; </p><p> d. 為軟件質(zhì)量模型的建立提供依據(jù)。 </p><p><b> 軟件測試的目的:</b></p><p> 第一是確認軟件的質(zhì)量,其一方面是確認軟件做了你所期望的事情(Do the right thing),另一方面是確認軟件以正確的方式來做了這個事件(Do it right)
74、。 </p><p> 第二是提供信息,比如提供給開發(fā)人員或程序經(jīng)理的反饋信息,為風(fēng)險評估所準(zhǔn)備的信息。 </p><p> 第三軟件測試不僅是在測試軟件產(chǎn)品的本身,而且還包括軟件開發(fā)的過程。如果一個軟件產(chǎn)品開發(fā)完成之后發(fā)現(xiàn)了很多問題,這說明此軟件開發(fā)過程很可能是有缺陷的。因此軟件測試的第三個目的是保證整個軟件開發(fā)過程是高質(zhì)量的。 </p><p> 軟件質(zhì)量
75、是由幾個方面來衡量的:</p><p> 一、在正確的時間用正確的的方法把一個工作做正確。</p><p> 二、符合一些應(yīng)用標(biāo)準(zhǔn)的要求,比如不同國家的用戶不同的操作習(xí)慣和要求,項目工程中的可維護性、可測試性等要求。</p><p> 三、質(zhì)量本身就是軟件達到了最開始所設(shè)定的要求,而代碼的優(yōu)美或精巧的技巧并不代表軟件的高質(zhì)量。</p><p
76、> 四、質(zhì)量也代表著它符合用戶的需要。</p><p> 軟件測試,最重要的一件事就是從用戶的需求出發(fā),從客戶的角度去看產(chǎn)品,客戶會怎么去使用這個產(chǎn)品,使用過程中會遇到什么樣的問題。只有這些問題都解決了,軟件產(chǎn)品的質(zhì)量才可以說是上去了。 </p><p> 軟件測試人員在軟件開發(fā)過程中的任務(wù): </p><p><b> 1、尋找Bug; &
77、lt;/b></p><p> 2、避免軟件開發(fā)過程中的缺陷; </p><p> 3、衡量軟件的品質(zhì); </p><p> 4、關(guān)注用戶的需求。 </p><p> 總而言之,軟件測試的目標(biāo)是:確保軟件的質(zhì)量。</p><p> 5.4測試分析及結(jié)果</p><p> 該系統(tǒng)
78、的測試分析及部分代碼已在第四章第二節(jié)給出,這里不再展示。</p><p> 系統(tǒng)還添加了對非法字符輸入的控制和部分過濾。例如對空格的過濾,代碼如下:</p><p> function trim(Str){ </p><p> var ResultStr = ""; </p><p> Te
79、mp=Str.split(/\s/); </p><p> for(m =0;m<Temp.length; m++) </p><p> ResultStr +=Temp[m]; </p><p> return ResultStr; </p><p><b> }</b>&l
80、t;/p><p> 對必須輸入數(shù)字的控制,部分代碼如下:</p><p> if(element.name=="teacherId")</p><p><b> {</b></p><p> if(isNaN(element.value))</p><p><b>
81、; {</b></p><p> alert("教師編號只能用數(shù)字!");</p><p> return false;</p><p><b> }</b></p><p><b> }</b></p><p> if(eleme
82、nt.name=="departmentID")</p><p><b> {</b></p><p> if(isNaN(element.value))</p><p><b> {</b></p><p> alert("系部編號只能用數(shù)字!");
83、</p><p> return false;</p><p><b> }</b></p><p><b> }</b></p><p> if(element.name=="courseId")</p><p><b> {<
84、/b></p><p> if(isNaN(element.value))</p><p><b> {</b></p><p> alert("課程編號只能用數(shù)字!");</p><p> return false;</p><p><b> }&l
85、t;/b></p><p><b> }</b></p><p> if(element.name=="classId")</p><p><b> {</b></p><p> if(isNaN(element.value))</p><p&g
86、t;<b> {</b></p><p> alert("班級編號只能用數(shù)字!");</p><p> return false;</p><p><b> }</b></p><p><b> }</b></p><p>
87、 if(element.value!="")</p><p><b> {</b></p><p> content+=encodeURIComponent(element.name)+"="+encodeURIComponent(trim(element.value))+"&";</p&
88、gt;<p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> alert("文本框內(nèi)不能為空!");</p><p> return false;</p&
89、gt;<p><b> }</b></p><p> 測試結(jié)果:本次測試了系統(tǒng)的全部模塊,系統(tǒng)實現(xiàn)了教師發(fā)布作業(yè)、批閱作業(yè),學(xué)生提交作業(yè)、查看作業(yè)及成績,管理員管理系統(tǒng)各個模塊的功能,實現(xiàn)了系統(tǒng)最初的設(shè)計要求,但在一些方面還有些不足點。系統(tǒng)經(jīng)過測試,發(fā)現(xiàn)在瀏覽器的兼容方面存在些問題,主要表現(xiàn)在JavaScript和CSS代碼上面,學(xué)生和教師模塊已基本完善,管理員對系統(tǒng)各個模
90、塊的管理功能還須完善。</p><p> 第六章 畢業(yè)設(shè)計小結(jié)</p><p> 此作業(yè)提交系統(tǒng)是基于B/S結(jié)構(gòu)運用JAVA技術(shù)開發(fā)而成的,在開發(fā)當(dāng)中使用了Struts、Hibernate、Ajax等框架與技術(shù)。此系統(tǒng)使學(xué)生和老師的交流變得更加方便和靈活,讓學(xué)生提交作業(yè)更加容易,也讓老師布置和批改作業(yè)變的更加輕松,極大地提高了學(xué)生的學(xué)習(xí)效率和老師的工作效率,具有極大的現(xiàn)實意義?;仡櫾?/p>
91、系統(tǒng)從選題,到調(diào)研、需求分析、設(shè)計、編碼實現(xiàn)、測試等,論文的撰寫,這系列連貫的過程,感想頗多,收獲也很多。大致的總結(jié)幾點,如下:</p><p> 1.設(shè)計開發(fā)一個軟件,首先要了解所涉及到行業(yè)的現(xiàn)狀,一定要想辦法進行行業(yè)調(diào)研,從不同途徑獲取該行業(yè)的專業(yè)知識。合理安排系統(tǒng)設(shè)計開發(fā)時間,進行實際開發(fā)會發(fā)現(xiàn)需求分析與系統(tǒng)設(shè)計占主要的時間,如果前面的工作做好了,編碼實現(xiàn)占用的時間很短。所以我們要借助軟件工程的思想---
92、對軟件開發(fā)過程進行控制。</p><p> 2. 在開發(fā)一個系統(tǒng)時,前期的分析準(zhǔn)備工作非常的重要。對于系統(tǒng)的需求要明確,這樣才能做到有的放矢。特別是對于系統(tǒng)中數(shù)據(jù)的存儲和重要算法的設(shè)計,設(shè)計的不好會出現(xiàn)大量的冗余,不僅浪費存儲空間,還影響查詢效率。例如:系統(tǒng)中圖的存儲設(shè)計和求最短路徑算法設(shè)計。3.在設(shè)計的初期,對一個功能模塊的設(shè)計,要想出兩種或兩種以上方案,這樣可以進行比較,從而獲得更佳的設(shè)計方案,設(shè)計開發(fā)過
93、程中一定要吸取經(jīng)驗教訓(xùn),避免返工。尤其是一些重要算法或功能。在對具體實現(xiàn)功能模塊進行編程時,要養(yǎng)成良好的加注釋的習(xí)慣,這樣的話不僅能理清思路,而且可以為以后的調(diào)試程序帶來很大的方便。</p><p> 4. 獨立思考的同時,要虛心向別人請教,可以達到事半功倍的效果。在具體編程實現(xiàn)系統(tǒng)功能的過程中,我遇到了不少的問題,我曾通過不同渠道向老師、同學(xué)、上相關(guān)網(wǎng)站、到BBS論壇尋求答案,收到了很好的效果。</p&
94、gt;<p> 5. 懂得充分利用網(wǎng)絡(luò)資源,因為實地調(diào)研的時間是非常有限的,所以需求分析中大部分分析結(jié)構(gòu)都是在我閱讀專業(yè)書籍,網(wǎng)絡(luò)資料后得出的。由于在外面工作以及其他原因,我無法借到專業(yè)書籍,只好在浩瀚的網(wǎng)絡(luò)中尋找我所需要的資料,這無形當(dāng)中培養(yǎng)了我通過網(wǎng)絡(luò)獲取資料信息的能力。通過獨立完成作業(yè)提交系統(tǒng)的分析設(shè)計開發(fā)后,發(fā)現(xiàn)自己在進行軟件開發(fā)方面提高不少,同時積極利用所學(xué)到的新技術(shù)用于自己的設(shè)計開發(fā)過程。由于本人是初次開發(fā)系
95、統(tǒng),在知識、經(jīng)驗方面都存在著不足。另外,在整個開發(fā)的過程中,時間也比較倉促。因此,該系統(tǒng)必然會存在一些缺陷和不足。如:用戶界面不夠美觀,出錯處理不夠等多方面問題。在本次開發(fā)過程由于多方面的限制,系統(tǒng)還有不足之處,可以在以后的時間進一步完善。盡管本系統(tǒng)存在著很多不足,但是實現(xiàn)了主要的功能。通過開發(fā)本系統(tǒng),鞏固了我對Java的學(xué)習(xí),但在這次畢業(yè)設(shè)計中的最大收獲并不是這些,而是學(xué)會了設(shè)計系統(tǒng)的思維方法,以及與同學(xué)們之間相互幫助的精神。<
96、/p><p><b> 致 謝</b></p><p> 畢業(yè)設(shè)計和論文完成的前提是老師給我提供了舒適的工作、學(xué)習(xí)環(huán)境,并給予我悉心的關(guān)懷與指導(dǎo)。在此表示衷心的感謝。老師認真負責(zé)的工作態(tài)度、嚴謹?shù)闹螌W(xué)風(fēng)格,使我深受啟發(fā);同時也得感謝同伴們給我的幫助,以及給我提供的良好的開發(fā)環(huán)境,是他們的幫助下,我才能和同伴完成這個系統(tǒng)。</p><p>
97、 再次感謝所有給予了我?guī)椭睦蠋煛⑴笥褌儯?lt;/p><p><b> 參 考 書 目</b></p><p> 1、李剛 著《Struts2權(quán)威指南 -基于WebWork核心的MVC開發(fā)》電子工業(yè)出版社</p><p> 2、朱印宏 著《JavaScript征途》電子工業(yè)出版社</p><p> 3、Andy
98、Budd 著 陳劍甌 譯《精通CSS:高級Web標(biāo)準(zhǔn)解決方案》人民郵電出版社</p><p> 4、付京周 著《精通Hibernate——Java數(shù)據(jù)庫持久層開發(fā)實踐》人民郵電出版社</p><p> 5、李剛 著《基于J2EE的Ajax寶典》電子工業(yè)出版社</p><p> 6、扎卡斯 姆克皮克 福西特 著 徐鋒 譯《Ajax高級程序設(shè)計》人民郵電出版社&l
溫馨提示
- 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)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)設(shè)計—網(wǎng)上作業(yè)提交系統(tǒng)
- 作業(yè)提交系統(tǒng)
- 提交畢業(yè)設(shè)計規(guī)范.DOC
- 提交畢業(yè)設(shè)計規(guī)范.DOC
- 提交畢業(yè)設(shè)計規(guī)范.DOC
- 提交畢業(yè)設(shè)計規(guī)范.DOC
- 提交畢業(yè)設(shè)計規(guī)范.DOC
- 提交畢業(yè)設(shè)計規(guī)范.DOC
- 提交畢業(yè)設(shè)計規(guī)范.DOC
- 提交畢業(yè)設(shè)計規(guī)范.DOC
- 提交畢業(yè)設(shè)計規(guī)范.DOC
- 提交畢業(yè)設(shè)計規(guī)范.DOC
- 提交畢業(yè)設(shè)計規(guī)范.DOC
- 提交畢業(yè)設(shè)計規(guī)范.DOC
- 提交畢業(yè)設(shè)計規(guī)范.DOC
- 提交畢業(yè)設(shè)計規(guī)范.DOC
- 學(xué)生提交畢業(yè)設(shè)計資料清單.doc
- 作業(yè)提交系統(tǒng)文本資料
- 畢業(yè)設(shè)計---學(xué)生作業(yè)管理系統(tǒng)
- 畢業(yè)設(shè)計相關(guān)資料提交要求(綜合).doc
評論
0/150
提交評論