版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
遠(yuǎn)程醫(yī)療數(shù)據(jù)采集系統(tǒng)的設(shè)計與實現(xiàn)北方民族大學(xué)學(xué)士學(xué)位論文論文題目:教學(xué)互動平臺設(shè)計與應(yīng)用系(部)名稱:計算機科學(xué)與工程學(xué)院學(xué)生姓名:專業(yè):學(xué)號:指導(dǎo)教師姓名:論文提交時間:2013-5-15論文答辯時間:學(xué)位授予時間:北方民族大學(xué)教務(wù)處制教學(xué)互動平臺設(shè)計與應(yīng)用PAGEI遠(yuǎn)程醫(yī)療數(shù)據(jù)采集系統(tǒng)的設(shè)計與實現(xiàn)商品銷售管理系統(tǒng)的設(shè)計與應(yīng)用摘要隨著現(xiàn)代科技的迅猛發(fā)展,計算機技術(shù)已經(jīng)滲透到各個領(lǐng)域,成為各行業(yè)不可缺少的一部分。隨著internet技術(shù)的推廣和信息高速公路的建立,使IT產(chǎn)業(yè)在市場競爭中越來越顯示出其獨特的優(yōu)勢。而面對市場各企業(yè)的管理,高效的處理企業(yè)中管理問題在適應(yīng)市場的發(fā)展中突顯出尤為重要的作用。商品的銷售管理在現(xiàn)代企業(yè)經(jīng)營管理中占據(jù)著重要的地位,一個企業(yè)商品銷售管理的水平幾乎決定著企業(yè)的經(jīng)濟命脈。因此,開發(fā)一套完善、高效的商品銷售管理系統(tǒng)是非常有必要的。本系統(tǒng)采用C/S架構(gòu)作為系統(tǒng)的總體結(jié)構(gòu),以Web數(shù)據(jù)庫技術(shù)為依托,利用ODP.NET實現(xiàn)了對Web數(shù)據(jù)庫的訪問和查詢。該設(shè)計實現(xiàn)該公司商品信息、銷售信息管理及信息檢索;實現(xiàn)客戶信息管理,從用戶認(rèn)證登陸,由導(dǎo)航欄選擇各種功能入口,用戶可以簡單地對企業(yè)內(nèi)部信息進行管理,包括添加、編輯、刪除、查詢等一系列操作。并且可以自動進行銷售統(tǒng)計,實現(xiàn)簡便的一鍵式服務(wù)?;赪eb的企業(yè)管理系統(tǒng)需要大量的資料,以及銷售管理方面的知識來符合企業(yè)的相關(guān)需求,本系統(tǒng)以一種通用性強的角度設(shè)計,具備良好的擴充性和可編輯性,能夠很容易進行企業(yè)的本地化。關(guān)鍵詞:ODP.NET;C/S;銷售管理;數(shù)據(jù)庫
DesignandApplicationofsalesmanagementsystemWiththerapiddevelopmentofmodernscienceandtechnology,computertechnologyhaspenetratedintovariousfieldsandbecomeanindispensablepartoftheindustry.Withtheestablishmentofinternetmarketingandinformationtechnologyhighway,sotheITindustryinthemarketcompetitionhasincreasinglyshownitsuniqueadvantages.Inthefaceofthemarketeachbusinessmanagement,efficientprocessingenterprisemanagementhighlightsaparticularlyimportantroleinadaptingtothedevelopmentofmarkets.Merchandisesalesmanagementoccupiesanimportantpositioninthemodernbusinessmanagement,anenterpriselevelsalesmanagementdeterminesalmosttheenterprise'seconomiclifeline.Therefore,thedevelopmentofasoundandefficientsalesmanagementsystemisverynecessary.ThesystemusesC/Sstructureastheoverallstructureofthesystem,Web-baseddatabasetechnology,theuseofODP.NETrealizationofWebdatabaseaccessandquery.Thedesignandimplementationofthecompany'sproductinformation,salesinformationmanagementandinformationretrieval;achievecustomerinformationmanagement,userauthenticationfromlandingbytheentranceofthenavigationbartoselectvariousfunctions,userscaneasilymanagetheinformationwithintheenterprise,includingadding,editing,delete,query,andaseriesofoperations.Andsalesstatisticscanbeautomatedtoachievesimpleone-buttonservice.Web-BasedEnterpriseManagementSystemrequiresalotofdata,andknowledgeofsalesmanagementtomeettherelevantneedsofenterprises,theversatilityofthesysteminadesignpointofview,goodscalabilityandeditability,caneasilybeenterpriselocalization.Keywords:ODP.NET;C/S;SalesManagement;DataBase目錄摘要 IAbstract II第一章緒論 11.1系統(tǒng)開發(fā)背景 11.2系統(tǒng)開發(fā)環(huán)境及方法 11.2.1開發(fā)環(huán)境 11.2.2開發(fā)方法 2第二章可行性分析 42.1技術(shù)可行性 42.2經(jīng)濟可行性 42.3操作可行性 42.4法律可行性 4第三章系統(tǒng)需求分析 53.1系統(tǒng)開發(fā)目標(biāo) 53.2系統(tǒng)的業(yè)務(wù)流程 53.2.1系統(tǒng)業(yè)務(wù)流程描述 53.2.2系統(tǒng)業(yè)務(wù)流程圖 53.2.3系統(tǒng)業(yè)務(wù)流程分析 63.3系統(tǒng)的功能需求 63.4系統(tǒng)的非功能需求 6第四章系統(tǒng)總體設(shè)計 74.1系統(tǒng)總體構(gòu)架 74.2系統(tǒng)功能結(jié)構(gòu)圖及功能描述 74.2.1注冊信息登陸功能 84.2.2教師、學(xué)生信息管理功能 84.2.3課程內(nèi)容管理功能 94.2.4作業(yè)管理功能 94.2.5BBS管理功能 94.2.6基本信息查詢功能 94.2.7密碼修改功能 94.2.8查看公告功能 94.3系統(tǒng)數(shù)據(jù)流圖 94.4網(wǎng)絡(luò)編程規(guī)范的簡述 104.5MVC基本流程 104.6Hibernate的數(shù)據(jù)庫訪問技術(shù) 11第五章系統(tǒng)數(shù)據(jù)庫設(shè)計 135.1系統(tǒng)E-R模型 135.2系統(tǒng)用例圖 145.3用例解說 155.4系統(tǒng)UML建模圖 165.5邏輯數(shù)據(jù)模型 16第六章系統(tǒng)分析類建模 206.1順序圖 206.2活動圖 216.3協(xié)作圖 226.3分析類圖 24第七章系統(tǒng)詳細(xì)設(shè)計與實現(xiàn) 257.1用戶界面模塊 257.1.1用戶界面 297.2主功能界面 327.2.1揭示板的實現(xiàn) 337.2.2公告模塊的設(shè)計 337.2.3待提交作業(yè)模塊 357.2.4學(xué)生、教師基本信息管理 367.2.5密碼管理分析與設(shè)計 377.2.6課程表管理分析與設(shè)計 387.3系統(tǒng)測試 407.3.1用戶注冊模塊測試 407.3.2用戶登陸及主功能模塊測試 407.3.3用戶課程管理模塊測試 407.3.4公告模塊測試 407.3.5用戶基本信息模塊測試 41結(jié)束語 42致謝 43參考文獻 44PAGE44第一章緒論1.1系統(tǒng)開發(fā)背景隨著教育的事業(yè)的發(fā)展,我們的教育體制也在不斷的提升,教學(xué)質(zhì)量的提高那更是我們關(guān)注的問題。我們老師在上課的同時,也和學(xué)生建立了一個交流平臺。時刻了解學(xué)生的最新狀態(tài),學(xué)習(xí)情況。傳統(tǒng)的交流方式給我們帶來了局限性。第一,學(xué)生和教師只能在學(xué)校進行交流。其次,只能在有限的時間內(nèi)交流??傊畞碚f,這都影響著學(xué)生和教師間的互動。隨著計算機技術(shù)的飛速發(fā)展,特別是計算機的應(yīng)用已普及到社會生活的各個領(lǐng)域。特別計算軟件開發(fā)的高速發(fā)展,利用計算機軟件從事教育活動已成為必然。在這樣的環(huán)境下,網(wǎng)絡(luò)教學(xué)互動平臺產(chǎn)生解決我們的隨時隨地的和老師交流的問題。學(xué)生和教師通過教學(xué)互動平臺可以向老師提問,教師可以解決學(xué)生提出的問題。生活、學(xué)習(xí)的問題都可以得以解答。1.2系統(tǒng)開發(fā)環(huán)境及方法1.2.1開發(fā)環(huán)境需求名稱詳細(xì)要求開發(fā)環(huán)境Windowsxp操作系統(tǒng)或其他Windows操作系統(tǒng)開發(fā)工具集成開發(fā)工具MyEclipse硬件需求處理器InterPentium4以上內(nèi)存256MB以上硬盤大小80GB以上服務(wù)器運行Windowsxp操作系統(tǒng)Apache+Tomcat數(shù)據(jù)庫Oracle圖1-1開發(fā)環(huán)境MyEclipse開發(fā)環(huán)境簡介:MyEclipse集成開發(fā)環(huán)境是一個基于Windows操作系統(tǒng)的可視化、面向?qū)ο蟮募砷_發(fā)環(huán)境(IntegratedDevelopmentEnvironment,IDE)。他集成了多種數(shù)據(jù)庫和Apache+Tomcat服務(wù)器,我們只需要將插件和Jar包導(dǎo)入開發(fā)環(huán)境即可。他用于創(chuàng)建、編譯、連接和測試程序的完全獨立的環(huán)境,也是一個很好的學(xué)習(xí)編程的環(huán)境。 本系統(tǒng)是基于三大框架實現(xiàn)MVC的開發(fā)模式。MVC思想是將模型層,(控制層)業(yè)務(wù)處理邏輯,表示層分離開,已達到低耦合高內(nèi)聚的開發(fā)思想。而SSH框架中的Struts2和Spring主要負(fù)責(zé)業(yè)務(wù)邏輯處理,Struts2負(fù)責(zé)請求轉(zhuǎn)發(fā),Spring負(fù)責(zé)屬性注入和事務(wù)處理。Hibernate則將模型層的Dao處理提取出出來,他是用于封裝數(shù)據(jù)訪問層的組件,將數(shù)據(jù)庫的表結(jié)構(gòu)映射成實體。同時又可以將實體數(shù)據(jù)寫入數(shù)據(jù)庫,幫助我們處理了好多JDBC/SQL的處理邏輯,JSP則為表示層。Oracle數(shù)據(jù)庫管理系統(tǒng)簡介:Oracle是著名的Oracle(甲骨文)公司的數(shù)據(jù)庫產(chǎn)品。他是世界上第一個商業(yè)化的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),也是第一個推出和數(shù)據(jù)庫結(jié)合的第四代語言開發(fā)工具的數(shù)據(jù)庫產(chǎn)品。Oracle公司的軟件產(chǎn)品豐富,包括Oracle開發(fā)工具和Oracle應(yīng)用軟件,其中最著名的就是Oracle數(shù)據(jù)庫,目前最新的版本是Oracle11g。Oracle提供一個集成的開發(fā)環(huán)境。在安全性問題上,它讓數(shù)據(jù)庫的管理和程序編寫更為安全[2]。1.2.2開發(fā)方法根據(jù)教學(xué)互動系統(tǒng)的開發(fā)背景,業(yè)務(wù)需求,參考系統(tǒng)開發(fā)的生存期模型說明和軟件設(shè)計過程體系,決定采用增量式開發(fā)模型。增量式的系統(tǒng)開發(fā)步驟:軟件描述、需求分析、軟件設(shè)計和實現(xiàn)過程,軟件測試被分散成一系列的時間片,這些增量輪流被開發(fā)。先完成一個系統(tǒng)子模塊的開發(fā),然后再進行迭代開發(fā),已達到需求文檔的要求。再按同樣的開發(fā)步驟增加功能,這樣遞增下去逐個模塊開發(fā)直到系統(tǒng)的整過功能開發(fā)完成。系統(tǒng)的總體設(shè)計在初始系統(tǒng)設(shè)計階段就應(yīng)做出設(shè)計。軟件的設(shè)計是在開發(fā)過程中逐步完善的[1]。對于教學(xué)互動平臺系統(tǒng)增量式的開發(fā)思想的設(shè)計:1)用戶無需等到整個系統(tǒng)的全部實現(xiàn)。每完成一個模塊就能滿足他們大多數(shù)關(guān)鍵的需求,用戶可以更早的看到系統(tǒng)的功能體現(xiàn)。以便做系統(tǒng)分析設(shè)計的修改。2)用戶可以將初期的模塊作為原型,從中獲得對后面系統(tǒng)模塊處理的需求經(jīng)驗。3)項目風(fēng)險得到了更好緩解,不至于整個系統(tǒng)失敗。雖然可能在一些模塊中遇到問題,但是其他一些增量將交付給客戶。4)因為具有最高優(yōu)先權(quán)的服務(wù)首先交付,而后面的增量也不斷被集成進來,這就要求我們要做最多的測試。系統(tǒng)開發(fā)的生命周期圖如圖1-2開發(fā)生命周期圖圖1-2開發(fā)生命周期圖采用增量式開發(fā)過程的理由:1)教學(xué)互動平臺系統(tǒng)要求有個揭示板的功能,教師和學(xué)生可以進行網(wǎng)絡(luò)互動,這樣一來,我們可以先做學(xué)生系統(tǒng),再教師系統(tǒng),而學(xué)生和教師的有些功能界面是可以共用的。因此用戶可根據(jù)學(xué)生系統(tǒng)的開發(fā)情況,了解后續(xù)的開發(fā)過程進度,提出更多要求,這有助于下一階段開發(fā),減少風(fēng)險。2)系統(tǒng)要求有可擴充性,可以在現(xiàn)有系統(tǒng)的基礎(chǔ)上,根據(jù)客戶的新需求可以很方便的添加新模塊,新功能。第二章可行性分析2.1技術(shù)可行性教學(xué)互動系統(tǒng)的開平臺系統(tǒng),采用MyEclipse作為開發(fā)工具,采用Oracle作為后臺數(shù)據(jù)庫平臺的管理系統(tǒng),使用JAVA語言編碼,JAVA類庫。它們均為較成熟的技術(shù)。MyEclipse是一款優(yōu)秀的集成開發(fā)環(huán)境,企業(yè)級的開發(fā)也都有使用,集成Apache+Tomcat服務(wù)器和多種數(shù)據(jù)庫軟件的開發(fā)環(huán)境更是企業(yè)首選。Oracle作為大型數(shù)據(jù)庫,在數(shù)據(jù)倉庫和數(shù)據(jù)庫解決方案等應(yīng)用中起著核心作用,同時維護也好維護,對各企業(yè)的數(shù)據(jù)管理帶來極大的方便,可為數(shù)據(jù)庫中的數(shù)據(jù)提供有效的管理,實現(xiàn)數(shù)據(jù)的完整性、一致性,原子性,數(shù)據(jù)的安全性以及數(shù)據(jù)的可靠易用性帶來良好的支撐。其次開發(fā)人員對于MyEclipse開發(fā)工具熟悉,使用MyEclipse開發(fā)軟件。Oracle數(shù)據(jù)庫,基于SSH框架實現(xiàn)的MVC結(jié)構(gòu)的項目當(dāng)當(dāng)網(wǎng)購物系統(tǒng),枸杞溯源網(wǎng),在線考試系統(tǒng)等多個項目,有良好的項目開發(fā)經(jīng)驗,因此在技術(shù)上是可行的[4]。2.2經(jīng)濟可行性項目開發(fā)所使用的硬件設(shè)備,軟件平臺都很完善,項目預(yù)算充足,因此在經(jīng)濟上是可行的。2.3操作可行性教學(xué)互動平臺系統(tǒng)的用戶界面和教學(xué)管理系統(tǒng)類似,用戶熟悉網(wǎng)絡(luò)教學(xué)系統(tǒng)就會操作教學(xué)互動平臺。在操作上用戶只需使用簡單鼠標(biāo)點擊操作和鍵盤輸入文本。因此在操作上具有可行性[4]。2.4法律可行性教學(xué)互動平臺系統(tǒng)的開發(fā)屬于簡單畢業(yè)設(shè)計,不涉及商業(yè)利益。所以法律上是可行的第三章系統(tǒng)需求分析3.1系統(tǒng)開發(fā)目標(biāo)為了提高老師和學(xué)生之間的互動,可以利用在線教學(xué)互動平臺。構(gòu)建基于Web平臺的網(wǎng)上教學(xué)互動系統(tǒng),目的是以校園網(wǎng)為教學(xué)媒體,在網(wǎng)上實施Web課程開發(fā)、教學(xué)和管理的功能,為教師之間、學(xué)生之間提供交流渠道和虛擬教室和虛擬實驗環(huán)境。此系統(tǒng)大體包括揭示板(BBS)、課程內(nèi)容的管理、提交作業(yè)界面、老師及學(xué)生信息管理、對學(xué)生的授權(quán)等內(nèi)容。3.2系統(tǒng)的業(yè)務(wù)流程3.2.1系統(tǒng)業(yè)務(wù)流程描述1)學(xué)生注冊,登錄教學(xué)互動平臺查看系統(tǒng)公告,學(xué)生作業(yè)查詢,未讀課程通知,學(xué)生登錄密碼修改。訪問揭示板,作業(yè)提交,學(xué)生基本信息查詢,課程表查詢。2)教師注冊,登錄教學(xué)互動平臺查看系統(tǒng)公告,作業(yè)發(fā)布,學(xué)生作業(yè)批改,教師密碼修改,教師基本信息查詢。學(xué)生基本信息查詢,訪問揭示板,課程表查詢。3.2.2系統(tǒng)業(yè)務(wù)流程圖圖3-1業(yè)務(wù)流程圖3.2.3系統(tǒng)業(yè)務(wù)流程分析1)學(xué)生登錄系統(tǒng)成功,進行系統(tǒng)公告查看。2)可以查詢當(dāng)前學(xué)習(xí)的課程。3)從未提交作業(yè)中查看教師發(fā)布的新作業(yè),并提交作業(yè)。4)學(xué)生課程表查看本周的課程安排。5)學(xué)生和教師可以在密碼修改中修改自己的密碼。6)學(xué)生可以查詢教師批改的作業(yè),當(dāng)你提交做完的作業(yè)后,才可以在查詢作業(yè)時看到自己的作業(yè)分?jǐn)?shù)和教師評價。7)學(xué)生可以進入揭示板和老師進行互動,同時可以看到揭示板中其他同學(xué)的相關(guān)問題。8)教師登錄后可以查看自己的基本的信息和學(xué)生信息,通過密碼修改可以修改自己的登錄密碼。9)教師授權(quán)學(xué)生查看揭示板。了解學(xué)生的揭示板提問,進行回復(fù)。10)教師對學(xué)生作業(yè)進行批改。3.3系統(tǒng)的功能需求為了提高老師和學(xué)生之間的互動,可以利用在線教學(xué)互動平臺。此系統(tǒng)大體包括揭示板(BBS)、課程內(nèi)容的管理、提交作業(yè)界面、老師及學(xué)生信息管理、對學(xué)生的授權(quán)等內(nèi)容。揭示板:學(xué)生提問,老師回答、公告發(fā)布課程管理:每周的課程安排及其他注意事項(可維護)提交作業(yè):學(xué)生提交(設(shè)置密碼,本人可刪除)信息管理:需要老師及學(xué)生的基本信息,老師要按班級管理學(xué)生授權(quán):老師要對自己的學(xué)生授權(quán)可訪問揭示板3.4系統(tǒng)的非功能需求系統(tǒng)對網(wǎng)絡(luò)中數(shù)據(jù)傳輸?shù)膶崟r性及準(zhǔn)確性有嚴(yán)格要求,系統(tǒng)采用可靠的面向連接網(wǎng)絡(luò)傳輸TCP/IP協(xié)議。第四章系統(tǒng)總體設(shè)計4.1系統(tǒng)總體構(gòu)架本系統(tǒng)的體系結(jié)構(gòu)采用B/S(Browser/Server,瀏覽器/服務(wù)器)模式,在B/S結(jié)構(gòu)模型中通過將系統(tǒng)體系合理分配Browser和Server端,這種模式將瀏覽器作為客戶端,將系統(tǒng)功能實現(xiàn)的核心部分集中到服務(wù)器上。B/S最大的優(yōu)點就是可以在任何地方進行操作而不用安裝任何專門的軟件,減小了系統(tǒng)硬件花銷。在B/S模式中將數(shù)據(jù)處理全部放在Server端進行運算。只要有一個網(wǎng)絡(luò)端就能使用,客戶端零安裝、零維護。系統(tǒng)的擴展非常容易[7]。B/S結(jié)構(gòu)帶來了很多的便利,不但對于部分功能的簡易操作,而且可以通過瀏覽器端的Cookie機制實現(xiàn)數(shù)據(jù)的重現(xiàn)。其次AJAX技術(shù)的發(fā)展,使得C/S難以做到的部分頁面刷新功能變得極為簡單。程序也能在客戶端電腦上進行部分處理,做出很炫的界面效果。從而大大的減輕了服務(wù)器的負(fù)擔(dān);并增加了交互性,能進行局部實時刷新。如圖4-1B/S系統(tǒng)體系結(jié)構(gòu)圖圖4-1B/S系統(tǒng)體系結(jié)構(gòu)圖4.2系統(tǒng)功能結(jié)構(gòu)圖及功能描述此系統(tǒng)為教學(xué)互動平臺模擬系統(tǒng),為實現(xiàn)學(xué)生和教師間的溝通和互動,提高學(xué)生和教師之間的學(xué)習(xí)交流。以便幫助學(xué)生更好的掌握課程知識。系統(tǒng)功能模塊圖如圖4-2系統(tǒng)功能模塊圖圖4-2系統(tǒng)功能模塊圖4.2.1注冊信息登陸功能學(xué)生或教師注冊,填寫基本信息,個人用戶名,用戶郵箱,(用戶郵箱用于郵箱驗證碼)用戶編號,用戶聯(lián)系方式,學(xué)生班級,學(xué)院信息。用戶點擊注冊按鈕,進入郵箱驗證碼界面。用戶登陸郵箱獲取驗證碼,填寫后提交,用戶注冊成功。系統(tǒng)包括2個用戶界面學(xué)生界面和教師界面。不同的用戶角色不同,有不同登錄注冊界面,學(xué)生Main界面只可以查詢自己的作業(yè)批改結(jié)果,查詢自己基本信息。教師Main界面可以批改學(xué)生作業(yè),作業(yè)發(fā)布,教師可以查詢自己的基本信息,也可以查看學(xué)生的基本信息。登錄系統(tǒng)用戶界面友好,操作簡單。4.2.2教師、學(xué)生信息管理功能學(xué)生、教師注冊后將數(shù)據(jù)通過映射文件映射到實體。然后通過Hibernate框架保存到數(shù)據(jù)庫。教師按照學(xué)生注冊班級號,管理學(xué)生信息。根據(jù)班級號統(tǒng)計當(dāng)前選擇教師課程的學(xué)生信息。教師不僅可以看自己的基本信息還可以查看學(xué)生基本信息,學(xué)生只能看自己的信息。學(xué)生和教師可以進行密碼修改。4.2.3課程內(nèi)容管理功能學(xué)生和教師可以查詢本周的課程安排。學(xué)生課程表包括教師信息、課程信息、上課地點和上課時間。通過課程信息表,教師信息表,組建一張學(xué)生課程表。教師課程表包括課程信息、上課地點和上課時間。4.2.4作業(yè)管理功能學(xué)生通過作業(yè)管理可以查看自己的未完成作業(yè),和提交教師發(fā)布的作業(yè)。教師可以發(fā)布一份新作業(yè),并且批改學(xué)生提交作業(yè)。4.2.5BBS管理功能BBS包括自動答疑和郵件答疑兩部份。學(xué)生通過BBS可以和教師互動向教師提問。教師登錄后課可以給學(xué)生回復(fù),同時可以看其他同學(xué)和教師的提問和評論。4.2.6基本信息查詢功能學(xué)生基本信息查詢,可以查詢自己的基本信息。教師基本信息查詢。可以查詢自己信息和選擇自己課程學(xué)生信息。4.2.7密碼修改功能學(xué)生可以修改自己的登錄密碼和作業(yè)查詢密碼。作業(yè)查詢密碼和學(xué)生登錄密碼一致。修改教師登錄密碼。4.2.8查看公告功能學(xué)生、教師可以查看系統(tǒng)公告。學(xué)生可以查看自己的課程公告,未提交的作業(yè)通知。當(dāng)前學(xué)習(xí)的課程,有哪些未完成的作業(yè)有待提交。4.3系統(tǒng)數(shù)據(jù)流圖圖4-3系統(tǒng)數(shù)據(jù)流圖4.4網(wǎng)絡(luò)編程規(guī)范的簡述Window環(huán)境下的網(wǎng)絡(luò)編程規(guī)范——WindowsSockets(簡稱WinSock)。說網(wǎng)絡(luò)編程我們不得不提的是Sockets和ServerSocket機制。Socket是一個套接字。他包含一個用于和服務(wù)器端進行通訊的端口號和IP地址。服務(wù)器通過Accept()監(jiān)聽客戶端的動作,從而和客戶端建立可靠通信。從網(wǎng)絡(luò)層次來看。我們的數(shù)據(jù)包經(jīng)過層層包裝最后通過數(shù)據(jù)鏈路層和物理層傳遞服務(wù)器端。然而Winsock的出現(xiàn)給網(wǎng)絡(luò)編程帶來了巨大影響。Winsock是一套開放的、支持多種協(xié)議的Windows下網(wǎng)絡(luò)編程接口,是Windows網(wǎng)絡(luò)編程上的標(biāo)準(zhǔn)接口。在ISO的OSI網(wǎng)絡(luò)5層協(xié)議中,WinSock主要負(fù)責(zé)控制數(shù)據(jù)的輸入和輸出,也就是傳輸層和網(wǎng)絡(luò)層。它屏蔽了數(shù)據(jù)鏈路層和物理層。這樣使得我們的網(wǎng)絡(luò)傳輸變得更方便快捷。應(yīng)用程序通過調(diào)用Winsock的API實現(xiàn)相互之間的通信,他幫助我們實現(xiàn)了底層的傳遞功能,而Winsock利用下層的網(wǎng)絡(luò)通信協(xié)議功能和操作系統(tǒng)調(diào)用實現(xiàn)實際的通信工作。從而屏蔽很多底層的一些傳遞工作,給程序員帶來了極大的方便,其次一方面又保證了數(shù)據(jù)包的完整性。套接字(Sockets)是通信端點的一種抽象,是支持TCP/IP協(xié)議網(wǎng)絡(luò)通信的基本操作單元,同時它提供了一種發(fā)送和接收數(shù)據(jù)的機制。他們之間通過輸入流和輸出流來進行資源的傳遞??蛻舳说妮斎肓鲗?yīng)了服務(wù)器端的輸出流,客戶端的輸出流對應(yīng)了服務(wù)器端的輸入流。通過對象輸入流和輸出流來進行數(shù)據(jù)傳遞。在開發(fā)服務(wù)器/客戶端應(yīng)用程序時,可以利用Sockets實現(xiàn)數(shù)據(jù)結(jié)構(gòu)或數(shù)據(jù)包的交換,以完成應(yīng)用程序之間的通信。給Windows環(huán)境下的網(wǎng)絡(luò)編程帶來了巨大的變化[3]。層次結(jié)構(gòu)圖如圖4-4WindowsSockets通信層次結(jié)構(gòu)圖圖4-4WindowsSockets通信層次結(jié)構(gòu)圖4.5MVC基本流程MVC模式是當(dāng)前計算機開發(fā)比較流行的模式,MVC的出現(xiàn)對于原來的較為凌亂和復(fù)雜的開發(fā)帶來了良好開發(fā)基礎(chǔ)。MVC的模式分為三個部分。M代表模型層(Model),V代表視圖層(View),C代表控制層(Controller)。他是一種軟件設(shè)計的典范,目的是為了實現(xiàn)業(yè)務(wù)處理邏輯和數(shù)據(jù)顯示分離。這樣設(shè)置使得界面和用戶圍繞數(shù)據(jù)的交互能被改進和個性化定制而不需要重新編寫業(yè)務(wù)邏輯。視圖層是用于和用戶打交道最直觀的模塊設(shè)計。對于原來的Web,視圖主要由HTML元素組成,然而現(xiàn)在的開發(fā)主要使用Jsp來處理。在視圖層一般沒有真正的處理邏輯。他只是作為一種輸出數(shù)據(jù)并允許用戶操作的方式[9]. 模型層主要是體現(xiàn)數(shù)據(jù)和業(yè)務(wù)的規(guī)則。對于MVC來說,業(yè)務(wù)的模型的處理任務(wù)是最多的,我們熟知的EJB和JBO、ColdFusionComponents都可以用來處理數(shù)據(jù)庫,被模型返回的數(shù)據(jù)是中立的,簡單的來說就是模型與數(shù)據(jù)格式無關(guān),因此一個模型能為多個視圖提供數(shù)據(jù),也可用于多個業(yè)務(wù)邏輯提供數(shù)據(jù)。模型的代碼只需寫一次就可以被多個視圖重用,大大減輕了程序員的工作,更重要的是減少了代碼的重復(fù)性,同時也使得系統(tǒng)開發(fā)的低耦合和高內(nèi)聚的特點更明顯。模型的設(shè)計還壞將決定了系統(tǒng)的開發(fā)是否最高效的[9]。 控制層的工作是接收用戶的輸入并去調(diào)用模型和視圖來實現(xiàn)用戶的請求,例如當(dāng)點擊JSP頁面的超鏈接和表單時??刂破鞅旧聿蛔鋈魏屋敵龊蜆I(yè)務(wù)處理。他只是接受請求并決定調(diào)用哪個模型構(gòu)建去處理請求,同時用哪個視圖來顯示返回數(shù)據(jù)[9]。 SSH框架的MVC模式由Struts2、Hibernate、Spring、JSP組成。Struts2的Web.xml和Struts.xml配置作為控制層。Hibernate和Spring作為業(yè)務(wù)邏輯處理層,JSP表示層。Hibernate主要負(fù)責(zé)對JDBC的封裝,是業(yè)務(wù)邏輯層對數(shù)據(jù)庫進行數(shù)據(jù)庫操作的必不可少的一部分。Spring主要負(fù)責(zé)邏輯層的屬性注入,和事務(wù)控制。結(jié)構(gòu)如圖4-5MVC的流程圖圖4-5MVC的流程圖4.6Hibernate的數(shù)據(jù)庫訪問技術(shù)Hibernate是采用ORM映射機制進行的持久層的數(shù)據(jù)開發(fā)工具,是為了簡化原有的JDBC功能開發(fā)出來的。他是應(yīng)用程序和關(guān)系數(shù)據(jù)庫中間的橋梁,負(fù)責(zé)對Java對象和數(shù)據(jù)庫關(guān)系表進行映射的機制。內(nèi)部封裝了JDBC的訪問數(shù)據(jù)庫功能。程序員不用去寫SQL語句,也不必去關(guān)心他是怎么寫的,只需要調(diào)用上層應(yīng)用對象提供的面向?qū)ο蟮臄?shù)據(jù)庫訪問API就可以實現(xiàn)數(shù)據(jù)庫操作。使開發(fā)者能夠充分運用面向?qū)ο蟮木幊趟枷雭聿僮鲾?shù)據(jù)庫。Hibernate是通過hibernate.cfg.xml和類的映射文件將類和數(shù)據(jù)庫相映射。將表結(jié)構(gòu)轉(zhuǎn)化為對象,應(yīng)用程序通過Hibernate可以通過持久化對象類直接訪問底層數(shù)據(jù)庫。Hibernate的體系結(jié)構(gòu)如圖4-6Hibernate的體系結(jié)構(gòu)圖4-6Hibernate的體系結(jié)構(gòu)Hibernate對象定義:SessionFactory針對單個數(shù)據(jù)庫映射關(guān)系經(jīng)過編譯后的內(nèi)存鏡像,是線程安全的。他是生成Session的工廠,本身要用到的ConnectionProvider。該對象可以在進程的級別上為那些事務(wù)之間的重用的數(shù)據(jù)提供可選的二級緩存。Session表示應(yīng)用程序與持久化儲存層之間交互操作的一個單線程對象、此對象生存期很短。其隱藏了JDBC的連接,也是Transaction的工廠。他擁有一個持久化對象的一級緩存。在遍歷對象圖或者持久化標(biāo)識查詢對象時會用到。事物處理Tranaction應(yīng)用程序用來指定原子操作單元范圍的對象。他是單線程的,周期短。通過將應(yīng)用從底層具體的JNDA、JDBC、JTA及Corba事物隔離開。一個Session之內(nèi)可能包含多個Transation對象。事物邊界的開啟與關(guān)閉是必不可少的。很多時候是需要我們手動提交事物的。也可以在攔截器中提交總體提交。ConnectionProvider他是生成JDBC連接的工廠。通過抽象將應(yīng)該從底層的Datasource或DriverManger隔開。TransactionFactory生成Transaction對象實例的工廠。通過實例工廠我們可以獲得數(shù)據(jù)庫連接資源Datasourse。從而得到SessionFactory對象對數(shù)據(jù)庫操作。第五章系統(tǒng)數(shù)據(jù)庫設(shè)計5.1系統(tǒng)E-R模型一個學(xué)生可以有多門課程,同樣一門課程可以被多名學(xué)生選擇。一個教師可以教授多門課程。學(xué)生、教師可以查看多條公告。一份課程表可以被多個學(xué)生查看,一個教師只能自己的課程表。教師可看揭示板記錄,多名學(xué)生也可查看揭示板。一個教師可以批改多份作業(yè),每一份作業(yè)只能由教授課的教師批改。教師角色可以有多名教師,一個教師只能屬于一個角色(教師),一個學(xué)生角色可以有多名學(xué)生。系統(tǒng)E-R圖如圖5-1E-R模型圖圖5-1E-R模型圖部分實體的屬性描述作業(yè)(作業(yè)描述、截止日期、發(fā)布人、提交狀態(tài)、批改狀態(tài))揭示板(回復(fù)時間、用戶賬號、提問題目、提問內(nèi)容)課程表(上課時間、教師)學(xué)生(姓名、性別、電話、院系、班級、密碼、作業(yè)查詢密碼)教師(密碼、電話、性別)公告(截止時間、閱讀狀態(tài))5.2系統(tǒng)用例圖用戶登陸系統(tǒng)后,用戶可以查詢自己基本信息。進入揭示板進行互動。查看系統(tǒng)公告,學(xué)生查看自己的課程表,查看自己的課程作業(yè),作業(yè)提交。教師查看本周的課程安排。批改學(xué)生的作業(yè)。向選擇自己課程的學(xué)生授與可以訪問揭示板的權(quán)限。系統(tǒng)用戶用例圖如圖5-2用戶用例圖圖5-2用戶用例圖管理員可以對用戶的基本信息進行維護。對數(shù)據(jù)庫數(shù)據(jù)有增刪改的功能。對學(xué)生和教師的權(quán)限進行維護。系統(tǒng)管理員用例圖如圖5-3管理員用例圖圖5-3管理員用例圖5.3用例解說表5-1用例圖解說表用例名稱創(chuàng)建者楊小波創(chuàng)建時間2012年12月28日最后更新時間2013年05月20日主要參與者系統(tǒng)管理員,教師,學(xué)生描述學(xué)生可以登錄系統(tǒng)向老師提問,查看作業(yè)完成情況,查看一周課程安排,提交未完成的作業(yè),查看公告,查看自己的基本信息。教師可以和學(xué)生互動,查看學(xué)生的提問,課程安排,查看學(xué)生和自己的基本信息,作業(yè)批改處理系統(tǒng)管理員對用戶基本信息的維護,對用戶信息的增刪改查,權(quán)限維護。前置條件1.用戶登錄系統(tǒng)。2.擁有訪問權(quán)限。主干過程1.學(xué)生,教師登錄注冊1.1填寫基本信息1.2選擇用戶角色登錄系統(tǒng)1.3.將信息數(shù)據(jù)添加到后臺數(shù)據(jù)庫中;2.系統(tǒng)訪問2.1學(xué)生查看系統(tǒng)公告,自己當(dāng)前的作業(yè)提交情況,老師的郵件回復(fù),當(dāng)前自己的選修和學(xué)習(xí)課程2.2進入作業(yè)提交頁面提交未完成的作業(yè),進入揭示板(BBS)和老師互動。本周課程表查看2.3教師查看系統(tǒng)公告,向自己學(xué)生發(fā)送作業(yè)情況,學(xué)生作業(yè)批改,查看基本信息,老師的郵件回復(fù),對自己的學(xué)生開放揭示板和學(xué)生互動。3.系統(tǒng)維護3.1管理員登錄系統(tǒng)。3.2對用戶信息的增刪改查,權(quán)限維護。異常用戶未注冊。賬號、前臺數(shù)據(jù)和后臺數(shù)據(jù)庫信息不一致,導(dǎo)致登陸錯誤;用戶訪問權(quán)限不夠。系統(tǒng)內(nèi)部訪問出錯,導(dǎo)致無法訪問網(wǎng)頁。在添加對象信息時出現(xiàn)非法字符而導(dǎo)致添加錯誤;在刪除和修改對象信息時要對相級聯(lián)的信息要做對應(yīng)操作,以免再次更新異常。數(shù)據(jù)庫訪問異常。數(shù)據(jù)更新異常。包含無優(yōu)先級高級實用頻率用戶每天至少使用一次。5.4系統(tǒng)UML建模圖學(xué)生和教師圖5-4UML建模圖5.5邏輯數(shù)據(jù)模型關(guān)系模式[5]Student(S_NO,S_name,S_Tel,S_email,S_Sex,S_yuan,S_username,S_password,S_class,HW_password);Teacher(T_NO,T_username,T_name,T_Tel,T_Sex,T_email,T_password);User_role(role,user_id)Course(C_NO,C_name,T_NO,C_description)SC(S_NO,C_NO);Homework(H_NO,C_name,publisher,submit_state,deadline,Correct_state,HW_description)Course_table(C_NO,address,T_NO,time,T_name);BBS(ID,Questioninfo,Questiontitle,user_NO,responsetime,parents_id);SH(S_NO,H_NO,homeword_text,submittime)TH(S_NO,H_NO,score,evaluate)S_Announcement(S_A_deadline,S_A_description,S_A_title,S_A_category,S_A_publisher,S_A_read)表5-2學(xué)生信息表字段名稱說明數(shù)據(jù)類型長度備注S_NO學(xué)號字符型10主鍵S_name姓名字符型20S_Tel電話字符型11S_email郵箱字符型20S_Sex性別字符型5S_yuan學(xué)院(系)字符型50S_username用戶名字符型20S_password密碼字符型8S_class班級字符型20HW_password作業(yè)密碼字符型8表5-3教師信息表字段名稱說明數(shù)據(jù)類型長度備注T_NO職工號字符型10主鍵T_username用戶名字符型20T_name姓名字符型20T_Tel電話字符型11T_Sex性別字符型5T_email郵箱字符型20T_password密碼字符型8表5-4學(xué)生課程表字段名稱說明數(shù)據(jù)類型長度備注C_NO課程號字符型10主鍵T_NO職工號字符型10外鍵C_name課程名字符型20C_description課程簡介字符型1000表5-5選課表字段名稱說明數(shù)據(jù)類型長度備注S_NO學(xué)號字符型10外鍵C_NO課程號字符型10外鍵表5-6作業(yè)信息表字段名稱說明數(shù)據(jù)類型長度備注H_NO作業(yè)編號字符型20主鍵C_name課程名字符型20Publisher公布人字符型10submit_state提交狀態(tài)字符型4Deadline截止日期字符型20hw_description作業(yè)描述字符型2000Correct_state批改狀態(tài)字符型4注:提交狀態(tài)(0表示剛發(fā)布,學(xué)生未做,1表示學(xué)生已做并已提交)注:提交狀態(tài)(0表示未批改,1表示教師已批改)表5-7課程信息表字段名稱說明數(shù)據(jù)類型長度備注C_NO課程編號字符型10外鍵T_NO職工號字符型10外鍵Addres上課地址字符型50StartTime上課時間字符型20T_name教師名字字符型50表5-8揭示板信息表字段名稱說明數(shù)據(jù)類型長度備注ID問題ID(唯一標(biāo)識)字符型主鍵Questioninfo問題信息字符型1000Questiontitle問題題目字符型100User_NO用戶賬號(教師/學(xué)生)字符型10Responsetime回復(fù)時間字符型20Parents_id父類id(ID)字符型100外鍵表5-9公告信息表字段名稱說明數(shù)據(jù)類型長度備注S_A_deadline截止時間字符型20S_A_publisher發(fā)布人字符型10S_A_description公告內(nèi)容字符型1000S_A_title公告標(biāo)題字符型100S_A_category公告類別字符型20S_A_read閱讀狀態(tài)字符型4注:閱讀狀態(tài)(0表示未讀,1表示已讀)表5-10用戶角色表字段名稱說明數(shù)據(jù)類型長度備注Role用戶角色字符型20User_NO用戶賬號(教師/學(xué)生)字符型10注:用戶角色(0表示學(xué)生,1表示教師)表5-11教師作業(yè)批改表字段名稱說明數(shù)據(jù)類型長度備注S_NO學(xué)號字符型10外鍵H_NO作業(yè)編號字符型10外鍵T_evaluate評價字符型5000Score分?jǐn)?shù)整型10表5-12學(xué)生作業(yè)表字段名稱說明數(shù)據(jù)類型長度備注S_NO學(xué)號字符型10外鍵H_NO作業(yè)編號字符型10外鍵homeword_text作業(yè)內(nèi)容字符型2000submittime提交時間字符型20第六章系統(tǒng)分析類建模 6.1順序圖用戶登陸后,點擊觸發(fā)事件,通過View層的JSP表單提交。由控制層轉(zhuǎn)發(fā)用戶的請求。調(diào)用對應(yīng)的Action對業(yè)務(wù)進行邏輯處理。通過Action調(diào)用對應(yīng)Service、Service通過框架注入實例化后調(diào)用Dao對數(shù)據(jù)庫進行增刪改查,并將結(jié)果層層向上返回,最后通過Action返回到View層完成一次交互[6]。系統(tǒng)用戶順序圖如圖6-1系統(tǒng)用戶順序圖圖6-1系統(tǒng)用戶順序圖系統(tǒng)順序圖體現(xiàn)了用戶在客戶端發(fā)出請求時,系統(tǒng)是如何實現(xiàn)這個功能的。對數(shù)據(jù)庫的操作又是什么。系統(tǒng)的數(shù)據(jù)來源和如何與服務(wù)器端交互的。從MVC的模式來看,當(dāng)用戶在瀏覽器上觸發(fā)一個請求時。系統(tǒng)會通過控制器(即web.xml和struts.xml配置文件)轉(zhuǎn)發(fā)請求給業(yè)務(wù)處理層。Struts通過相應(yīng)的Action調(diào)用不同的Service接口去處理對應(yīng)的邏輯,而Service通過Spring的反向控制(IOC)對其實例化。讓后調(diào)用對應(yīng)DAO組件對數(shù)據(jù)庫進行訪問。最后向客戶端瀏覽器返回值。從而實現(xiàn)客戶的請求。系統(tǒng)管理員順序圖如圖6-2系統(tǒng)管理員順序圖圖6-2系統(tǒng)管理員順序圖6.2活動圖系統(tǒng)活動圖主要體現(xiàn)了系統(tǒng)的整個流程。以及在什么情況下用戶該做什么。系統(tǒng)能更直觀的體現(xiàn)出整個系統(tǒng)進出口。具體活動圖如圖6-3系統(tǒng)管理分析活動圖圖6-3系統(tǒng)管理分析活動圖6.3協(xié)作圖用例分析協(xié)作圖主要體現(xiàn)了用戶在請求時,系統(tǒng)要完成整個過程需要調(diào)用的一些處理方法。如:登錄請求,當(dāng)Action接收到一個login請求時,Service需要調(diào)用它的實現(xiàn)類ServiceImpl.find()方法,通過Dao接口的實現(xiàn)類DaoImpl.find()查詢數(shù)據(jù)庫。判斷這個用戶名是否存在。若存在則返回該用戶對象。登錄成功。若不存在則返回空值,該用戶還未注冊。具體用戶分析協(xié)作圖如圖6-4系統(tǒng)用戶分析協(xié)作圖圖6-4系統(tǒng)用戶分析協(xié)作圖系統(tǒng)管理員擁有對用戶的數(shù)據(jù)進行增刪改查的功能。對用戶的角色,作業(yè)信息,用戶基本資料等都有相應(yīng)的方法去修改。具體系統(tǒng)管理員分析協(xié)作圖如圖6-5系統(tǒng)管理員分析協(xié)作圖圖6-5系統(tǒng)管理員分析協(xié)作圖6.3分析類圖系統(tǒng)分析類圖體現(xiàn)了數(shù)據(jù)庫的字段設(shè)計和操作的方法。其次表與表之間的關(guān)聯(lián)信息,在數(shù)據(jù)查詢時我們通常要進行關(guān)聯(lián)數(shù)據(jù)的查詢,比如,學(xué)生課程表的數(shù)據(jù)就要從教師表(Teacher),課程信息表(Course),課程表(Course_table)中來。所以通過分析類圖我們就可以配置Hibernate的關(guān)聯(lián)映射,從而進行關(guān)聯(lián)查詢。具體的系統(tǒng)分析類圖如圖6-6系統(tǒng)分析類圖圖6-6系統(tǒng)分析類圖第七章系統(tǒng)詳細(xì)設(shè)計與實現(xiàn)7.1用戶界面模塊用戶是每一個系統(tǒng)的核心部分。用戶的不同一方面也體現(xiàn)了系統(tǒng)的適用范圍。由于教學(xué)互動平臺關(guān)系到學(xué)生的整個檔案存儲。學(xué)校的管理,以及與用戶學(xué)號,職工號相關(guān)聯(lián)的信息不變。必須保證用戶的正確性、準(zhǔn)確性。因此需要對用戶資料進行有效的管理,因此用戶管理是教學(xué)互動平臺的重要內(nèi)容。它主要包括用戶注冊、登錄和驗證、用戶注冊資料的修改更新和用戶注銷等功能[8]。系統(tǒng)實現(xiàn)的主要重要配置如下:第一步在WEB_INF/web.xml配置如下:<listener<listener><listener-class>org.springframework.web.context.request.RequestContextListener</listener-class></listener><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:applicationContext.xml</param-value></context-param><listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><filter><filter-name>YxbTGD2</filter-name><filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class></filter><filter-mapping><filter-name>YxbTGD2</filter-name><url-pattern>/*</url-pattern></filter-mapping>第二步重要配置<struts><struts> <includefile="struts-user.xml"></include> <includefile="struts-Homework.xml"></include> <includefile="struts-main.xml"></include> <includefile="struts-course.xml"></include> <includefile="struts-BBS.xml"></include> <packagename="dang-default"extends="json-default"> <interceptors><interceptorname="intercept" class="erceptor.TransactionInterceptor"></interceptor> <interceptor-stackname="dangStack"> <interceptor-refname="intercept"></interceptor-ref> <interceptor-refname="defaultStack"></interceptor-ref> </interceptor-stack> </interceptors> <default-interceptor-refname="dangStack"/> </package></struts>struts-user.xml的基本配置<package<packagename="user"extends="dang-default"namespace="/user"><actionname="logon"class="com.Yxbgd.User.Action.logonAction"><resultname="success">../user/login_form.jsp</result></action><actionname="imageCode"class="com.Yxbgd.action01.imageaction"><resultname="success"type="stream"><paramname="inputName">inputStream</param></result></action><actionname="passwordmodify"class="com.Yxbgd.User.Action.passwordmodifyAction"><resultname="success">../main/mainmenu.jsp</result></action>...</package><packagename="user1"extends="json-default"namespace="/user"><actionname="validatecodecheck"class="com.Yxbgd.User.Action.validatecodecheckAction"><resultname="success"type="json"><paramname="root">ok</param></result></action></package>其他幾個文件的配置類似。第三步配置applipicationContext.xml數(shù)據(jù)庫搭建配置:<<beanid="mydataSource"class="mons.dbcp.BasicDataSource"><propertyname="driverClassName"value="oracle.jdbc.driver.OracleDriver"></property><propertyname="username"value="tarena"></property><propertyname="password"value="tarena"></property><propertyname="url"value="jdbc:oracle:thin:@localhost:1521/orcl"></property><propertyname="initialSize"value="10"></property></bean><<beanid="mySessionFactory"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"scope="singleton"> <propertyname="dataSource"ref="mydataSource"></property><propertyname="mappingResources"><list> <value>com/Yxbgd/entity/Student.hbm.xml</value> <value>com/Yxbgd/entity/Course.hbm.xml</value> <value>com/Yxbgd/entity/User_role.hbm.xml</value> <value>com/Yxbgd/entity/S_annoucement.hbm.xml</value> <value>com/Yxbgd/entity/S_Announcement_Value.hbm.xml</value> <value>com/Yxbgd/entity/Homework.hbm.xml</value> <value>com/Yxbgd/entity/SH.hbm.xml</value> <value>com/Yxbgd/entity/Course_table.hbm.xml</value> <value>com/Yxbgd/entity/TH.hbm.xml</value> <value>com/Yxbgd/entity/BBS.hbm.xml</value> <value>com/Yxbgd/entity/Teacher.hbm.xml</value> <value>com/Yxbgd/entity/SC.hbm.xml</value></list></property><propertyname="hibernateProperties"><props><propkey="hibernate.show_sql">true</prop><propkey="hibernate.format_sql">true</prop><propkey="hibernate.dialect">org.hibernate.dialect.OracleDialect</prop></props></property></bean>屬性注入的重要配置<<beanid="bbsdao"class="com.Yxbgd.impl.BBSDaoImpl"scope="prototype"><propertyname="sessionFactory"ref="mySessionFactory"></property></bean><beanid="bbSservice"class="com.Yxbgd.Dao.Service.Impl.BBSserviceImpl"scope="session"><propertyname="bbsDao"ref="bbsdao"></property></bean>其他幾個配置類似。第四步編寫業(yè)務(wù)處理邏輯在Action新建一個類如:BBSAction.java繼承ActionAware,主要是獲取內(nèi)置對象Session、Request等對象。編寫一個方法publicStringexecute(){}在方法中使用Spring框架對屬性privateBBSservicebbSservice進行賦值。然后調(diào)用實現(xiàn)類bbSserviceImpl處理邏輯,調(diào)用BBSDaoImpl進行數(shù)據(jù)查詢數(shù)據(jù)庫。具體查詢?nèi)缦拢簆rivateHibernateTemplatetemplate;publicvoidsetSessionFactory(SessionFactorysessionFactory){template=newHibernateTemplate(sessionFactory); }sessionFactory通過applicationContext.xml配置進行屬性注入<<beanid="mySessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean" scope="singleton"><propertyname="dataSource"ref="mydataSource"></property></bean>然后調(diào)用template.find()、update()、save()對數(shù)據(jù)庫進行查找、更新、保存操作。整個調(diào)用的流程圖如圖7-1業(yè)務(wù)處理流程圖圖7-1業(yè)務(wù)處理流程圖7.1.1用戶界面1)實現(xiàn)目標(biāo)用戶進入登陸界面后,輸入自己的用戶名、密碼點擊注冊。若用戶名不存在,則你還沒有注冊。點擊創(chuàng)建一個新用戶,用戶根據(jù)不同的用戶角色進入不同的注冊。學(xué)生只須填寫一個Web表單。學(xué)生的學(xué)號作為登錄的用戶名,學(xué)生一定要記住。這里需要學(xué)生填寫E_mail注冊是考慮到兩點:第一,用戶的E_mail是惟一的,且可以使用的,因為注冊時需要向你的E_mail發(fā)送郵箱驗證,若你沒有郵箱驗證碼的驗證,你是無法通過注冊的;第二,通過用戶的E_mail可以很方便快捷的與用戶取得聯(lián)系。用戶在提交注冊信息后,系統(tǒng)會對注冊頁面填寫的正確性進行檢查。這里我們用了Ajax的異步請求對用戶的輸入信息進行了簡單的驗證。對于不符合要求的填寫是無法提交表單數(shù)據(jù)的,需要用戶從新填寫。對于符合要求的注冊表單,用戶提交信息后,需要向用戶剛剛注冊的郵箱發(fā)送用郵箱驗證碼。用戶登陸自己的郵箱獲取驗證碼,提交表單后注冊提交,注冊成功。用戶提交的正確注冊信息將被存入系統(tǒng)的數(shù)據(jù)庫中。界面的設(shè)計如圖7-2、7-3、7-4所示圖7-2學(xué)生登錄注冊界面圖7-3教師注冊界面圖7-4用戶郵箱驗證界面2)實現(xiàn)過程界面所設(shè)及的部分Jsp文件學(xué)生點擊創(chuàng)建新用戶時。進入register_rule.jsp選擇用戶角色。進入studentregister_form.jsp頁面、教師進入teacher_register_form.jsp填寫注冊表單。提交表單后進入郵箱驗證verify_form.jsp頁面進行驗證。跳到register_ok.jsp注冊成功。通過如上的重要配置文件后調(diào)用DAO層業(yè)務(wù)處理對數(shù)據(jù)庫查詢;具體查詢?nèi)缦拢簆ublicpublicvoidsave(Studentstudent)throwsException{ template.save(student);//保存學(xué)生 }publicvoidSaveRule(User_roleuser_role)throwsException{ template.save(user_role);//保存角色 }publicvoidsaveteacher(Teacherteacher)throwsException{ template.save(teacher);//保存教師 }具體代碼請參考《畢業(yè)設(shè)計源代碼》—com.Yxbgd.User.Action包下RegistAction類。1)用戶登錄程序流程描述當(dāng)用戶輸入用戶名和密碼后首先要進行身份驗證,如果用戶存在,則成功登錄,反之,如果用戶不存在,提示錯誤信息“輸入的用戶名或密碼不存在,請注冊”,返回登錄界面重新輸入用戶名和密碼。實現(xiàn)代碼如下:publicpublicStudentfindusername(StringSNumber)throwsException{Stringhql="fromStudentwhereSNumber='"+SNumber+"'"; List<Student>list=template.find(hql); for(Studentstudent:list){returnstudent;} returnnull;}publicList<Student>findstudent(StringcNo)throwsException{Stringhql="fromStudentwhereSNumber='"+cNo+"'"; List<Student>students=template.find(hql); returnstudents; }publicTeacherfindTeacher(StringtNo)throwsException{ Stringhql="fromTeacherwhereTNo=20090101"; List<Teacher>list=template.find(hql); for(Teacherteacher:list){returnteacher;} returnnull; }publicList<Teacher>findTeacherlist(Stringtno)throwsException{ Stringhql="fromTeacherwhereTNo='"+tno+"'"; List<Teacher>list=template.find(hql); returnlist; }用戶登錄的程序流程圖如圖7-5所示。圖7-5用戶登錄程序流程圖7.2主功能界面學(xué)生登錄互動平臺后可以查看未讀通知公告、學(xué)習(xí)的課程、未讀課程課程通知、待提交的作業(yè)信息。訪問揭示板、作業(yè)查詢、課程表查詢、學(xué)生基本信息查詢、學(xué)生密碼修改。圖7-6學(xué)生主功能界面圖7-6學(xué)生主功能界面7.2.1揭示板的實現(xiàn)根據(jù)主要配置調(diào)用DaoImpl對數(shù)據(jù)庫操作;主要方法和SQL如下:publicpublicvoidsaveBBS(BBSbbs)throwsException{template.save(bbs);}publicList<BBS>findBBS()throwsException{Stringhql="fromBBSswheres.parentsId=s.idorderbys.parentsId"; List<BBS>bbses=template.find(hql); if(bbses!=null){returnbbses;} returnnull;}publicvoidupdataBBS(Stringid)throwsException{Stringhql="updateBBSssets.parentsId='"+id+"'wheres.id='"+id+"'"; template.bulkUpdate(hql);}界面設(shè)計如圖7-7互動答疑圖7-7互動答疑代碼參看《畢業(yè)設(shè)計源代碼》—com/Yxbgd/Main/BBS/Action包下的BBSAction.java類及其他相關(guān)類。7.2.2公告模塊的設(shè)計公告的設(shè)計包含兩類;一、系統(tǒng)公告,二、課程公告;課程公告主要有教師發(fā)布的作業(yè)通知和管理員發(fā)布的通知,在數(shù)據(jù)庫設(shè)計中有一個字段角色字段。當(dāng)時教師發(fā)布時。該字段被保存為Teacher,當(dāng)系統(tǒng)管理員進行操作時被設(shè)置成System。當(dāng)用戶查看完某一條公告時系統(tǒng)將查看狀態(tài)更新成字符串‘1’。當(dāng)用戶再次查詢時,系統(tǒng)將按狀態(tài)為‘0’的記錄查詢。所以用戶查看過的記錄就查詢不出來了。表結(jié)構(gòu)設(shè)計如下createtableS_Announcement(IDvarchar(1000)primarykey,S_A_deadlinevarchar(50),S_A_publishervarchar(100),S_A_descriptionvarchar(4000),S_A_titlevarchar(100),S_A_categoryvarchar(100),S_A_readvarchar(20));S_A_category字段設(shè)置通知的類別,S_A_read字段表示是否已讀。根據(jù)主要配置調(diào)用DaoImpl對數(shù)據(jù)庫操作;主要方法和SQL如下:publicpublicvoidsave1(S_annoucements_annoucement)throwsException{template.save(s_annoucement);}publicvoidupdat(Stringsa,Stringsread)throwsException{Stringhql="updateS_annoucementsetSARead='"+sread+"'whereid='"+sa+"'"; template.bulkUpdate(hql); }publicList<S_annoucement>findS_annoucement1(Stringflag){Stringhql="fromS_annoucementswheres.SACategory='"+flag+"'ands.SARead='0'"; List<S_annoucement>list=template.find(hql); returnlist;}界面設(shè)計如圖7-8系統(tǒng)公告和未讀課程公告圖7-8系統(tǒng)公告和未讀課程公告代碼參看《畢業(yè)設(shè)計源代碼》—com/Yxbgd/Main/Action包下的checkS_announcementAction.java類及其他相關(guān)類。7.2.3待提交作業(yè)模塊數(shù)據(jù)庫設(shè)計Homework(H_NO,C_name,publisher,submit_state,deadline,correct_state)SH(S_NO,H_NO,homework_text,submittime)TH(S_NO,H_NO,score,evaluate)homework_text表示作業(yè)內(nèi)容,evaluate教師評價,submit_state作業(yè)提交狀態(tài),學(xué)生為未完成則提交狀態(tài)為0,若學(xué)生完成并已提交,則提交狀態(tài)為1。correct_state為教師批改狀態(tài)。批改為1,未批改為0。教師根據(jù)提交狀態(tài)字段從數(shù)據(jù)庫中查詢當(dāng)前有哪些作業(yè)要批改,并批改。將批改的作業(yè)分?jǐn)?shù),評價等數(shù)據(jù)存入TH教師作業(yè)表中。教師發(fā)布作業(yè)界面如下圖7-9教師作業(yè)發(fā)布作業(yè)批改圖7-9教師作業(yè)發(fā)布作業(yè)批改根據(jù)主要配置調(diào)用DaoImpl對數(shù)據(jù)庫操作;主要方法和SQL如下:publicList<Homework>findhomework()publicList<Homework>findhomework()throwsException{Stringhql="fromHomeworkhwhereh.submitState='0'";List<Homework>homeworks=template.find(hql); returnhomeworks; }publicvoidsaveSH(SHsh)throwsException{ template.save(sh);}//學(xué)生作業(yè)表publicvoidupdatehomework(Stringhno)throwsException{Stringhql="updateHomeworkhseth.submitState=1whereh.HNo='"+hno+"'"; template.bulkUpdate(hql);}7.2.4學(xué)生、教師基本信息管理基本信息管理學(xué)生、教師的基本信息是關(guān)系到學(xué)生的檔案管理。以及學(xué)生、教師有關(guān)登錄教學(xué)系統(tǒng)的賬號等信息。學(xué)生的成績,選課情況等信息都是通過學(xué)生學(xué)號進行綁定。所以學(xué)生、教師的基本信息管理至關(guān)重要。數(shù)據(jù)庫設(shè)計:Student(S_NO,S_name,S_Tel,S_email,S_Sex,S_yuan,S_username)Teacher(T_NO,T_username,T_name,T_Tel,T_Sex,T_email);具體設(shè)計如下:用戶角色的不同導(dǎo)致操作的權(quán)限不同,學(xué)生登錄只能查詢自己基本信息。教師可以查詢自己和學(xué)生的信息。教師查詢學(xué)生信息主要通過Course(課程信息表),SC學(xué)生課程表關(guān)聯(lián)出選擇自己課程的學(xué)生。將學(xué)生學(xué)號,姓名,課程名作為一個list列表展示出來。頁面如下圖7-10教師查詢學(xué)生信息界面圖7-10教師查詢學(xué)生信息界面通過Teacherteacher=(Teacher)Session.get(“Teacherlogon”);將當(dāng)前登錄賬戶綁定過來,通過綁定教師的T_NO從獲取課程表中獲取課程名、課程ID號。然后根據(jù)課程名從SC查詢出學(xué)生的學(xué)號。最后從Student中的到學(xué)生list列表。在Jsp中按照list的名字將學(xué)生的信息循環(huán)迭代出來。根據(jù)主要配置調(diào)用DaoImpl對數(shù)據(jù)庫操作;主要方法和SQL如下:publicpublicStudentfindstudentbasic(Stringsid)throwsException{Stringhql="fromStudentwhereSNumber='"+sid+"'"; List<Student>students=template.find(hql); for(Studentstudent:students){returnstudent;} returnnull;}publicTeacherfindTeacherNo(StringTNo)throwsException{ Stringhql="fromTeacherwhereTNo='"+TNo+"'"; List<Teacher>list=template.find(hql); for(Teacherteacher:list){returnteacher;} returnnull;}具體代碼參看《畢業(yè)設(shè)計源代碼》—com/Yxbgd/User/Action包下的student_massageAction.java類及其他相關(guān)類。7.2.5密碼管理分析與設(shè)計用戶登錄系統(tǒng)的初始密碼是注冊密碼,用戶可以登錄系統(tǒng)后進行密碼修改。學(xué)生的作業(yè)查詢需要有個人查詢密碼才可以進行查詢。該密碼和學(xué)生登錄密碼一致。修改界面如下圖7-11用戶密碼修改圖7-11用戶密碼修改實現(xiàn)過程及簡單的配置數(shù)據(jù)庫結(jié)構(gòu):Student(S_NO,S_name,S_Tel,S_email,S_Sex,S_yuan,S_username,S_password,S_class,HW_password);Teacher(T_NO,T_username,T_name,T_Tel,T_Sex,T_email,T_password);根據(jù)主要配置調(diào)用DaoImpl對數(shù)據(jù)庫操作;主要方法和SQL如下:publicpublicvoidupdate(StringsNumber,StringsPassword,Stringuserrole)throwsException{ Stringhql=null; if(userrole.equals("學(xué)生")){ hql="updateStudentssets.SPassword='"+sPassword+"',s.hwPassword='"+sPassword+"'wheres.SNumber='"+sNumber+"'"; } else{hql="updateTeacherssets.TPassword='"+sPassword+"'wheres.TNo='"+sNumber+"'"; } template.bulkUpdate(hql);}具體代碼請參考《畢業(yè)設(shè)計源代碼》—com/Yxbgd/User/Action包下的passwordmodifyAction.java類及其他相關(guān)類。7.2.6課程表管理分析與設(shè)計課程設(shè)計是為了為學(xué)生本周的學(xué)習(xí)課程做個合理的規(guī)劃,教師本周
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 物流服務(wù)合同書范本特點
- 經(jīng)典企業(yè)保證書案例
- 應(yīng)聘者責(zé)任承諾
- 電動液壓車采購協(xié)議
- 個人信譽承諾書
- 預(yù)售房屋買賣合同范本
- 沙石料銷售購銷協(xié)議
- 小產(chǎn)權(quán)房房屋交易合同模板
- 廉潔招標(biāo)保證書
- 高性能筆記本采購合同
- 2006年度銀行業(yè)金融機構(gòu)信息科技風(fēng)險評價審計要點(共5頁)
- 羊水栓塞演練
- 小學(xué)生良好習(xí)慣的養(yǎng)成(課堂PPT)
- 化妝品生產(chǎn)流程圖(共1頁)
- 《土地利用規(guī)劃》簡答題復(fù)習(xí)
- 農(nóng)村基層人大代表述職報告
- EN10204-2004中文版
- (重要)高中數(shù)學(xué)數(shù)列十種求通項和七種求和方法,練習(xí)及答案
- 300MW機組熱力系統(tǒng)計算與經(jīng)濟性分析
- 人大代表議案范文5篇優(yōu)秀版
- 女性主義視角下《地下鐵道》中科拉命運的解讀[精選]
評論
0/150
提交評論