




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
遠(yuǎn)程醫(yī)療數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)北方民族大學(xué)學(xué)士學(xué)位論文論文題目:教學(xué)互動(dòng)平臺(tái)設(shè)計(jì)與應(yīng)用系(部)名稱:計(jì)算機(jī)科學(xué)與工程學(xué)院學(xué)生姓名:專業(yè):學(xué)號(hào):指導(dǎo)教師姓名:論文提交時(shí)間:2013-5-15論文答辯時(shí)間:學(xué)位授予時(shí)間:北方民族大學(xué)教務(wù)處制教學(xué)互動(dòng)平臺(tái)設(shè)計(jì)與應(yīng)用PAGEI遠(yuǎn)程醫(yī)療數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)商品銷售管理系統(tǒng)的設(shè)計(jì)與應(yīng)用摘要隨著現(xiàn)代科技的迅猛發(fā)展,計(jì)算機(jī)技術(shù)已經(jīng)滲透到各個(gè)領(lǐng)域,成為各行業(yè)不可缺少的一部分。隨著internet技術(shù)的推廣和信息高速公路的建立,使IT產(chǎn)業(yè)在市場(chǎng)競(jìng)爭(zhēng)中越來(lái)越顯示出其獨(dú)特的優(yōu)勢(shì)。而面對(duì)市場(chǎng)各企業(yè)的管理,高效的處理企業(yè)中管理問(wèn)題在適應(yīng)市場(chǎng)的發(fā)展中突顯出尤為重要的作用。商品的銷售管理在現(xiàn)代企業(yè)經(jīng)營(yíng)管理中占據(jù)著重要的地位,一個(gè)企業(yè)商品銷售管理的水平幾乎決定著企業(yè)的經(jīng)濟(jì)命脈。因此,開發(fā)一套完善、高效的商品銷售管理系統(tǒng)是非常有必要的。本系統(tǒng)采用C/S架構(gòu)作為系統(tǒng)的總體結(jié)構(gòu),以Web數(shù)據(jù)庫(kù)技術(shù)為依托,利用ODP.NET實(shí)現(xiàn)了對(duì)Web數(shù)據(jù)庫(kù)的訪問(wèn)和查詢。該設(shè)計(jì)實(shí)現(xiàn)該公司商品信息、銷售信息管理及信息檢索;實(shí)現(xiàn)客戶信息管理,從用戶認(rèn)證登陸,由導(dǎo)航欄選擇各種功能入口,用戶可以簡(jiǎn)單地對(duì)企業(yè)內(nèi)部信息進(jìn)行管理,包括添加、編輯、刪除、查詢等一系列操作。并且可以自動(dòng)進(jìn)行銷售統(tǒng)計(jì),實(shí)現(xiàn)簡(jiǎn)便的一鍵式服務(wù)?;赪eb的企業(yè)管理系統(tǒng)需要大量的資料,以及銷售管理方面的知識(shí)來(lái)符合企業(yè)的相關(guān)需求,本系統(tǒng)以一種通用性強(qiáng)的角度設(shè)計(jì),具備良好的擴(kuò)充性和可編輯性,能夠很容易進(jìn)行企業(yè)的本地化。關(guān)鍵詞:ODP.NET;C/S;銷售管理;數(shù)據(jù)庫(kù)
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)濟(jì)可行性 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è)計(jì) 74.1系統(tǒng)總體構(gòu)架 74.2系統(tǒng)功能結(jié)構(gòu)圖及功能描述 74.2.1注冊(cè)信息登陸功能 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ī)范的簡(jiǎn)述 104.5MVC基本流程 104.6Hibernate的數(shù)據(jù)庫(kù)訪問(wèn)技術(shù) 11第五章系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì) 135.1系統(tǒng)E-R模型 135.2系統(tǒng)用例圖 145.3用例解說(shuō) 155.4系統(tǒng)UML建模圖 165.5邏輯數(shù)據(jù)模型 16第六章系統(tǒng)分析類建模 206.1順序圖 206.2活動(dòng)圖 216.3協(xié)作圖 226.3分析類圖 24第七章系統(tǒng)詳細(xì)設(shè)計(jì)與實(shí)現(xiàn) 257.1用戶界面模塊 257.1.1用戶界面 297.2主功能界面 327.2.1揭示板的實(shí)現(xiàn) 337.2.2公告模塊的設(shè)計(jì) 337.2.3待提交作業(yè)模塊 357.2.4學(xué)生、教師基本信息管理 367.2.5密碼管理分析與設(shè)計(jì) 377.2.6課程表管理分析與設(shè)計(jì) 387.3系統(tǒng)測(cè)試 407.3.1用戶注冊(cè)模塊測(cè)試 407.3.2用戶登陸及主功能模塊測(cè)試 407.3.3用戶課程管理模塊測(cè)試 407.3.4公告模塊測(cè)試 407.3.5用戶基本信息模塊測(cè)試 41結(jié)束語(yǔ) 42致謝 43參考文獻(xiàn) 44PAGE44第一章緒論1.1系統(tǒng)開發(fā)背景隨著教育的事業(yè)的發(fā)展,我們的教育體制也在不斷的提升,教學(xué)質(zhì)量的提高那更是我們關(guān)注的問(wèn)題。我們老師在上課的同時(shí),也和學(xué)生建立了一個(gè)交流平臺(tái)。時(shí)刻了解學(xué)生的最新狀態(tài),學(xué)習(xí)情況。傳統(tǒng)的交流方式給我們帶來(lái)了局限性。第一,學(xué)生和教師只能在學(xué)校進(jìn)行交流。其次,只能在有限的時(shí)間內(nèi)交流??傊畞?lái)說(shuō),這都影響著學(xué)生和教師間的互動(dòng)。隨著計(jì)算機(jī)技術(shù)的飛速發(fā)展,特別是計(jì)算機(jī)的應(yīng)用已普及到社會(huì)生活的各個(gè)領(lǐng)域。特別計(jì)算軟件開發(fā)的高速發(fā)展,利用計(jì)算機(jī)軟件從事教育活動(dòng)已成為必然。在這樣的環(huán)境下,網(wǎng)絡(luò)教學(xué)互動(dòng)平臺(tái)產(chǎn)生解決我們的隨時(shí)隨地的和老師交流的問(wèn)題。學(xué)生和教師通過(guò)教學(xué)互動(dòng)平臺(tái)可以向老師提問(wèn),教師可以解決學(xué)生提出的問(wèn)題。生活、學(xué)習(xí)的問(wèn)題都可以得以解答。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ā)工具M(jìn)yEclipse硬件需求處理器InterPentium4以上內(nèi)存256MB以上硬盤大小80GB以上服務(wù)器運(yùn)行Windowsxp操作系統(tǒng)Apache+Tomcat數(shù)據(jù)庫(kù)Oracle圖1-1開發(fā)環(huán)境MyEclipse開發(fā)環(huán)境簡(jiǎn)介:MyEclipse集成開發(fā)環(huán)境是一個(gè)基于Windows操作系統(tǒng)的可視化、面向?qū)ο蟮募砷_發(fā)環(huán)境(IntegratedDevelopmentEnvironment,IDE)。他集成了多種數(shù)據(jù)庫(kù)和Apache+Tomcat服務(wù)器,我們只需要將插件和Jar包導(dǎo)入開發(fā)環(huán)境即可。他用于創(chuàng)建、編譯、連接和測(cè)試程序的完全獨(dú)立的環(huán)境,也是一個(gè)很好的學(xué)習(xí)編程的環(huán)境。 本系統(tǒng)是基于三大框架實(shí)現(xiàn)MVC的開發(fā)模式。MVC思想是將模型層,(控制層)業(yè)務(wù)處理邏輯,表示層分離開,已達(dá)到低耦合高內(nèi)聚的開發(fā)思想。而SSH框架中的Struts2和Spring主要負(fù)責(zé)業(yè)務(wù)邏輯處理,Struts2負(fù)責(zé)請(qǐng)求轉(zhuǎn)發(fā),Spring負(fù)責(zé)屬性注入和事務(wù)處理。Hibernate則將模型層的Dao處理提取出出來(lái),他是用于封裝數(shù)據(jù)訪問(wèn)層的組件,將數(shù)據(jù)庫(kù)的表結(jié)構(gòu)映射成實(shí)體。同時(shí)又可以將實(shí)體數(shù)據(jù)寫入數(shù)據(jù)庫(kù),幫助我們處理了好多JDBC/SQL的處理邏輯,JSP則為表示層。Oracle數(shù)據(jù)庫(kù)管理系統(tǒng)簡(jiǎn)介:Oracle是著名的Oracle(甲骨文)公司的數(shù)據(jù)庫(kù)產(chǎn)品。他是世界上第一個(gè)商業(yè)化的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),也是第一個(gè)推出和數(shù)據(jù)庫(kù)結(jié)合的第四代語(yǔ)言開發(fā)工具的數(shù)據(jù)庫(kù)產(chǎn)品。Oracle公司的軟件產(chǎn)品豐富,包括Oracle開發(fā)工具和Oracle應(yīng)用軟件,其中最著名的就是Oracle數(shù)據(jù)庫(kù),目前最新的版本是Oracle11g。Oracle提供一個(gè)集成的開發(fā)環(huán)境。在安全性問(wèn)題上,它讓數(shù)據(jù)庫(kù)的管理和程序編寫更為安全[2]。1.2.2開發(fā)方法根據(jù)教學(xué)互動(dòng)系統(tǒng)的開發(fā)背景,業(yè)務(wù)需求,參考系統(tǒng)開發(fā)的生存期模型說(shuō)明和軟件設(shè)計(jì)過(guò)程體系,決定采用增量式開發(fā)模型。增量式的系統(tǒng)開發(fā)步驟:軟件描述、需求分析、軟件設(shè)計(jì)和實(shí)現(xiàn)過(guò)程,軟件測(cè)試被分散成一系列的時(shí)間片,這些增量輪流被開發(fā)。先完成一個(gè)系統(tǒng)子模塊的開發(fā),然后再進(jìn)行迭代開發(fā),已達(dá)到需求文檔的要求。再按同樣的開發(fā)步驟增加功能,這樣遞增下去逐個(gè)模塊開發(fā)直到系統(tǒng)的整過(guò)功能開發(fā)完成。系統(tǒng)的總體設(shè)計(jì)在初始系統(tǒng)設(shè)計(jì)階段就應(yīng)做出設(shè)計(jì)。軟件的設(shè)計(jì)是在開發(fā)過(guò)程中逐步完善的[1]。對(duì)于教學(xué)互動(dòng)平臺(tái)系統(tǒng)增量式的開發(fā)思想的設(shè)計(jì):1)用戶無(wú)需等到整個(gè)系統(tǒng)的全部實(shí)現(xiàn)。每完成一個(gè)模塊就能滿足他們大多數(shù)關(guān)鍵的需求,用戶可以更早的看到系統(tǒng)的功能體現(xiàn)。以便做系統(tǒng)分析設(shè)計(jì)的修改。2)用戶可以將初期的模塊作為原型,從中獲得對(duì)后面系統(tǒng)模塊處理的需求經(jīng)驗(yàn)。3)項(xiàng)目風(fēng)險(xiǎn)得到了更好緩解,不至于整個(gè)系統(tǒng)失敗。雖然可能在一些模塊中遇到問(wèn)題,但是其他一些增量將交付給客戶。4)因?yàn)榫哂凶罡邇?yōu)先權(quán)的服務(wù)首先交付,而后面的增量也不斷被集成進(jìn)來(lái),這就要求我們要做最多的測(cè)試。系統(tǒng)開發(fā)的生命周期圖如圖1-2開發(fā)生命周期圖圖1-2開發(fā)生命周期圖采用增量式開發(fā)過(guò)程的理由:1)教學(xué)互動(dòng)平臺(tái)系統(tǒng)要求有個(gè)揭示板的功能,教師和學(xué)生可以進(jìn)行網(wǎng)絡(luò)互動(dòng),這樣一來(lái),我們可以先做學(xué)生系統(tǒng),再教師系統(tǒng),而學(xué)生和教師的有些功能界面是可以共用的。因此用戶可根據(jù)學(xué)生系統(tǒng)的開發(fā)情況,了解后續(xù)的開發(fā)過(guò)程進(jìn)度,提出更多要求,這有助于下一階段開發(fā),減少風(fēng)險(xiǎn)。2)系統(tǒng)要求有可擴(kuò)充性,可以在現(xiàn)有系統(tǒng)的基礎(chǔ)上,根據(jù)客戶的新需求可以很方便的添加新模塊,新功能。第二章可行性分析2.1技術(shù)可行性教學(xué)互動(dòng)系統(tǒng)的開平臺(tái)系統(tǒng),采用MyEclipse作為開發(fā)工具,采用Oracle作為后臺(tái)數(shù)據(jù)庫(kù)平臺(tái)的管理系統(tǒng),使用JAVA語(yǔ)言編碼,JAVA類庫(kù)。它們均為較成熟的技術(shù)。MyEclipse是一款優(yōu)秀的集成開發(fā)環(huán)境,企業(yè)級(jí)的開發(fā)也都有使用,集成Apache+Tomcat服務(wù)器和多種數(shù)據(jù)庫(kù)軟件的開發(fā)環(huán)境更是企業(yè)首選。Oracle作為大型數(shù)據(jù)庫(kù),在數(shù)據(jù)倉(cāng)庫(kù)和數(shù)據(jù)庫(kù)解決方案等應(yīng)用中起著核心作用,同時(shí)維護(hù)也好維護(hù),對(duì)各企業(yè)的數(shù)據(jù)管理帶來(lái)極大的方便,可為數(shù)據(jù)庫(kù)中的數(shù)據(jù)提供有效的管理,實(shí)現(xiàn)數(shù)據(jù)的完整性、一致性,原子性,數(shù)據(jù)的安全性以及數(shù)據(jù)的可靠易用性帶來(lái)良好的支撐。其次開發(fā)人員對(duì)于MyEclipse開發(fā)工具熟悉,使用MyEclipse開發(fā)軟件。Oracle數(shù)據(jù)庫(kù),基于SSH框架實(shí)現(xiàn)的MVC結(jié)構(gòu)的項(xiàng)目當(dāng)當(dāng)網(wǎng)購(gòu)物系統(tǒng),枸杞溯源網(wǎng),在線考試系統(tǒng)等多個(gè)項(xiàng)目,有良好的項(xiàng)目開發(fā)經(jīng)驗(yàn),因此在技術(shù)上是可行的[4]。2.2經(jīng)濟(jì)可行性項(xiàng)目開發(fā)所使用的硬件設(shè)備,軟件平臺(tái)都很完善,項(xiàng)目預(yù)算充足,因此在經(jīng)濟(jì)上是可行的。2.3操作可行性教學(xué)互動(dòng)平臺(tái)系統(tǒng)的用戶界面和教學(xué)管理系統(tǒng)類似,用戶熟悉網(wǎng)絡(luò)教學(xué)系統(tǒng)就會(huì)操作教學(xué)互動(dòng)平臺(tái)。在操作上用戶只需使用簡(jiǎn)單鼠標(biāo)點(diǎn)擊操作和鍵盤輸入文本。因此在操作上具有可行性[4]。2.4法律可行性教學(xué)互動(dòng)平臺(tái)系統(tǒng)的開發(fā)屬于簡(jiǎn)單畢業(yè)設(shè)計(jì),不涉及商業(yè)利益。所以法律上是可行的第三章系統(tǒng)需求分析3.1系統(tǒng)開發(fā)目標(biāo)為了提高老師和學(xué)生之間的互動(dòng),可以利用在線教學(xué)互動(dòng)平臺(tái)。構(gòu)建基于Web平臺(tái)的網(wǎng)上教學(xué)互動(dòng)系統(tǒng),目的是以校園網(wǎng)為教學(xué)媒體,在網(wǎng)上實(shí)施Web課程開發(fā)、教學(xué)和管理的功能,為教師之間、學(xué)生之間提供交流渠道和虛擬教室和虛擬實(shí)驗(yàn)環(huán)境。此系統(tǒng)大體包括揭示板(BBS)、課程內(nèi)容的管理、提交作業(yè)界面、老師及學(xué)生信息管理、對(duì)學(xué)生的授權(quán)等內(nèi)容。3.2系統(tǒng)的業(yè)務(wù)流程3.2.1系統(tǒng)業(yè)務(wù)流程描述1)學(xué)生注冊(cè),登錄教學(xué)互動(dòng)平臺(tái)查看系統(tǒng)公告,學(xué)生作業(yè)查詢,未讀課程通知,學(xué)生登錄密碼修改。訪問(wèn)揭示板,作業(yè)提交,學(xué)生基本信息查詢,課程表查詢。2)教師注冊(cè),登錄教學(xué)互動(dòng)平臺(tái)查看系統(tǒng)公告,作業(yè)發(fā)布,學(xué)生作業(yè)批改,教師密碼修改,教師基本信息查詢。學(xué)生基本信息查詢,訪問(wèn)揭示板,課程表查詢。3.2.2系統(tǒng)業(yè)務(wù)流程圖圖3-1業(yè)務(wù)流程圖3.2.3系統(tǒng)業(yè)務(wù)流程分析1)學(xué)生登錄系統(tǒng)成功,進(jìn)行系統(tǒng)公告查看。2)可以查詢當(dāng)前學(xué)習(xí)的課程。3)從未提交作業(yè)中查看教師發(fā)布的新作業(yè),并提交作業(yè)。4)學(xué)生課程表查看本周的課程安排。5)學(xué)生和教師可以在密碼修改中修改自己的密碼。6)學(xué)生可以查詢教師批改的作業(yè),當(dāng)你提交做完的作業(yè)后,才可以在查詢作業(yè)時(shí)看到自己的作業(yè)分?jǐn)?shù)和教師評(píng)價(jià)。7)學(xué)生可以進(jìn)入揭示板和老師進(jìn)行互動(dòng),同時(shí)可以看到揭示板中其他同學(xué)的相關(guān)問(wèn)題。8)教師登錄后可以查看自己的基本的信息和學(xué)生信息,通過(guò)密碼修改可以修改自己的登錄密碼。9)教師授權(quán)學(xué)生查看揭示板。了解學(xué)生的揭示板提問(wèn),進(jìn)行回復(fù)。10)教師對(duì)學(xué)生作業(yè)進(jìn)行批改。3.3系統(tǒng)的功能需求為了提高老師和學(xué)生之間的互動(dòng),可以利用在線教學(xué)互動(dòng)平臺(tái)。此系統(tǒng)大體包括揭示板(BBS)、課程內(nèi)容的管理、提交作業(yè)界面、老師及學(xué)生信息管理、對(duì)學(xué)生的授權(quán)等內(nèi)容。揭示板:學(xué)生提問(wèn),老師回答、公告發(fā)布課程管理:每周的課程安排及其他注意事項(xiàng)(可維護(hù))提交作業(yè):學(xué)生提交(設(shè)置密碼,本人可刪除)信息管理:需要老師及學(xué)生的基本信息,老師要按班級(jí)管理學(xué)生授權(quán):老師要對(duì)自己的學(xué)生授權(quán)可訪問(wèn)揭示板3.4系統(tǒng)的非功能需求系統(tǒng)對(duì)網(wǎng)絡(luò)中數(shù)據(jù)傳輸?shù)膶?shí)時(shí)性及準(zhǔn)確性有嚴(yán)格要求,系統(tǒng)采用可靠的面向連接網(wǎng)絡(luò)傳輸TCP/IP協(xié)議。第四章系統(tǒng)總體設(shè)計(jì)4.1系統(tǒng)總體構(gòu)架本系統(tǒng)的體系結(jié)構(gòu)采用B/S(Browser/Server,瀏覽器/服務(wù)器)模式,在B/S結(jié)構(gòu)模型中通過(guò)將系統(tǒng)體系合理分配Browser和Server端,這種模式將瀏覽器作為客戶端,將系統(tǒng)功能實(shí)現(xiàn)的核心部分集中到服務(wù)器上。B/S最大的優(yōu)點(diǎn)就是可以在任何地方進(jìn)行操作而不用安裝任何專門的軟件,減小了系統(tǒng)硬件花銷。在B/S模式中將數(shù)據(jù)處理全部放在Server端進(jìn)行運(yùn)算。只要有一個(gè)網(wǎng)絡(luò)端就能使用,客戶端零安裝、零維護(hù)。系統(tǒng)的擴(kuò)展非常容易[7]。B/S結(jié)構(gòu)帶來(lái)了很多的便利,不但對(duì)于部分功能的簡(jiǎn)易操作,而且可以通過(guò)瀏覽器端的Cookie機(jī)制實(shí)現(xiàn)數(shù)據(jù)的重現(xiàn)。其次AJAX技術(shù)的發(fā)展,使得C/S難以做到的部分頁(yè)面刷新功能變得極為簡(jiǎn)單。程序也能在客戶端電腦上進(jìn)行部分處理,做出很炫的界面效果。從而大大的減輕了服務(wù)器的負(fù)擔(dān);并增加了交互性,能進(jìn)行局部實(shí)時(shí)刷新。如圖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é)互動(dòng)平臺(tái)模擬系統(tǒng),為實(shí)現(xiàn)學(xué)生和教師間的溝通和互動(dòng),提高學(xué)生和教師之間的學(xué)習(xí)交流。以便幫助學(xué)生更好的掌握課程知識(shí)。系統(tǒng)功能模塊圖如圖4-2系統(tǒng)功能模塊圖圖4-2系統(tǒng)功能模塊圖4.2.1注冊(cè)信息登陸功能學(xué)生或教師注冊(cè),填寫基本信息,個(gè)人用戶名,用戶郵箱,(用戶郵箱用于郵箱驗(yàn)證碼)用戶編號(hào),用戶聯(lián)系方式,學(xué)生班級(jí),學(xué)院信息。用戶點(diǎn)擊注冊(cè)按鈕,進(jìn)入郵箱驗(yàn)證碼界面。用戶登陸郵箱獲取驗(yàn)證碼,填寫后提交,用戶注冊(cè)成功。系統(tǒng)包括2個(gè)用戶界面學(xué)生界面和教師界面。不同的用戶角色不同,有不同登錄注冊(cè)界面,學(xué)生Main界面只可以查詢自己的作業(yè)批改結(jié)果,查詢自己基本信息。教師Main界面可以批改學(xué)生作業(yè),作業(yè)發(fā)布,教師可以查詢自己的基本信息,也可以查看學(xué)生的基本信息。登錄系統(tǒng)用戶界面友好,操作簡(jiǎn)單。4.2.2教師、學(xué)生信息管理功能學(xué)生、教師注冊(cè)后將數(shù)據(jù)通過(guò)映射文件映射到實(shí)體。然后通過(guò)Hibernate框架保存到數(shù)據(jù)庫(kù)。教師按照學(xué)生注冊(cè)班級(jí)號(hào),管理學(xué)生信息。根據(jù)班級(jí)號(hào)統(tǒng)計(jì)當(dāng)前選擇教師課程的學(xué)生信息。教師不僅可以看自己的基本信息還可以查看學(xué)生基本信息,學(xué)生只能看自己的信息。學(xué)生和教師可以進(jìn)行密碼修改。4.2.3課程內(nèi)容管理功能學(xué)生和教師可以查詢本周的課程安排。學(xué)生課程表包括教師信息、課程信息、上課地點(diǎn)和上課時(shí)間。通過(guò)課程信息表,教師信息表,組建一張學(xué)生課程表。教師課程表包括課程信息、上課地點(diǎn)和上課時(shí)間。4.2.4作業(yè)管理功能學(xué)生通過(guò)作業(yè)管理可以查看自己的未完成作業(yè),和提交教師發(fā)布的作業(yè)。教師可以發(fā)布一份新作業(yè),并且批改學(xué)生提交作業(yè)。4.2.5BBS管理功能BBS包括自動(dòng)答疑和郵件答疑兩部份。學(xué)生通過(guò)BBS可以和教師互動(dòng)向教師提問(wèn)。教師登錄后課可以給學(xué)生回復(fù),同時(shí)可以看其他同學(xué)和教師的提問(wèn)和評(píng)論。4.2.6基本信息查詢功能學(xué)生基本信息查詢,可以查詢自己的基本信息。教師基本信息查詢??梢圆樵冏约盒畔⒑瓦x擇自己課程學(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ī)范的簡(jiǎn)述Window環(huán)境下的網(wǎng)絡(luò)編程規(guī)范——WindowsSockets(簡(jiǎn)稱WinSock)。說(shuō)網(wǎng)絡(luò)編程我們不得不提的是Sockets和ServerSocket機(jī)制。Socket是一個(gè)套接字。他包含一個(gè)用于和服務(wù)器端進(jìn)行通訊的端口號(hào)和IP地址。服務(wù)器通過(guò)Accept()監(jiān)聽客戶端的動(dòng)作,從而和客戶端建立可靠通信。從網(wǎng)絡(luò)層次來(lái)看。我們的數(shù)據(jù)包經(jīng)過(guò)層層包裝最后通過(guò)數(shù)據(jù)鏈路層和物理層傳遞服務(wù)器端。然而Winsock的出現(xiàn)給網(wǎng)絡(luò)編程帶來(lái)了巨大影響。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)用程序通過(guò)調(diào)用Winsock的API實(shí)現(xiàn)相互之間的通信,他幫助我們實(shí)現(xiàn)了底層的傳遞功能,而Winsock利用下層的網(wǎng)絡(luò)通信協(xié)議功能和操作系統(tǒng)調(diào)用實(shí)現(xiàn)實(shí)際的通信工作。從而屏蔽很多底層的一些傳遞工作,給程序員帶來(lái)了極大的方便,其次一方面又保證了數(shù)據(jù)包的完整性。套接字(Sockets)是通信端點(diǎn)的一種抽象,是支持TCP/IP協(xié)議網(wǎng)絡(luò)通信的基本操作單元,同時(shí)它提供了一種發(fā)送和接收數(shù)據(jù)的機(jī)制。他們之間通過(guò)輸入流和輸出流來(lái)進(jìn)行資源的傳遞。客戶端的輸入流對(duì)應(yīng)了服務(wù)器端的輸出流,客戶端的輸出流對(duì)應(yīng)了服務(wù)器端的輸入流。通過(guò)對(duì)象輸入流和輸出流來(lái)進(jìn)行數(shù)據(jù)傳遞。在開發(fā)服務(wù)器/客戶端應(yīng)用程序時(shí),可以利用Sockets實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)或數(shù)據(jù)包的交換,以完成應(yīng)用程序之間的通信。給Windows環(huán)境下的網(wǎng)絡(luò)編程帶來(lái)了巨大的變化[3]。層次結(jié)構(gòu)圖如圖4-4WindowsSockets通信層次結(jié)構(gòu)圖圖4-4WindowsSockets通信層次結(jié)構(gòu)圖4.5MVC基本流程MVC模式是當(dāng)前計(jì)算機(jī)開發(fā)比較流行的模式,MVC的出現(xiàn)對(duì)于原來(lái)的較為凌亂和復(fù)雜的開發(fā)帶來(lái)了良好開發(fā)基礎(chǔ)。MVC的模式分為三個(gè)部分。M代表模型層(Model),V代表視圖層(View),C代表控制層(Controller)。他是一種軟件設(shè)計(jì)的典范,目的是為了實(shí)現(xiàn)業(yè)務(wù)處理邏輯和數(shù)據(jù)顯示分離。這樣設(shè)置使得界面和用戶圍繞數(shù)據(jù)的交互能被改進(jìn)和個(gè)性化定制而不需要重新編寫業(yè)務(wù)邏輯。視圖層是用于和用戶打交道最直觀的模塊設(shè)計(jì)。對(duì)于原來(lái)的Web,視圖主要由HTML元素組成,然而現(xiàn)在的開發(fā)主要使用Jsp來(lái)處理。在視圖層一般沒(méi)有真正的處理邏輯。他只是作為一種輸出數(shù)據(jù)并允許用戶操作的方式[9]. 模型層主要是體現(xiàn)數(shù)據(jù)和業(yè)務(wù)的規(guī)則。對(duì)于MVC來(lái)說(shuō),業(yè)務(wù)的模型的處理任務(wù)是最多的,我們熟知的EJB和JBO、ColdFusionComponents都可以用來(lái)處理數(shù)據(jù)庫(kù),被模型返回的數(shù)據(jù)是中立的,簡(jiǎn)單的來(lái)說(shuō)就是模型與數(shù)據(jù)格式無(wú)關(guān),因此一個(gè)模型能為多個(gè)視圖提供數(shù)據(jù),也可用于多個(gè)業(yè)務(wù)邏輯提供數(shù)據(jù)。模型的代碼只需寫一次就可以被多個(gè)視圖重用,大大減輕了程序員的工作,更重要的是減少了代碼的重復(fù)性,同時(shí)也使得系統(tǒng)開發(fā)的低耦合和高內(nèi)聚的特點(diǎn)更明顯。模型的設(shè)計(jì)還壞將決定了系統(tǒng)的開發(fā)是否最高效的[9]。 控制層的工作是接收用戶的輸入并去調(diào)用模型和視圖來(lái)實(shí)現(xiàn)用戶的請(qǐng)求,例如當(dāng)點(diǎn)擊JSP頁(yè)面的超鏈接和表單時(shí)??刂破鞅旧聿蛔鋈魏屋敵龊蜆I(yè)務(wù)處理。他只是接受請(qǐng)求并決定調(diào)用哪個(gè)模型構(gòu)建去處理請(qǐng)求,同時(shí)用哪個(gè)視圖來(lái)顯示返回?cái)?shù)據(jù)[9]。 SSH框架的MVC模式由Struts2、Hibernate、Spring、JSP組成。Struts2的Web.xml和Struts.xml配置作為控制層。Hibernate和Spring作為業(yè)務(wù)邏輯處理層,JSP表示層。Hibernate主要負(fù)責(zé)對(duì)JDBC的封裝,是業(yè)務(wù)邏輯層對(duì)數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)庫(kù)操作的必不可少的一部分。Spring主要負(fù)責(zé)邏輯層的屬性注入,和事務(wù)控制。結(jié)構(gòu)如圖4-5MVC的流程圖圖4-5MVC的流程圖4.6Hibernate的數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)Hibernate是采用ORM映射機(jī)制進(jìn)行的持久層的數(shù)據(jù)開發(fā)工具,是為了簡(jiǎn)化原有的JDBC功能開發(fā)出來(lái)的。他是應(yīng)用程序和關(guān)系數(shù)據(jù)庫(kù)中間的橋梁,負(fù)責(zé)對(duì)Java對(duì)象和數(shù)據(jù)庫(kù)關(guān)系表進(jìn)行映射的機(jī)制。內(nèi)部封裝了JDBC的訪問(wèn)數(shù)據(jù)庫(kù)功能。程序員不用去寫SQL語(yǔ)句,也不必去關(guān)心他是怎么寫的,只需要調(diào)用上層應(yīng)用對(duì)象提供的面向?qū)ο蟮臄?shù)據(jù)庫(kù)訪問(wèn)API就可以實(shí)現(xiàn)數(shù)據(jù)庫(kù)操作。使開發(fā)者能夠充分運(yùn)用面向?qū)ο蟮木幊趟枷雭?lái)操作數(shù)據(jù)庫(kù)。Hibernate是通過(guò)hibernate.cfg.xml和類的映射文件將類和數(shù)據(jù)庫(kù)相映射。將表結(jié)構(gòu)轉(zhuǎn)化為對(duì)象,應(yīng)用程序通過(guò)Hibernate可以通過(guò)持久化對(duì)象類直接訪問(wèn)底層數(shù)據(jù)庫(kù)。Hibernate的體系結(jié)構(gòu)如圖4-6Hibernate的體系結(jié)構(gòu)圖4-6Hibernate的體系結(jié)構(gòu)Hibernate對(duì)象定義:SessionFactory針對(duì)單個(gè)數(shù)據(jù)庫(kù)映射關(guān)系經(jīng)過(guò)編譯后的內(nèi)存鏡像,是線程安全的。他是生成Session的工廠,本身要用到的ConnectionProvider。該對(duì)象可以在進(jìn)程的級(jí)別上為那些事務(wù)之間的重用的數(shù)據(jù)提供可選的二級(jí)緩存。Session表示應(yīng)用程序與持久化儲(chǔ)存層之間交互操作的一個(gè)單線程對(duì)象、此對(duì)象生存期很短。其隱藏了JDBC的連接,也是Transaction的工廠。他擁有一個(gè)持久化對(duì)象的一級(jí)緩存。在遍歷對(duì)象圖或者持久化標(biāo)識(shí)查詢對(duì)象時(shí)會(huì)用到。事物處理Tranaction應(yīng)用程序用來(lái)指定原子操作單元范圍的對(duì)象。他是單線程的,周期短。通過(guò)將應(yīng)用從底層具體的JNDA、JDBC、JTA及Corba事物隔離開。一個(gè)Session之內(nèi)可能包含多個(gè)Transation對(duì)象。事物邊界的開啟與關(guān)閉是必不可少的。很多時(shí)候是需要我們手動(dòng)提交事物的。也可以在攔截器中提交總體提交。ConnectionProvider他是生成JDBC連接的工廠。通過(guò)抽象將應(yīng)該從底層的Datasource或DriverManger隔開。TransactionFactory生成Transaction對(duì)象實(shí)例的工廠。通過(guò)實(shí)例工廠我們可以獲得數(shù)據(jù)庫(kù)連接資源Datasourse。從而得到SessionFactory對(duì)象對(duì)數(shù)據(jù)庫(kù)操作。第五章系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)5.1系統(tǒng)E-R模型一個(gè)學(xué)生可以有多門課程,同樣一門課程可以被多名學(xué)生選擇。一個(gè)教師可以教授多門課程。學(xué)生、教師可以查看多條公告。一份課程表可以被多個(gè)學(xué)生查看,一個(gè)教師只能自己的課程表。教師可看揭示板記錄,多名學(xué)生也可查看揭示板。一個(gè)教師可以批改多份作業(yè),每一份作業(yè)只能由教授課的教師批改。教師角色可以有多名教師,一個(gè)教師只能屬于一個(gè)角色(教師),一個(gè)學(xué)生角色可以有多名學(xué)生。系統(tǒng)E-R圖如圖5-1E-R模型圖圖5-1E-R模型圖部分實(shí)體的屬性描述作業(yè)(作業(yè)描述、截止日期、發(fā)布人、提交狀態(tài)、批改狀態(tài))揭示板(回復(fù)時(shí)間、用戶賬號(hào)、提問(wèn)題目、提問(wèn)內(nèi)容)課程表(上課時(shí)間、教師)學(xué)生(姓名、性別、電話、院系、班級(jí)、密碼、作業(yè)查詢密碼)教師(密碼、電話、性別)公告(截止時(shí)間、閱讀狀態(tài))5.2系統(tǒng)用例圖用戶登陸系統(tǒng)后,用戶可以查詢自己基本信息。進(jìn)入揭示板進(jìn)行互動(dòng)。查看系統(tǒng)公告,學(xué)生查看自己的課程表,查看自己的課程作業(yè),作業(yè)提交。教師查看本周的課程安排。批改學(xué)生的作業(yè)。向選擇自己課程的學(xué)生授與可以訪問(wèn)揭示板的權(quán)限。系統(tǒng)用戶用例圖如圖5-2用戶用例圖圖5-2用戶用例圖管理員可以對(duì)用戶的基本信息進(jìn)行維護(hù)。對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)有增刪改的功能。對(duì)學(xué)生和教師的權(quán)限進(jìn)行維護(hù)。系統(tǒng)管理員用例圖如圖5-3管理員用例圖圖5-3管理員用例圖5.3用例解說(shuō)表5-1用例圖解說(shuō)表用例名稱創(chuàng)建者楊小波創(chuàng)建時(shí)間2012年12月28日最后更新時(shí)間2013年05月20日主要參與者系統(tǒng)管理員,教師,學(xué)生描述學(xué)生可以登錄系統(tǒng)向老師提問(wèn),查看作業(yè)完成情況,查看一周課程安排,提交未完成的作業(yè),查看公告,查看自己的基本信息。教師可以和學(xué)生互動(dòng),查看學(xué)生的提問(wèn),課程安排,查看學(xué)生和自己的基本信息,作業(yè)批改處理系統(tǒng)管理員對(duì)用戶基本信息的維護(hù),對(duì)用戶信息的增刪改查,權(quán)限維護(hù)。前置條件1.用戶登錄系統(tǒng)。2.擁有訪問(wèn)權(quán)限。主干過(guò)程1.學(xué)生,教師登錄注冊(cè)1.1填寫基本信息1.2選擇用戶角色登錄系統(tǒng)1.3.將信息數(shù)據(jù)添加到后臺(tái)數(shù)據(jù)庫(kù)中;2.系統(tǒng)訪問(wèn)2.1學(xué)生查看系統(tǒng)公告,自己當(dāng)前的作業(yè)提交情況,老師的郵件回復(fù),當(dāng)前自己的選修和學(xué)習(xí)課程2.2進(jìn)入作業(yè)提交頁(yè)面提交未完成的作業(yè),進(jìn)入揭示板(BBS)和老師互動(dòng)。本周課程表查看2.3教師查看系統(tǒng)公告,向自己學(xué)生發(fā)送作業(yè)情況,學(xué)生作業(yè)批改,查看基本信息,老師的郵件回復(fù),對(duì)自己的學(xué)生開放揭示板和學(xué)生互動(dòng)。3.系統(tǒng)維護(hù)3.1管理員登錄系統(tǒng)。3.2對(duì)用戶信息的增刪改查,權(quán)限維護(hù)。異常用戶未注冊(cè)。賬號(hào)、前臺(tái)數(shù)據(jù)和后臺(tái)數(shù)據(jù)庫(kù)信息不一致,導(dǎo)致登陸錯(cuò)誤;用戶訪問(wèn)權(quán)限不夠。系統(tǒng)內(nèi)部訪問(wèn)出錯(cuò),導(dǎo)致無(wú)法訪問(wèn)網(wǎng)頁(yè)。在添加對(duì)象信息時(shí)出現(xiàn)非法字符而導(dǎo)致添加錯(cuò)誤;在刪除和修改對(duì)象信息時(shí)要對(duì)相級(jí)聯(lián)的信息要做對(duì)應(yīng)操作,以免再次更新異常。數(shù)據(jù)庫(kù)訪問(wèn)異常。數(shù)據(jù)更新異常。包含無(wú)優(yōu)先級(jí)高級(jí)實(shí)用頻率用戶每天至少使用一次。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é)生信息表字段名稱說(shuō)明數(shù)據(jù)類型長(zhǎng)度備注S_NO學(xué)號(hào)字符型10主鍵S_name姓名字符型20S_Tel電話字符型11S_email郵箱字符型20S_Sex性別字符型5S_yuan學(xué)院(系)字符型50S_username用戶名字符型20S_password密碼字符型8S_class班級(jí)字符型20HW_password作業(yè)密碼字符型8表5-3教師信息表字段名稱說(shuō)明數(shù)據(jù)類型長(zhǎng)度備注T_NO職工號(hào)字符型10主鍵T_username用戶名字符型20T_name姓名字符型20T_Tel電話字符型11T_Sex性別字符型5T_email郵箱字符型20T_password密碼字符型8表5-4學(xué)生課程表字段名稱說(shuō)明數(shù)據(jù)類型長(zhǎng)度備注C_NO課程號(hào)字符型10主鍵T_NO職工號(hào)字符型10外鍵C_name課程名字符型20C_description課程簡(jiǎn)介字符型1000表5-5選課表字段名稱說(shuō)明數(shù)據(jù)類型長(zhǎng)度備注S_NO學(xué)號(hào)字符型10外鍵C_NO課程號(hào)字符型10外鍵表5-6作業(yè)信息表字段名稱說(shuō)明數(shù)據(jù)類型長(zhǎng)度備注H_NO作業(yè)編號(hào)字符型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課程信息表字段名稱說(shuō)明數(shù)據(jù)類型長(zhǎng)度備注C_NO課程編號(hào)字符型10外鍵T_NO職工號(hào)字符型10外鍵Addres上課地址字符型50StartTime上課時(shí)間字符型20T_name教師名字字符型50表5-8揭示板信息表字段名稱說(shuō)明數(shù)據(jù)類型長(zhǎng)度備注ID問(wèn)題ID(唯一標(biāo)識(shí))字符型主鍵Questioninfo問(wèn)題信息字符型1000Questiontitle問(wèn)題題目字符型100User_NO用戶賬號(hào)(教師/學(xué)生)字符型10Responsetime回復(fù)時(shí)間字符型20Parents_id父類id(ID)字符型100外鍵表5-9公告信息表字段名稱說(shuō)明數(shù)據(jù)類型長(zhǎng)度備注S_A_deadline截止時(shí)間字符型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用戶角色表字段名稱說(shuō)明數(shù)據(jù)類型長(zhǎng)度備注Role用戶角色字符型20User_NO用戶賬號(hào)(教師/學(xué)生)字符型10注:用戶角色(0表示學(xué)生,1表示教師)表5-11教師作業(yè)批改表字段名稱說(shuō)明數(shù)據(jù)類型長(zhǎng)度備注S_NO學(xué)號(hào)字符型10外鍵H_NO作業(yè)編號(hào)字符型10外鍵T_evaluate評(píng)價(jià)字符型5000Score分?jǐn)?shù)整型10表5-12學(xué)生作業(yè)表字段名稱說(shuō)明數(shù)據(jù)類型長(zhǎng)度備注S_NO學(xué)號(hào)字符型10外鍵H_NO作業(yè)編號(hào)字符型10外鍵homeword_text作業(yè)內(nèi)容字符型2000submittime提交時(shí)間字符型20第六章系統(tǒng)分析類建模 6.1順序圖用戶登陸后,點(diǎn)擊觸發(fā)事件,通過(guò)View層的JSP表單提交。由控制層轉(zhuǎn)發(fā)用戶的請(qǐng)求。調(diào)用對(duì)應(yīng)的Action對(duì)業(yè)務(wù)進(jìn)行邏輯處理。通過(guò)Action調(diào)用對(duì)應(yīng)Service、Service通過(guò)框架注入實(shí)例化后調(diào)用Dao對(duì)數(shù)據(jù)庫(kù)進(jìn)行增刪改查,并將結(jié)果層層向上返回,最后通過(guò)Action返回到View層完成一次交互[6]。系統(tǒng)用戶順序圖如圖6-1系統(tǒng)用戶順序圖圖6-1系統(tǒng)用戶順序圖系統(tǒng)順序圖體現(xiàn)了用戶在客戶端發(fā)出請(qǐng)求時(shí),系統(tǒng)是如何實(shí)現(xiàn)這個(gè)功能的。對(duì)數(shù)據(jù)庫(kù)的操作又是什么。系統(tǒng)的數(shù)據(jù)來(lái)源和如何與服務(wù)器端交互的。從MVC的模式來(lái)看,當(dāng)用戶在瀏覽器上觸發(fā)一個(gè)請(qǐng)求時(shí)。系統(tǒng)會(huì)通過(guò)控制器(即web.xml和struts.xml配置文件)轉(zhuǎn)發(fā)請(qǐng)求給業(yè)務(wù)處理層。Struts通過(guò)相應(yīng)的Action調(diào)用不同的Service接口去處理對(duì)應(yīng)的邏輯,而Service通過(guò)Spring的反向控制(IOC)對(duì)其實(shí)例化。讓后調(diào)用對(duì)應(yīng)DAO組件對(duì)數(shù)據(jù)庫(kù)進(jìn)行訪問(wèn)。最后向客戶端瀏覽器返回值。從而實(shí)現(xiàn)客戶的請(qǐng)求。系統(tǒng)管理員順序圖如圖6-2系統(tǒng)管理員順序圖圖6-2系統(tǒng)管理員順序圖6.2活動(dòng)圖系統(tǒng)活動(dòng)圖主要體現(xiàn)了系統(tǒng)的整個(gè)流程。以及在什么情況下用戶該做什么。系統(tǒng)能更直觀的體現(xiàn)出整個(gè)系統(tǒng)進(jìn)出口。具體活動(dòng)圖如圖6-3系統(tǒng)管理分析活動(dòng)圖圖6-3系統(tǒng)管理分析活動(dòng)圖6.3協(xié)作圖用例分析協(xié)作圖主要體現(xiàn)了用戶在請(qǐng)求時(shí),系統(tǒng)要完成整個(gè)過(guò)程需要調(diào)用的一些處理方法。如:登錄請(qǐng)求,當(dāng)Action接收到一個(gè)login請(qǐng)求時(shí),Service需要調(diào)用它的實(shí)現(xiàn)類ServiceImpl.find()方法,通過(guò)Dao接口的實(shí)現(xiàn)類DaoImpl.find()查詢數(shù)據(jù)庫(kù)。判斷這個(gè)用戶名是否存在。若存在則返回該用戶對(duì)象。登錄成功。若不存在則返回空值,該用戶還未注冊(cè)。具體用戶分析協(xié)作圖如圖6-4系統(tǒng)用戶分析協(xié)作圖圖6-4系統(tǒng)用戶分析協(xié)作圖系統(tǒng)管理員擁有對(duì)用戶的數(shù)據(jù)進(jìn)行增刪改查的功能。對(duì)用戶的角色,作業(yè)信息,用戶基本資料等都有相應(yīng)的方法去修改。具體系統(tǒng)管理員分析協(xié)作圖如圖6-5系統(tǒng)管理員分析協(xié)作圖圖6-5系統(tǒng)管理員分析協(xié)作圖6.3分析類圖系統(tǒng)分析類圖體現(xiàn)了數(shù)據(jù)庫(kù)的字段設(shè)計(jì)和操作的方法。其次表與表之間的關(guān)聯(lián)信息,在數(shù)據(jù)查詢時(shí)我們通常要進(jìn)行關(guān)聯(lián)數(shù)據(jù)的查詢,比如,學(xué)生課程表的數(shù)據(jù)就要從教師表(Teacher),課程信息表(Course),課程表(Course_table)中來(lái)。所以通過(guò)分析類圖我們就可以配置Hibernate的關(guān)聯(lián)映射,從而進(jìn)行關(guān)聯(lián)查詢。具體的系統(tǒng)分析類圖如圖6-6系統(tǒng)分析類圖圖6-6系統(tǒng)分析類圖第七章系統(tǒng)詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)7.1用戶界面模塊用戶是每一個(gè)系統(tǒng)的核心部分。用戶的不同一方面也體現(xiàn)了系統(tǒng)的適用范圍。由于教學(xué)互動(dòng)平臺(tái)關(guān)系到學(xué)生的整個(gè)檔案存儲(chǔ)。學(xué)校的管理,以及與用戶學(xué)號(hào),職工號(hào)相關(guān)聯(lián)的信息不變。必須保證用戶的正確性、準(zhǔn)確性。因此需要對(duì)用戶資料進(jìn)行有效的管理,因此用戶管理是教學(xué)互動(dòng)平臺(tái)的重要內(nèi)容。它主要包括用戶注冊(cè)、登錄和驗(yàn)證、用戶注冊(cè)資料的修改更新和用戶注銷等功能[8]。系統(tǒng)實(shí)現(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>其他幾個(gè)文件的配置類似。第三步配置applipicationContext.xml數(shù)據(jù)庫(kù)搭建配置:<<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>其他幾個(gè)配置類似。第四步編寫業(yè)務(wù)處理邏輯在Action新建一個(gè)類如:BBSAction.java繼承ActionAware,主要是獲取內(nèi)置對(duì)象Session、Request等對(duì)象。編寫一個(gè)方法publicStringexecute(){}在方法中使用Spring框架對(duì)屬性privateBBSservicebbSservice進(jìn)行賦值。然后調(diào)用實(shí)現(xiàn)類bbSserviceImpl處理邏輯,調(diào)用BBSDaoImpl進(jìn)行數(shù)據(jù)查詢數(shù)據(jù)庫(kù)。具體查詢?nèi)缦拢簆rivateHibernateTemplatetemplate;publicvoidsetSessionFactory(SessionFactorysessionFactory){template=newHibernateTemplate(sessionFactory); }sessionFactory通過(guò)applicationContext.xml配置進(jìn)行屬性注入<<beanid="mySessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean" scope="singleton"><propertyname="dataSource"ref="mydataSource"></property></bean>然后調(diào)用template.find()、update()、save()對(duì)數(shù)據(jù)庫(kù)進(jìn)行查找、更新、保存操作。整個(gè)調(diào)用的流程圖如圖7-1業(yè)務(wù)處理流程圖圖7-1業(yè)務(wù)處理流程圖7.1.1用戶界面1)實(shí)現(xiàn)目標(biāo)用戶進(jìn)入登陸界面后,輸入自己的用戶名、密碼點(diǎn)擊注冊(cè)。若用戶名不存在,則你還沒(méi)有注冊(cè)。點(diǎn)擊創(chuàng)建一個(gè)新用戶,用戶根據(jù)不同的用戶角色進(jìn)入不同的注冊(cè)。學(xué)生只須填寫一個(gè)Web表單。學(xué)生的學(xué)號(hào)作為登錄的用戶名,學(xué)生一定要記住。這里需要學(xué)生填寫E_mail注冊(cè)是考慮到兩點(diǎn):第一,用戶的E_mail是惟一的,且可以使用的,因?yàn)樽?cè)時(shí)需要向你的E_mail發(fā)送郵箱驗(yàn)證,若你沒(méi)有郵箱驗(yàn)證碼的驗(yàn)證,你是無(wú)法通過(guò)注冊(cè)的;第二,通過(guò)用戶的E_mail可以很方便快捷的與用戶取得聯(lián)系。用戶在提交注冊(cè)信息后,系統(tǒng)會(huì)對(duì)注冊(cè)頁(yè)面填寫的正確性進(jìn)行檢查。這里我們用了Ajax的異步請(qǐng)求對(duì)用戶的輸入信息進(jìn)行了簡(jiǎn)單的驗(yàn)證。對(duì)于不符合要求的填寫是無(wú)法提交表單數(shù)據(jù)的,需要用戶從新填寫。對(duì)于符合要求的注冊(cè)表單,用戶提交信息后,需要向用戶剛剛注冊(cè)的郵箱發(fā)送用郵箱驗(yàn)證碼。用戶登陸自己的郵箱獲取驗(yàn)證碼,提交表單后注冊(cè)提交,注冊(cè)成功。用戶提交的正確注冊(cè)信息將被存入系統(tǒng)的數(shù)據(jù)庫(kù)中。界面的設(shè)計(jì)如圖7-2、7-3、7-4所示圖7-2學(xué)生登錄注冊(cè)界面圖7-3教師注冊(cè)界面圖7-4用戶郵箱驗(yàn)證界面2)實(shí)現(xiàn)過(guò)程界面所設(shè)及的部分Jsp文件學(xué)生點(diǎn)擊創(chuàng)建新用戶時(shí)。進(jìn)入register_rule.jsp選擇用戶角色。進(jìn)入studentregister_form.jsp頁(yè)面、教師進(jìn)入teacher_register_form.jsp填寫注冊(cè)表單。提交表單后進(jìn)入郵箱驗(yàn)證verify_form.jsp頁(yè)面進(jìn)行驗(yàn)證。跳到register_ok.jsp注冊(cè)成功。通過(guò)如上的重要配置文件后調(diào)用DAO層業(yè)務(wù)處理對(duì)數(shù)據(jù)庫(kù)查詢;具體查詢?nèi)缦拢簆ublicpublicvoidsave(Studentstudent)throwsException{ template.save(student);//保存學(xué)生 }publicvoidSaveRule(User_roleuser_role)throwsException{ template.save(user_role);//保存角色 }publicvoidsaveteacher(Teacherteacher)throwsException{ template.save(teacher);//保存教師 }具體代碼請(qǐng)參考《畢業(yè)設(shè)計(jì)源代碼》—com.Yxbgd.User.Action包下RegistAction類。1)用戶登錄程序流程描述當(dāng)用戶輸入用戶名和密碼后首先要進(jìn)行身份驗(yàn)證,如果用戶存在,則成功登錄,反之,如果用戶不存在,提示錯(cuò)誤信息“輸入的用戶名或密碼不存在,請(qǐng)注冊(cè)”,返回登錄界面重新輸入用戶名和密碼。實(shí)現(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é)生登錄互動(dòng)平臺(tái)后可以查看未讀通知公告、學(xué)習(xí)的課程、未讀課程課程通知、待提交的作業(yè)信息。訪問(wèn)揭示板、作業(yè)查詢、課程表查詢、學(xué)生基本信息查詢、學(xué)生密碼修改。圖7-6學(xué)生主功能界面圖7-6學(xué)生主功能界面7.2.1揭示板的實(shí)現(xiàn)根據(jù)主要配置調(diào)用DaoImpl對(duì)數(shù)據(jù)庫(kù)操作;主要方法和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è)計(jì)如圖7-7互動(dòng)答疑圖7-7互動(dòng)答疑代碼參看《畢業(yè)設(shè)計(jì)源代碼》—com/Yxbgd/Main/BBS/Action包下的BBSAction.java類及其他相關(guān)類。7.2.2公告模塊的設(shè)計(jì)公告的設(shè)計(jì)包含兩類;一、系統(tǒng)公告,二、課程公告;課程公告主要有教師發(fā)布的作業(yè)通知和管理員發(fā)布的通知,在數(shù)據(jù)庫(kù)設(shè)計(jì)中有一個(gè)字段角色字段。當(dāng)時(shí)教師發(fā)布時(shí)。該字段被保存為Teacher,當(dāng)系統(tǒng)管理員進(jìn)行操作時(shí)被設(shè)置成System。當(dāng)用戶查看完某一條公告時(shí)系統(tǒng)將查看狀態(tài)更新成字符串‘1’。當(dāng)用戶再次查詢時(shí),系統(tǒng)將按狀態(tài)為‘0’的記錄查詢。所以用戶查看過(guò)的記錄就查詢不出來(lái)了。表結(jié)構(gòu)設(shè)計(jì)如下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對(duì)數(shù)據(jù)庫(kù)操作;主要方法和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è)計(jì)如圖7-8系統(tǒng)公告和未讀課程公告圖7-8系統(tǒng)公告和未讀課程公告代碼參看《畢業(yè)設(shè)計(jì)源代碼》—com/Yxbgd/Main/Action包下的checkS_announcementAction.java類及其他相關(guān)類。7.2.3待提交作業(yè)模塊數(shù)據(jù)庫(kù)設(shè)計(jì)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教師評(píng)價(jià),submit_state作業(yè)提交狀態(tài),學(xué)生為未完成則提交狀態(tài)為0,若學(xué)生完成并已提交,則提交狀態(tài)為1。correct_state為教師批改狀態(tài)。批改為1,未批改為0。教師根據(jù)提交狀態(tài)字段從數(shù)據(jù)庫(kù)中查詢當(dāng)前有哪些作業(yè)要批改,并批改。將批改的作業(yè)分?jǐn)?shù),評(píng)價(jià)等數(shù)據(jù)存入TH教師作業(yè)表中。教師發(fā)布作業(yè)界面如下圖7-9教師作業(yè)發(fā)布作業(yè)批改圖7-9教師作業(yè)發(fā)布作業(yè)批改根據(jù)主要配置調(diào)用DaoImpl對(duì)數(shù)據(jù)庫(kù)操作;主要方法和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)的賬號(hào)等信息。學(xué)生的成績(jī),選課情況等信息都是通過(guò)學(xué)生學(xué)號(hào)進(jìn)行綁定。所以學(xué)生、教師的基本信息管理至關(guān)重要。數(shù)據(jù)庫(kù)設(shè)計(jì):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è)計(jì)如下:用戶角色的不同導(dǎo)致操作的權(quán)限不同,學(xué)生登錄只能查詢自己基本信息。教師可以查詢自己和學(xué)生的信息。教師查詢學(xué)生信息主要通過(guò)Course(課程信息表),SC學(xué)生課程表關(guān)聯(lián)出選擇自己課程的學(xué)生。將學(xué)生學(xué)號(hào),姓名,課程名作為一個(gè)list列表展示出來(lái)。頁(yè)面如下圖7-10教師查詢學(xué)生信息界面圖7-10教師查詢學(xué)生信息界面通過(guò)Teacherteacher=(Teacher)Session.get(“Teacherlogon”);將當(dāng)前登錄賬戶綁定過(guò)來(lái),通過(guò)綁定教師的T_NO從獲取課程表中獲取課程名、課程ID號(hào)。然后根據(jù)課程名從SC查詢出學(xué)生的學(xué)號(hào)。最后從Student中的到學(xué)生list列表。在Jsp中按照l(shuí)ist的名字將學(xué)生的信息循環(huán)迭代出來(lái)。根據(jù)主要配置調(diào)用DaoImpl對(duì)數(shù)據(jù)庫(kù)操作;主要方法和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è)計(jì)源代碼》—com/Yxbgd/User/Action包下的student_massageAction.java類及其他相關(guān)類。7.2.5密碼管理分析與設(shè)計(jì)用戶登錄系統(tǒng)的初始密碼是注冊(cè)密碼,用戶可以登錄系統(tǒng)后進(jìn)行密碼修改。學(xué)生的作業(yè)查詢需要有個(gè)人查詢密碼才可以進(jìn)行查詢。該密碼和學(xué)生登錄密碼一致。修改界面如下圖7-11用戶密碼修改圖7-11用戶密碼修改實(shí)現(xiàn)過(guò)程及簡(jiǎn)單的配置數(shù)據(jù)庫(kù)結(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對(duì)數(shù)據(jù)庫(kù)操作;主要方法和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);}具體代碼請(qǐng)參考《畢業(yè)設(shè)計(jì)源代碼》—com/Yxbgd/User/Action包下的passwordmodifyAction.java類及其他相關(guān)類。7.2.6課程表管理分析與設(shè)計(jì)課程設(shè)計(jì)是為了為學(xué)生本周的學(xué)習(xí)課程做個(gè)合理的規(guī)劃,教師本周
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025企業(yè)標(biāo)準(zhǔn)租車協(xié)議范本
- 公司工作流程管理制度
- 公司環(huán)境體系管理制度
- 湖南省長(zhǎng)沙麓山國(guó)際實(shí)驗(yàn)學(xué)校2025屆高三下學(xué)期二模英語(yǔ)試卷(含答案無(wú)聽力音頻及聽力原文)
- 福建省龍巖市2024~2025學(xué)年 高二下冊(cè)第二次月考(3月)數(shù)學(xué)試卷附解析
- 2025年中考語(yǔ)文(長(zhǎng)沙用)課件:主題4 尋訪家鄉(xiāng)文化講好家鄉(xiāng)故事綜合實(shí)踐活動(dòng)
- 雨水用水量徑流控制計(jì)算書
- 2025屆安徽省宣城市寧國(guó)市中考二模數(shù)學(xué)試卷含答案
- 2024年南充市順慶區(qū)考調(diào)真題
- 西安工程大學(xué)招聘筆試真題2024
- 商業(yè)街區(qū)廣告牌更換施工方案
- 電力行業(yè)A股上市法律服務(wù)方案
- 《M-z光泵原子磁強(qiáng)計(jì)參數(shù)優(yōu)化和相關(guān)模塊設(shè)計(jì)》
- 合同法-005-國(guó)開機(jī)考復(fù)習(xí)資料
- 系統(tǒng)思維與系統(tǒng)決策:系統(tǒng)動(dòng)力學(xué)(中央財(cái)經(jīng)大學(xué))知到智慧樹章節(jié)答案
- 【MOOC】經(jīng)濟(jì)數(shù)學(xué)-微積分(二)-武漢理工大學(xué) 中國(guó)大學(xué)慕課MOOC答案
- 起重機(jī)械吊具、索具檢查記錄表(鋼絲繩)
- 中學(xué)籃球社團(tuán)教案全套
- 湖北省部分高中2025屆高三上學(xué)期11月(期中)聯(lián)考語(yǔ)文試題(含答案)
- 2024年山東省青島市中考地理試題卷(含答案及解析)
- 2024秋期國(guó)家開放大學(xué)本科《經(jīng)濟(jì)學(xué)(本)》一平臺(tái)在線形考(形考任務(wù)1至6)試題及答案
評(píng)論
0/150
提交評(píng)論