基于Web的簡(jiǎn)易圖書(shū)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
基于Web的簡(jiǎn)易圖書(shū)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第2頁(yè)
基于Web的簡(jiǎn)易圖書(shū)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第3頁(yè)
基于Web的簡(jiǎn)易圖書(shū)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第4頁(yè)
基于Web的簡(jiǎn)易圖書(shū)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩53頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

基于Web的簡(jiǎn)易圖書(shū)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)題目:基于Web的簡(jiǎn)易圖書(shū)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)摘要圖書(shū)館是一個(gè)存放書(shū)籍和知識(shí)的地方,匯聚這各種各樣的書(shū)籍,是人們學(xué)習(xí)和查閱新知識(shí)的地方。本文以一個(gè)簡(jiǎn)單圖書(shū)館的工作流程為例設(shè)計(jì)一個(gè)基于Web的簡(jiǎn)易圖書(shū)管理系統(tǒng),滿足于圖書(shū)管理員和讀者們的需求,讓更新圖書(shū)信息和維護(hù)圖書(shū)館正常運(yùn)行更加方便。本文采用JAVA編程語(yǔ)言,MySQL數(shù)據(jù)庫(kù)作為系統(tǒng)數(shù)據(jù)庫(kù)存放信息,MVC設(shè)計(jì)模式實(shí)現(xiàn)高內(nèi)聚低耦合,以B/S的基本框架來(lái)實(shí)現(xiàn)基于Web的簡(jiǎn)易圖書(shū)管理系統(tǒng)。重點(diǎn)開(kāi)發(fā)并實(shí)現(xiàn)系統(tǒng)核心功能模塊,包括:圖書(shū)管理模塊、讀者管理模塊、借閱模塊、圖書(shū)訂單模塊等,經(jīng)過(guò)基本的功能測(cè)試和性能測(cè)試系統(tǒng)基本完善。本文以下幾個(gè)方面來(lái)進(jìn)行工作開(kāi)展:介紹選題背景、目的和意義,了解國(guó)內(nèi)外研究水平和當(dāng)前狀況。經(jīng)過(guò)文獻(xiàn)的查閱、總結(jié)和自身技術(shù)水平,總結(jié)出系統(tǒng)的可行性分析、功能性分析、系統(tǒng)功能設(shè)計(jì)、數(shù)據(jù)庫(kù)設(shè)計(jì)。詳細(xì)設(shè)計(jì)系統(tǒng)每個(gè)功能的具體流程通過(guò)使用Eclipse+Tomcat+MySQL來(lái)完成系統(tǒng)整體實(shí)現(xiàn)。對(duì)完成的功能進(jìn)行測(cè)試,查看是否得出所希望的結(jié)果,對(duì)沒(méi)有到達(dá)期望的功能進(jìn)行優(yōu)化測(cè)試??偨Y(jié)整個(gè)設(shè)計(jì)和實(shí)現(xiàn)的過(guò)程,系統(tǒng)只是基本完善,還有許多可以擴(kuò)展的方向,比如與大數(shù)據(jù)人工智能相結(jié)合等方式。關(guān)鍵字:JAVA編程;MVC設(shè)計(jì)模式;圖書(shū)管理系統(tǒng);J2EEAbstractThelibraryisaplacetostorebooksandknowledge.Itisaplacewherepeoplegatherandlearnallkindsofnewknowledge.ThisarticletakesasimplelibraryworkflowasanexampletodesignasimpleWeb-basedlibrarymanagementsystemthatmeetstheneedsoflibrariansandreaders,makingiteasiertoupdatebookinformationandmaintainthenormaloperationofthelibrary.ThisarticleusesJAVAprogramminglanguage,MySQLdatabaseasthesystemdatabasetostoreinformation,MVCdesignpatterntoachievehighcohesionandlowcoupling,withthebasicframeworkofB/StoimplementasimpleWeb-basedlibrarymanagementsystem.Focusonthedevelopmentandimplementationofthesystem'scorefunctionalmodules,including:bookmanagementmodule,readermanagementmodule,borrowingmodule,bookordermodule,etc.,afterbasicfunctionaltestingandperformancetestingsystemisbasicallyperfect.Thefollowingaspectsofthisarticlewillbecarriedout:(1)Introducethebackground,purposeandsignificanceofthetopic,understandtheresearchlevelandcurrentsituationathomeandabroad.(2)Afterreviewingandsummarizingtheliteratureanditsowntechnicallevel,thefeasibilityanalysis,functionalanalysis,systemfunctiondesign,anddatabasedesignofthesystemaresummarized.(3)ThespecificprocessofdesigningeachfunctionofthesystemindetailthroughtheuseofEclipse+Tomcat+MySQLtocompletetheoverallimplementationofthesystem.(4)Testthecompletedfunctiontoseeifthedesiredresultisobtained,andoptimizethetestforthefunctionthatdoesnotreachtheexpected.(5)Summarizingtheentiredesignandimplementationprocess,thesystemisonlybasicallyperfect,andtherearemanydirectionsthatcanbeexpanded,suchascombiningwithbigdataartificialintelligence.Keywords:JAVAprogramming;MVCdesignpattern;librarymanagementsystem;J2EE目錄TOC\o"1-2"\h\u1引言 51.1選題背景 51.2選題目的 51.3選題意義 51.4國(guó)內(nèi)外研究現(xiàn)狀 62系統(tǒng)分析與設(shè)計(jì) 72.1可行性分析 72.2功能分析 82.3系統(tǒng)設(shè)計(jì) 113系統(tǒng)實(shí)現(xiàn) 253.1借閱功能的實(shí)現(xiàn)及關(guān)鍵技術(shù) 253.2訂購(gòu)功能的實(shí)現(xiàn)及關(guān)鍵技術(shù) 303.3購(gòu)物車(chē)功能的實(shí)現(xiàn)及關(guān)鍵技術(shù) 334系統(tǒng)測(cè)試 364.1多條件連接圖書(shū)查詢模塊測(cè)試 364.2圖書(shū)訂購(gòu)模塊測(cè)試 364.3借閱圖書(shū)模塊測(cè)試 374.4圖書(shū)管理模塊測(cè)試 384.5訂單管理模塊測(cè)試 385結(jié)論與展望 395.1工作總結(jié) 395.2工作展望 40致謝 41參考文獻(xiàn) 42附錄 441引言1.1選題背景隨著人們科學(xué)技術(shù)的不斷發(fā)展,信息技術(shù)領(lǐng)域同樣隨之發(fā)展。隨著信息應(yīng)用的越來(lái)越廣泛,信息化數(shù)據(jù)管理的優(yōu)勢(shì)開(kāi)始凸顯出來(lái),其中圖書(shū)館是最能夠有效的利用信息化數(shù)據(jù)管理的地方之一。目前仍然存在一些地方使用落后傳統(tǒng)的圖書(shū)管理模式,因此選擇設(shè)計(jì)一個(gè)圖書(shū)管理系統(tǒng)來(lái)幫助圖書(shū)進(jìn)行管理能夠有效的給借閱者和管理者帶來(lái)極大的便利,圖書(shū)管理系統(tǒng)可以實(shí)現(xiàn)圖書(shū)的查詢、借閱、訂購(gòu)、歸還等圖書(shū)館所具有的基本功能。由于信息化數(shù)據(jù)的原因,可以更加快速的檢索想要的圖書(shū)[1][2]。1.2選題目的在現(xiàn)在這個(gè)信息社會(huì),信息更新的速度十分的快速。對(duì)于我們來(lái)說(shuō)圖書(shū)館是我們獲取信息和知識(shí)的地方,但隨著科學(xué)技術(shù)的發(fā)展,各種種類(lèi)的圖書(shū)也在不斷的更新。這在信息化系統(tǒng)出現(xiàn)之前,對(duì)于圖書(shū)館管理圖書(shū)來(lái)說(shuō),是一個(gè)非常浪費(fèi)時(shí)間和精力的事情。但隨著技術(shù)的不斷發(fā)展,現(xiàn)代化的圖書(shū)館管理模式的引入,這對(duì)于管理員和讀者來(lái)說(shuō)都是一個(gè)非常有意義的事情[3]。1.3選題意義在圖書(shū)信息化管理系統(tǒng)引入以前,數(shù)萬(wàn)甚至數(shù)十萬(wàn)的書(shū)籍的信息記錄、信息更新、借閱記錄登記等工作都需要圖書(shū)管理員人工操作[4]。在大量的工作下,不僅工作效率低,而且出錯(cuò)概率高,隨著時(shí)間的積累,對(duì)于日后維護(hù)來(lái)說(shuō)十分的不利。在圖書(shū)信息化管理系統(tǒng)引入后,在管理圖書(shū)信息更新以及圖書(shū)借閱登記方面有了明顯的提高,信息更新速度快,圖書(shū)借閱效率高,同時(shí)還節(jié)約了大量的人力資源,減少圖書(shū)館的支出,充分利用人力資源。圖書(shū)信息化管理系統(tǒng)的好處不僅僅于此,我們可以在原來(lái)的基礎(chǔ)上開(kāi)設(shè)新的功能,如今的物流發(fā)展快速,可以說(shuō)是哪里都能送達(dá),所有圖書(shū)館也可以開(kāi)展圖書(shū)訂購(gòu)的功能[5],順應(yīng)時(shí)代潮流,增加圖書(shū)館的收入,這樣可以更好的提高圖書(shū)館的經(jīng)濟(jì)效益。1.4國(guó)內(nèi)外研究現(xiàn)狀經(jīng)查閱文獻(xiàn)資料,外國(guó)的圖書(shū)管理系統(tǒng)的源頭在1954年,美國(guó)海軍的武器試驗(yàn)中心在首次在NOIS系統(tǒng)IBM701上進(jìn)行的單元匹配搜索[6]。三年后,IBM研究員開(kāi)發(fā)了一種對(duì)于文字自動(dòng)提取、分類(lèi)和標(biāo)引,這就是首例信息檢索應(yīng)用于圖書(shū)館[7],這是外國(guó)圖書(shū)館自動(dòng)化系統(tǒng)的開(kāi)始。在九十年代中后期,在這時(shí)期,互聯(lián)網(wǎng)的發(fā)展,window出現(xiàn)的圖形化界面的使用[8],一系列先進(jìn)技術(shù)的出現(xiàn),如數(shù)據(jù)庫(kù)、java技術(shù)和網(wǎng)絡(luò)技術(shù)的應(yīng)用,讓許多的商家意識(shí)到了圖書(shū)館應(yīng)該應(yīng)用這些新的技術(shù)來(lái)完成圖書(shū)管理信息化[9]。在這之后就出現(xiàn)了許多代表性的圖書(shū)管理系統(tǒng)。例如,以色列ExLibris公司的Aleph500,美國(guó)Endeavor公司的Voyager,美國(guó)SirSi公司的Unicorn,以及美國(guó)InnovativeInterfaces公司的Millennium等[10,11]。我國(guó)的圖書(shū)管理系統(tǒng)是在上世紀(jì)70年代的時(shí)候開(kāi)始引進(jìn)外國(guó)的先進(jìn)技術(shù),在之后的十年里,我國(guó)通過(guò)外國(guó)的技術(shù)開(kāi)始仿照開(kāi)發(fā)實(shí)現(xiàn)了圖書(shū)和文獻(xiàn)的信息化檢索。又過(guò)了十年的時(shí)間,在我國(guó)不斷的學(xué)習(xí)和積累中,開(kāi)發(fā)出了適合我國(guó)中文信息的管理系統(tǒng)。當(dāng)時(shí)清華大學(xué)自主開(kāi)發(fā)了CUJA圖書(shū)管理系統(tǒng),這就標(biāo)志了我國(guó)在這方面的技術(shù)進(jìn)入了自主研發(fā)的階段。到了21世紀(jì)的時(shí)候,隨著Web2.0和Library2.0的研究所帶來(lái)新的理念和想法。Library2.0方式融入圖書(shū)管理中,帶來(lái)新的變革,成為圖書(shū)管理系統(tǒng)發(fā)展的新方向。圖書(shū)管理系統(tǒng)在各個(gè)高校應(yīng)用最多,因?yàn)閳D書(shū)館是學(xué)生和老師獲取信息和知識(shí)的來(lái)源,因此在技術(shù)的發(fā)展上面也不斷的更新。南京大學(xué)圖書(shū)館利用圖書(shū)館2.0理論和Web2.0技術(shù)對(duì)OPAC(OpenPublicAccessCatalogue)、圖書(shū)數(shù)據(jù)共享以及平臺(tái)建設(shè)等取得了巨大進(jìn)步[12]。上海交通大學(xué)圖書(shū)館通過(guò)用戶為中心的Web2.0發(fā)展基于“思源探索”O(jiān)PAC檢索平臺(tái),實(shí)現(xiàn)圖書(shū)館資源和電子資源的一站式的發(fā)現(xiàn)和獲取,讀者也可以自己喜歡的標(biāo)簽,發(fā)表自己的評(píng)論,使讀者融入Library2.0的理念中[13]。大部分高校都有自己專門(mén)的圖書(shū)管理系,這些系統(tǒng)融合了圖書(shū)館2.0的管理模式理念,可以更加便捷的檢索圖書(shū),同時(shí)與用戶的交互性也大大的提升了。2系統(tǒng)分析與設(shè)計(jì)2.1可行性分析2.1.1經(jīng)濟(jì)可行性圖書(shū)管理系統(tǒng)是在J2EE的平臺(tái)上開(kāi)發(fā)的,使用的軟件和jar包都可以在網(wǎng)上下載,Mysql數(shù)據(jù)庫(kù)也是開(kāi)源的,Tomcat本地服務(wù)器也可以在網(wǎng)上下載。系統(tǒng)的成本主要在開(kāi)發(fā)和維護(hù)上面,沒(méi)有太大的經(jīng)濟(jì)負(fù)擔(dān),而且圖書(shū)管理系統(tǒng)開(kāi)發(fā)完成可以有效的管理圖書(shū)管的資源,節(jié)省大量的人力物力,圖書(shū)管理員可以比較輕松的管理圖書(shū)館龐大的書(shū)籍資源。同時(shí),對(duì)于讀者來(lái)說(shuō)可以更加方便的借閱和訂購(gòu)圖書(shū)。所以本次開(kāi)發(fā)所產(chǎn)生的效益大于開(kāi)發(fā)所需成本,因此從經(jīng)濟(jì)方面來(lái)講是可以執(zhí)行的[14]。2.1.2技術(shù)可行性本次采用JAVA+JSP+MVC設(shè)計(jì)模式+MySQL數(shù)據(jù)庫(kù)。通過(guò)java來(lái)編寫(xiě)功能代碼,jsp完成頁(yè)面設(shè)計(jì),MVC模式保證了系統(tǒng)代碼的可拓展性和可維護(hù)性,在添加、刪除和修改代碼上提供便利的方法。只需要改動(dòng)部分代碼,但不會(huì)影響整體實(shí)現(xiàn)高內(nèi)聚低耦合的方式。頁(yè)面上采用的技術(shù)是HTML5+CSS3+JQuery+Ajax+JSP技術(shù)來(lái)實(shí)現(xiàn)前端界面,應(yīng)用Tomcat服務(wù)器,通過(guò)Eclipse[15]進(jìn)行本次系統(tǒng)的設(shè)計(jì)開(kāi)發(fā)。(1)JAVA編程語(yǔ)言JAVA編程語(yǔ)言是在C++語(yǔ)言的基礎(chǔ)上發(fā)展來(lái)的,具有了C++的特性同時(shí)由新生成了自己的特性,成為了一個(gè)全新的編程語(yǔ)言。java是一個(gè)純面向?qū)ο蟮脑O(shè)計(jì)的語(yǔ)言,它具有良好的安全性,夸平臺(tái)性、自動(dòng)回收垃圾的機(jī)制等。相較于C++繁瑣復(fù)雜的過(guò)程來(lái)講,java相對(duì)要簡(jiǎn)單一些[16],JAVA可以寫(xiě)桌面程序、Web應(yīng)用、分布式系統(tǒng)、嵌入式系統(tǒng)應(yīng)用于分布式的網(wǎng)絡(luò)環(huán)境中[17][18]。MySql數(shù)據(jù)庫(kù)MySql數(shù)據(jù)庫(kù)是一個(gè)小型的關(guān)系數(shù)據(jù)庫(kù),是基于Linux系統(tǒng)下開(kāi)發(fā)出來(lái)的數(shù)據(jù)庫(kù),由于Linux是開(kāi)源的所有MySql也是開(kāi)源的數(shù)據(jù)庫(kù)[19]。同時(shí)它使用的是標(biāo)準(zhǔn)的SQL數(shù)據(jù)語(yǔ)言形式,盡管功能并不是十分的強(qiáng)大,但是基本滿足開(kāi)發(fā)的需求,而且由于源代碼是開(kāi)放的,這樣可以在這些代碼上進(jìn)行進(jìn)一步的開(kāi)發(fā)和完善。JAVA中有專門(mén)應(yīng)用于連接數(shù)據(jù)庫(kù)的方式,JDBC[20](JavaDataBaseConnectivity,java數(shù)據(jù)庫(kù)連接)是一種用于執(zhí)行SQL語(yǔ)句的JavaAPI,可以為多種關(guān)系數(shù)據(jù)庫(kù)提供統(tǒng)一訪問(wèn),它由一組用Java語(yǔ)言編寫(xiě)的類(lèi)和接口組成。(3)MVC設(shè)計(jì)模式MVC設(shè)計(jì)模式[21]主要應(yīng)用于J2EE的平臺(tái)上,適用于開(kāi)發(fā)Web項(xiàng)目,MVC全名是ModelViewController,是模型(model)-視圖(view)-控制器(controller)的縮寫(xiě),是一種用于設(shè)計(jì)創(chuàng)建Web應(yīng)用程序表現(xiàn)層的模式,MVC中每個(gè)部分各司其職:1.Model(模型):指的是數(shù)據(jù)的模型,一般用來(lái)封裝數(shù)據(jù)。2.View(視圖):通常指的就是我們的網(wǎng)頁(yè)有jsp或者h(yuǎn)tml格式的格式,作用是展示數(shù)據(jù)的,通常視圖是依據(jù)模型數(shù)據(jù)創(chuàng)建的。3.Controller(控制器):是應(yīng)用程序中處理用戶交互的部分,作用一般就是處理程序邏輯的,控制器[22]一般由Servlet來(lái)實(shí)現(xiàn)。通過(guò)以上技術(shù),在技術(shù)方面來(lái)講是可以實(shí)現(xiàn)的。2.2功能分析這次的系統(tǒng)是為了滿足讀者借閱,訂購(gòu)。管理員更好的整合圖書(shū)館的文獻(xiàn),圖書(shū)和資料。我在網(wǎng)上查詢了圖書(shū)管理的流程,在這個(gè)基礎(chǔ)上定制了本次的圖書(shū)管理系統(tǒng)。讀者通可以查詢圖書(shū)、借閱圖書(shū)、訂購(gòu)圖書(shū)。管理員負(fù)責(zé)上架新的圖書(shū)和維護(hù)圖書(shū)信息、讀者信息的增加、修改和刪除。負(fù)責(zé)幫助讀者歸還圖書(shū),記錄罰款記錄,處理讀者訂單信息。通過(guò)這些需求的制定,保證了整個(gè)圖書(shū)管理系統(tǒng)的科學(xué)性和高效性[23]。本次設(shè)計(jì)的系統(tǒng)有兩大模塊[24],一個(gè)是用戶模塊,一個(gè)是管理員模塊[25]。由這兩個(gè)模塊組成。其中讀者模塊含有,讀者登錄、圖書(shū)查詢、圖書(shū)借閱、圖書(shū)訂購(gòu)、罰款支付。下面是讀者的用例分析圖2-1所示圖2-1讀者用例分析圖圖書(shū)管理員模塊,主要包含圖書(shū)查詢,圖書(shū)管理,借閱管理,讀者管理,訂單處理,圖書(shū)歸還管理,罰款記錄管理。如圖2-2所示圖2-2管理員用例分析圖基于web的簡(jiǎn)單圖書(shū)管理系統(tǒng)是一個(gè)快捷、便利的后臺(tái)圖書(shū)管理系統(tǒng),設(shè)計(jì)規(guī)劃了完整的圖書(shū)管理功能。相關(guān)的功能需求如圖3-3所示圖2-3圖書(shū)管理系統(tǒng)功能圖圖書(shū)管理系統(tǒng)[26][27]包括,圖書(shū)管理、讀者管理、借閱管理、訂單管理、圖書(shū)歸還管理、圖書(shū)查詢、圖書(shū)借閱、圖書(shū)訂購(gòu)、圖書(shū)罰款管理。圖書(shū)管理是管理員將圖書(shū)的信息記錄到系統(tǒng)中,方便讀者的借閱和訂購(gòu),同時(shí)管理員可以刪除圖書(shū)信息或者修改圖書(shū)信息。讀者管理是管理員可以添加讀者信息和修改讀者信息,同時(shí)可以查看讀者的借閱狀態(tài),如果讀者有違規(guī)行為可以加入黑名單讓其無(wú)法進(jìn)行系統(tǒng)的操作。借閱管理是管理員對(duì)于讀者借閱圖書(shū)后的信息進(jìn)行查詢,讀者可以提前進(jìn)行預(yù)約想要借閱的圖書(shū),然后來(lái)圖書(shū)館找管理員取得圖書(shū),管理確認(rèn)后改變?cè)搱D書(shū)的借閱狀態(tài)。訂單管理是管理員在讀者訂購(gòu)圖書(shū)的時(shí)候,可以查詢到讀者的訂單、支付情況以及是否決定發(fā)貨,然后將訂單狀態(tài)改變成已發(fā)貨。圖書(shū)歸還管理是當(dāng)讀者想要?dú)w還圖書(shū)的時(shí)候,向管理員提出,然后管理員幫助讀者歸還圖書(shū)。圖書(shū)查詢是讀者對(duì)于管理上架的圖書(shū)信息進(jìn)行查找通過(guò)書(shū)號(hào)、書(shū)名、類(lèi)別進(jìn)行查找,找到自己想訂購(gòu)或者借閱的圖書(shū)進(jìn)行操作。圖書(shū)借閱,讀者通過(guò)圖書(shū)查詢,找到想要借閱的圖書(shū),然后申請(qǐng)預(yù)約,再前往圖書(shū)館取得該圖書(shū),管理員確認(rèn)后獲取該圖書(shū)。圖書(shū)訂購(gòu),讀者可以在查詢圖書(shū)信息,選擇想要的圖書(shū),加入購(gòu)物車(chē),然后進(jìn)行付款,轉(zhuǎn)到訂單頁(yè)面,填寫(xiě)收件地址。之后在我的訂單這個(gè)頁(yè)面查看訂單狀態(tài)及所購(gòu)圖書(shū)的詳細(xì)情況。圖書(shū)罰款歸還,讀者若是逾期歸還則會(huì)生成罰款記錄,讀者需要繳納,相應(yīng)罰款金額,否則容易被加入系統(tǒng)黑名單,無(wú)法進(jìn)行圖書(shū)借閱和訂單。2.3系統(tǒng)設(shè)計(jì)2.3.1系統(tǒng)概要設(shè)計(jì)用戶流程讀者通過(guò)讀者編號(hào)進(jìn)行登錄,若是沒(méi)有賬號(hào)可以先進(jìn)行注冊(cè)。注冊(cè)完成后會(huì)獲得本人的讀者編號(hào),這個(gè)需要記住因?yàn)槭堑卿浵到y(tǒng)的賬號(hào)。登錄系統(tǒng)后可以使用圖書(shū)查詢、圖書(shū)借閱、圖書(shū)訂購(gòu)的功能,還可以查詢自己的個(gè)人信息、借閱記錄、歸還記錄和罰款記錄,還可以修改密碼,具體流程如圖2-4所示。圖2-4用戶流程圖管理員流程管理員通過(guò)管理員編號(hào)進(jìn)行登錄,登錄系統(tǒng)后可以使用以下功能圖書(shū)管理功能,包括圖書(shū)查詢、圖書(shū)入庫(kù)、圖書(shū)刪除。讀者管理功能,包括讀者查詢、讀者登記、是否加入黑名單、刪除讀者。訂單管理功能,包括訂單查詢、發(fā)貨通知。借閱管理功能,包括確認(rèn)預(yù)約圖書(shū)申請(qǐng)、填寫(xiě)借閱信息、確認(rèn)續(xù)借申請(qǐng)、幫助圖書(shū)歸還。具體的流程如圖2-5所示圖2-5管理員流程圖2.3.2系統(tǒng)詳細(xì)設(shè)計(jì)用戶模塊圖書(shū)借閱圖書(shū)借閱模塊就是通過(guò)系統(tǒng)向圖書(shū)館借閱圖書(shū),并在規(guī)定時(shí)間內(nèi)歸還所借閱的圖書(shū)的過(guò)程。借閱過(guò)程如圖4-1所示圖2-4圖書(shū)借閱流程圖用戶利用讀者編號(hào)進(jìn)行登錄,是否注冊(cè),若是沒(méi)注冊(cè)則需要尋找管理員進(jìn)行注冊(cè),若是注冊(cè)的話則查詢讀者狀態(tài)是否加入黑名單,若加入請(qǐng)聯(lián)系管理員處理,若是沒(méi)有加入黑名單則判斷下圖書(shū)庫(kù)存數(shù)是否小于1若是則因?yàn)閹?kù)存不足則無(wú)法借閱。判斷讀者已借圖書(shū)是否小于8,若是小于8,則可以借閱圖書(shū)。圖書(shū)訂購(gòu)訂購(gòu)模塊就是讀者通過(guò)查詢圖書(shū),然后選擇想要的書(shū)籍加入到購(gòu)車(chē)中,然后下單,填寫(xiě)地址就會(huì)添加訂單。圖2-5圖書(shū)訂購(gòu)流程圖讀者通過(guò)讀者編號(hào)登錄,查看是否注冊(cè),未注冊(cè)者可先進(jìn)行注冊(cè),然后驗(yàn)證是否加入黑名單,若加入黑名單則需要聯(lián)系管理員,解除黑名單才能進(jìn)行有關(guān)系統(tǒng)的相關(guān)操作,然后選擇想要的圖書(shū)加入購(gòu)物車(chē),同一種類(lèi)型的圖書(shū)不能超過(guò)三本,這樣是為了防止館內(nèi)庫(kù)存不足,通過(guò)購(gòu)物車(chē)進(jìn)行下單,將訂單信息存入數(shù)據(jù)庫(kù)。管理模塊訂單管理訂單管理模塊是可以確認(rèn)訂單信息,并且郵寄物品給收貨人的功能。圖2-6訂單管理流程圖管理員登錄后,進(jìn)入訂購(gòu)管理模塊,確認(rèn)讀者訂單的詳細(xì)信息、地址、手機(jī)號(hào)、收件人。然后通過(guò)物流的方式將訂購(gòu)的物品發(fā)送到收件人的手上,然后通過(guò)訂單管理模塊,修改訂單狀態(tài),讓讀者知道物品已發(fā)送。借閱管理圖書(shū)借閱管理模塊,有三個(gè)功能,分別是圖書(shū)預(yù)約處理、圖書(shū)續(xù)借處理、圖書(shū)歸還。圖2-7所示圖2-7圖書(shū)借閱管理流程圖第一個(gè)是預(yù)約圖書(shū)的處理,讀者預(yù)約圖書(shū),之后來(lái)到圖書(shū)館拿書(shū),然后管理員確認(rèn)讀者的預(yù)約就可以借閱圖書(shū)了。第二個(gè)是讀者圖書(shū)續(xù)借處理,當(dāng)讀者想繼續(xù)增加借閱時(shí)間的話,就可以提前續(xù)借,管理員確認(rèn)后就將借閱時(shí)間延長(zhǎng)一個(gè)月。最后一個(gè)是圖書(shū)歸還的功能,讀者歸還圖書(shū)后,由管理確認(rèn),然后更改借閱狀態(tài),并且添加歸還記錄,若是逾期則添加罰款記錄。2.3.3數(shù)據(jù)庫(kù)概要設(shè)計(jì)圖書(shū)表其中包含的屬性有:圖書(shū)編號(hào)、書(shū)名、出版日期、庫(kù)存、作者、圖書(shū)簡(jiǎn)介、價(jià)格、出版社、管理編號(hào)、圖書(shū)類(lèi)別十項(xiàng)內(nèi)容。圖書(shū)表E-R圖如圖2-8所示,圖2-8圖書(shū)表E-R圖管理員表其中包含的屬性有:管理編號(hào)、用戶名、性別、密碼四項(xiàng)內(nèi)容。具體如圖2-9所示,圖2-9管理員表E-R圖讀者表其中包含的屬性有:讀者編號(hào)、用戶名、性別、年齡、郵箱、密碼、最大借閱數(shù)量、已借數(shù)量、讀者狀態(tài)九項(xiàng)內(nèi)容。具體如圖2-10所示,圖2-10讀者表E-R圖借閱記錄表其中包含的屬性有:借閱編號(hào)、借閱時(shí)間、應(yīng)還時(shí)間、圖書(shū)編號(hào)、讀者編號(hào)、借閱狀態(tài)六項(xiàng)內(nèi)容。具體如圖2-11所示,圖2-11借閱記錄表E-R圖歸還記錄表其中包含的屬性有:歸還編號(hào)、歸還時(shí)間、逾期天數(shù)、圖書(shū)編號(hào)、讀者編號(hào)、圖書(shū)編號(hào)、管理編號(hào)六項(xiàng)內(nèi)容。具體如圖2-12所示,圖2-12歸還記錄表E-R圖罰款記錄表其中包含的屬性有:罰款編號(hào)、逾期天數(shù)、罰款金額、罰款時(shí)間、圖書(shū)編號(hào)、讀者編號(hào)、罰單狀態(tài)七項(xiàng)內(nèi)容。具體如圖2-13所示,圖2-13罰款記錄表E-R圖訂單表其中包含的屬性有:訂單編號(hào)、訂購(gòu)時(shí)間、總計(jì)、訂單狀態(tài)、訂購(gòu)者、地址、手機(jī)號(hào)、收件人九項(xiàng)內(nèi)容。具體如圖2-14所示,圖2-14訂單表E-R圖訂單詳情表其中包含的屬性有:訂單詳情編號(hào)、數(shù)量、小計(jì)、圖書(shū)編號(hào)、訂單編號(hào)五項(xiàng)內(nèi)容。具體如圖2-15所示,圖2-15訂單詳情表E-R圖2.3.4數(shù)據(jù)庫(kù)詳細(xì)設(shè)計(jì)圖書(shū)表屬性名數(shù)據(jù)種類(lèi)及長(zhǎng)度完整性約束是否為空?qǐng)D書(shū)編號(hào)(bid)Int(15)PKNotnull名稱(bookname)Varchar(10)無(wú)Notnull出版日期(btime)Datetime無(wú)Notnull庫(kù)存(bcount)Varchar(5)無(wú)Notnull作者(author)Varchar(10)無(wú)Notnull書(shū)籍簡(jiǎn)介(btext)Varchar(100)無(wú)Null價(jià)格(price)Varchar(10)無(wú)Notnull出版社(bpress)Varchar(10)無(wú)Notnull管理編號(hào)(aid)Int(15)FKNotnull類(lèi)別(kname)Varchar(5)無(wú)Notnull表2-1圖書(shū)表管理員表屬性名數(shù)據(jù)種類(lèi)及長(zhǎng)度完整性約束是否為空管理編號(hào)(aid)Int(15)PKNotnull姓名(username)Varchar(15)無(wú)Notnull密碼(pwd)Varchar(15)無(wú)Notnull性別(sex)Varchar(5)無(wú)Notnull表2-2管理員表讀者表屬性名數(shù)據(jù)種類(lèi)及長(zhǎng)度完整性約束是否為空讀者編號(hào)(rid)Int(15)PKNotnull姓名(username)Varchar(10)無(wú)Notnull性別(sex)Varchar(2)無(wú)Notnull年齡(age)Int(10)無(wú)Notnull郵箱(email)Varchar(20)無(wú)Notnull密碼(pwd)Varchar(15)無(wú)Notnull最大借閱數(shù)(bbcount)Varchar(10)無(wú)Notnull已借閱數(shù)(bbrcount)Varchar(10)無(wú)Notnull讀者狀態(tài)(rstatus)Varchar(2)無(wú)Notnull表2-3讀者表借閱記錄表屬性名數(shù)據(jù)種類(lèi)及長(zhǎng)度完整性約束是否為空借閱編號(hào)(bbid)Int(15)PKNotnull借閱時(shí)間(bbtime)Date無(wú)Notnull應(yīng)還時(shí)間(rbtime)Date無(wú)Notnull圖書(shū)編號(hào)(bid)Int(15)FKNotnull讀者編號(hào)(rid)Int(15)FKNotnull借閱狀態(tài)(status)Int(2)Notnull表2-4借閱記錄表歸還記錄表屬性名數(shù)據(jù)種類(lèi)及長(zhǎng)度完整性約束是否為空歸還編號(hào)(rbid)Int(15)PKNotnull歸還時(shí)間(rbtime)Date無(wú)Notnull逾期天數(shù)(bday)Varchar(10)無(wú)Notnull圖書(shū)編號(hào)(bid)Int(15)FKNotnull讀者編號(hào)(rid)Int(15)FKNotnull管理編號(hào)(aid)Int(15)FKNotnull表2-5歸還記錄表罰款記錄表屬性名數(shù)據(jù)種類(lèi)及長(zhǎng)度完整性約束是否為空罰款編號(hào)(fid)Int(15)PKNotnull逾期天數(shù)(fday)Varchar(10)無(wú)Notnull金額(fmoney)Varchar(10)無(wú)Notnull罰款時(shí)間(ftime)Date無(wú)Notnull罰單狀態(tài)(fstatus)Varchar(5)無(wú)Notnull管理編號(hào)(aid)Int(15)FKNotnull讀者編號(hào)(rid)Int(15)FKNotnull表2-6罰款記錄表訂單表屬性名數(shù)據(jù)種類(lèi)及長(zhǎng)度完整性約束是否為空訂單編號(hào)(oid)Varchar(35)PKNotnull訂購(gòu)時(shí)間(ordertime)Date無(wú)Notnull總計(jì)(total)Varchar(10)無(wú)Notnull訂單狀態(tài)(state)Varchar(10)無(wú)Notnull訂購(gòu)者(owner)Int(15)FKNotnull地址(address)Varchar(30)無(wú)Null收件人(gowner)Varchar(20)無(wú)Null手機(jī)號(hào)(mphone)Varchar(30)無(wú)Null表2-7訂單表訂單詳情表屬性名數(shù)據(jù)種類(lèi)及長(zhǎng)度完整性約束是否為空編號(hào)(iid)Int(20)PKNotnull數(shù)量(count)Int(20)無(wú)Notnull小計(jì)(subtotal)Varchar(20)無(wú)Notnull圖書(shū)編號(hào)(bid)Int(15)FKNotnull訂單編號(hào)(oid)Int(15)FKNotnull表2-8訂單詳情表3系統(tǒng)實(shí)現(xiàn)3.1借閱功能的實(shí)現(xiàn)及關(guān)鍵技術(shù)讀者登錄系統(tǒng)后,通過(guò)查詢功能查詢想要借閱的圖書(shū)。然后向圖書(shū)館提前預(yù)約申請(qǐng)。讀者可以前往圖書(shū)館向管理取得預(yù)約的圖書(shū)。如果讀者已借圖書(shū)超過(guò)8本書(shū)或者想要借閱的書(shū)庫(kù)存小于1本的話則無(wú)法預(yù)約該圖書(shū)。代碼實(shí)現(xiàn)//1.創(chuàng)建session對(duì)象HttpSessionsession=request.getSession();//2.獲取session域中的用戶IDStringrid=session.getAttribute("rid").toString();//6.獲取書(shū)號(hào)和數(shù)量Stringbid=request.getParameter("bid");Stringbcount=request.getParameter("bcount");Stringbstatus="1";//預(yù)約intbcount1=Integer.parseInt(bcount);if(bcount1!=0&&bcount1>0){BorrowServiceservice=newBorrowServiceImpl();Map<String,Object>map=service.findByBbrcount(rid);Stringbbrcount1=(String)map.get("bbrcount");intbbrcount=Integer.parseInt(bbrcount1);intbbrcount2=bbrcount+1;if(bbrcount<8){SimpleDateFormatformat=newSimpleDateFormat("yyyy-MM-dd");Calendarc=Calendar.getInstance();c.setTime(newDate());c.add(Calendar.MONTH,+1);Datem=c.getTime();Stringrbtime=format.format(m);//4.獲取當(dāng)前時(shí)間Datedate=newDate();Stringbbtime=format.format(date);//5.創(chuàng)建map集合對(duì)象Map<String,Object>map1=newHashMap<String,Object>();//7.借閱后數(shù)量減一intbcount2=Integer.parseInt(bcount)-1;Stringbcount3=Integer.toString(bcount2);//8.將所有的數(shù)據(jù)寫(xiě)入map集合map1.put("bbtime",bbtime);map1.put("rbtime",rbtime);map1.put("bid",bid);map1.put("rid",rid);map1.put("bcount",bcount3);map1.put("bbrcount",bbrcount2);map1.put("bstatus",bstatus);Borrowaddborrow=newBorrow();try{BeanUtils.populate(addborrow,map1);}catch(IllegalAccessExceptione2){//TODOAuto-generatedcatchblocke2.printStackTrace();}catch(InvocationTargetExceptione2){//TODOAuto-generatedcatchblocke2.printStackTrace();}service.borrowbook(addborrow);BookupdateCount=newBook();try{BeanUtils.populate(updateCount,map1);}catch(IllegalAccessExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}catch(InvocationTargetExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}//12.當(dāng)借閱記錄插入時(shí),圖書(shū)數(shù)量減一BookServiceservice1=newBookServiceImpl();service1.UpdateCount(updateCount);ReaderupBbrcount=newReader();try{BeanUtils.populate(upBbrcount,map1);}catch(IllegalAccessExceptione1){//TODOAuto-generatedcatchblocke1.printStackTrace();}catch(InvocationTargetExceptione1){//TODOAuto-generatedcatchblocke1.printStackTrace();}//13.借閱時(shí)讀者借閱次數(shù)+1service.UpdateBbrcount(upBbrcount);try{BeanUtils.populate(upBbrcount,map1);}catch(IllegalAccessExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}catch(InvocationTargetExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}request.setAttribute("reader_msg","預(yù)約成功");request.getRequestDispatcher("/views/reader/booklist.jsp").forward(request,response);}else{request.setAttribute("reader_msg","讀者借閱數(shù)量已滿!!");request.getRequestDispatcher("/views/reader/booklist.jsp").forward(request,response);}}else{request.setAttribute("reader_msg","借閱失敗庫(kù)存不足??!");request.getRequestDispatcher("/views/reader/booklist.jsp").forward(request,response);}演示最后一個(gè)便是成功預(yù)約的結(jié)果,這時(shí)候可以前往圖書(shū)館拿預(yù)約的書(shū)籍。3.2訂購(gòu)功能的實(shí)現(xiàn)及關(guān)鍵技術(shù)讀者登錄系統(tǒng)后才,查詢想要訂購(gòu)的圖書(shū),加入購(gòu)物車(chē)然后從購(gòu)物車(chē)內(nèi)進(jìn)行結(jié)算。結(jié)算之后填寫(xiě)地址、收件人、手機(jī)號(hào),可以在我的訂單中進(jìn)行支付,然后等待管理員發(fā)貨。代碼實(shí)現(xiàn)Cartcart=(Cart)request.getSession().getAttribute("cart");HttpSessionsession=request.getSession();MyOrdermyOrder=newMyOrder();longorderNo=this.generateOrderNo();Stringoid=String.valueOf(orderNo);myOrder.setOid(oid);myOrder.setOrdertime(newDate());//設(shè)置下單時(shí)間(使用當(dāng)前系統(tǒng)時(shí)間)myOrder.setState(1);//設(shè)置狀態(tài)為1,表示未付款//得到當(dāng)前用戶,設(shè)置訂單所有者Stringrid=session.getAttribute("rid").toString();myOrder.setOwner(rid);//設(shè)置訂單所有者myOrder.setTotal(cart.getTotal());//設(shè)置訂單合計(jì),從cart中獲取List<MyOrderItem>orderItemList=newArrayList<MyOrderItem>();for(CartItemcartItem:cart.getItmes()){MyOrderItemoi=newMyOrderItem();//創(chuàng)建訂單條目oi.setCount(cartItem.getCount());//設(shè)置條目數(shù)量oi.setBook(cartItem.getProduct());//設(shè)置條目的圖書(shū)oi.setSubtotal(cartItem.getSubtotal());//設(shè)置小計(jì)oi.setOrder(myOrder);//設(shè)置所屬訂單orderItemList.add(oi);//把訂單條目添加到訂單條目集合中}myOrder.setOrderItemList(orderItemList);cart.clearCart();MyOrderServiceservice=newMyOrderServiceImpl();service.addMyOrder(myOrder);request.setAttribute("order",myOrder);request.getRequestDispatcher("/views/reader/order.jsp").forward(request,response);演示3.3購(gòu)物車(chē)功能的實(shí)現(xiàn)及關(guān)鍵技術(shù)讀者登錄后查詢圖書(shū)列表,找到相要購(gòu)買(mǎi)的圖書(shū)加入購(gòu)物車(chē),加入購(gòu)物車(chē)需要滿足幾個(gè)條件,首先庫(kù)存必須大于0,如果沒(méi)有庫(kù)存也無(wú)法訂購(gòu)。其次是,每一次訂購(gòu)?fù)瑯拥臅?shū)只能加入三本進(jìn)入購(gòu)物車(chē)中。代碼實(shí)現(xiàn)//1、獲取bid和數(shù)量Stringbid=request.getParameter("bid");intcount=Integer.parseInt(request.getParameter("count"));//2、調(diào)用Service通過(guò)bid獲取一個(gè)商品MyOrderServiceservice=newMyOrderServiceImpl();Bookproduct=service.findBookById(bid);//3組裝成cartitemCartItemcartItem=newCartItem(product,count);Cartcart=getCart(request);//4、添加到購(gòu)物車(chē)中cart.add2Cart(cartItem);StringBuilderresult=newStringBuilder();result.append("{").append("\"bookname\":\""+product.getBookname()+"\"").append(",").append("\"total\":"+cart.getTotal()).append("}");response.setContentType("text/javascript");response.setCharacterEncoding("utf-8");//5、重定向response.getWriter().print(result.toString());/***添加到購(gòu)物車(chē)*@paramitem購(gòu)物車(chē)項(xiàng)*/publicvoidadd2Cart(CartItemitem){//1.先判斷購(gòu)物車(chē)中有無(wú)該商品//1.1先獲取商品的idIntegerbid=item.getProduct().getBid();Integerbcount=item.getProduct().getBcount();if(bcount>1){//庫(kù)存是否大于1if(map.containsKey(bid)){//獲取購(gòu)物車(chē)中購(gòu)物車(chē)項(xiàng)CartItemoItem=map.get(bid);if(oItem.getCount()<3&&oItem.getCount()<bcount)//一本書(shū)一次訂購(gòu)不超過(guò)3本,而且訂購(gòu)數(shù)不能超過(guò)庫(kù)存數(shù)量。{oItem.setCount(oItem.getCount()+item.getCount());total+=item.getSubtotal();}}else{//沒(méi)有將購(gòu)物車(chē)項(xiàng)添加進(jìn)去map.put(bid,item);total+=item.getSubtotal();}}}演示4系統(tǒng)測(cè)試多條件連接圖書(shū)查詢模塊測(cè)試測(cè)試編號(hào)測(cè)試項(xiàng)操作期望結(jié)果真實(shí)結(jié)果1.輸入關(guān)鍵字(115)書(shū)號(hào)點(diǎn)擊查詢。1.查詢出現(xiàn)編號(hào)為115的書(shū)籍。1.列表出現(xiàn)書(shū)號(hào)帶有155的所有書(shū)籍。2.輸入關(guān)鍵字(java)書(shū)名點(diǎn)擊查詢2.查詢出現(xiàn)名字帶有java的書(shū)籍。2.列表出現(xiàn)名稱帶有java的書(shū)籍。001多條件連接圖書(shū)查詢3.輸入關(guān)鍵字(計(jì)算機(jī))類(lèi)別點(diǎn)擊查詢查詢3.查詢出現(xiàn)類(lèi)別為計(jì)算機(jī)的書(shū)籍。3.列表出現(xiàn)所有類(lèi)別為計(jì)算機(jī)類(lèi)的書(shū)籍。4.輸入關(guān)鍵字(java程序設(shè)計(jì)加上計(jì)算機(jī)類(lèi))書(shū)名加類(lèi)別點(diǎn)擊查詢4.查詢出現(xiàn)名字帶有java程序設(shè)計(jì)而且是計(jì)算機(jī)類(lèi)的書(shū)籍。4.列表出現(xiàn)帶有java程序設(shè)計(jì)而且是計(jì)算機(jī)類(lèi)的書(shū)籍。表4-1多條件圖書(shū)查詢用例表圖書(shū)訂購(gòu)模塊測(cè)試測(cè)試編號(hào)測(cè)試項(xiàng)操作期望結(jié)果真實(shí)結(jié)果1.讀者登錄系統(tǒng),點(diǎn)擊圖書(shū)列表,找到想要訂購(gòu)的書(shū)籍,點(diǎn)擊加入購(gòu)物車(chē)。1.購(gòu)物車(chē)中存在讀者加入的書(shū)籍。測(cè)試結(jié)果和預(yù)期的結(jié)果相同。002圖書(shū)訂購(gòu)測(cè)試2.讀者再選擇其他的書(shū)籍加入購(gòu)物車(chē)。2.再次加入的書(shū)籍也可以在購(gòu)物車(chē)中找到??梢蕴砑由唐返劫?gòu)物車(chē)中且可以在購(gòu)物車(chē)中查看。3.刪除購(gòu)物車(chē)信息。3.可以正常的刪除購(gòu)物車(chē)信息。測(cè)試結(jié)果和預(yù)期的結(jié)果相同。003填寫(xiě)地址信息1.填寫(xiě)地址信息。表4-2圖書(shū)訂購(gòu)用例表借閱圖書(shū)模塊測(cè)試測(cè)試編號(hào)測(cè)試項(xiàng)操作預(yù)期結(jié)果真實(shí)結(jié)果004圖書(shū)借閱測(cè)試讀者登錄點(diǎn)擊圖書(shū)列表,查詢想要借閱的書(shū)籍,點(diǎn)擊預(yù)約,等帶管理員審核。1.借閱列表中出現(xiàn)預(yù)約申請(qǐng)的記錄。1.管理可以在借閱列表查詢到預(yù)約申請(qǐng)。005圖書(shū)續(xù)借測(cè)試2.點(diǎn)擊借閱記錄,找到想要續(xù)借的書(shū)籍,點(diǎn)擊續(xù)借,等待管理審員核。1.借閱記錄中借閱狀態(tài)變成續(xù)借狀態(tài)。1.管理可以在借閱列表中查詢到續(xù)借申請(qǐng)。表4-3圖書(shū)借閱用例表圖書(shū)管理模塊測(cè)試測(cè)試編號(hào)測(cè)試項(xiàng)操作預(yù)期結(jié)果真實(shí)結(jié)果006圖書(shū)增加測(cè)試1.管理員登錄后進(jìn)入圖書(shū)管理頁(yè)面,進(jìn)行圖書(shū)入庫(kù)操作,增加新的書(shū)籍信息。1.通過(guò)圖書(shū)查詢出現(xiàn)新增加的圖書(shū)信息。1.后臺(tái)能查詢到新增加的圖書(shū)信息。007圖書(shū)修改測(cè)試1.管理員登錄進(jìn)入圖書(shū)管理頁(yè)面,選擇想要修改的書(shū)籍信息,進(jìn)行修改。1.后臺(tái)查詢到修改后的信息。1.后臺(tái)能查詢到修改該書(shū)后的修改信息。008圖書(shū)刪除測(cè)試1.管理員登錄進(jìn)入圖書(shū)管理頁(yè)面,選擇要?jiǎng)h除的書(shū)籍信息,進(jìn)行刪除。1.后臺(tái)查詢不到刪除的圖書(shū)信息。1.后臺(tái)查詢不到刪除的圖書(shū)信息。表4-4圖書(shū)管理用例表訂單管理模塊測(cè)試測(cè)試編號(hào)測(cè)試項(xiàng)操作預(yù)期結(jié)果真實(shí)結(jié)果1.管理員通過(guò)輸入讀者編號(hào)點(diǎn)擊查詢出1.訂單列表出現(xiàn)所有該編號(hào)的訂單。1.訂單列表出現(xiàn)讀者編號(hào)一致的所有訂單。009查詢訂單測(cè)試2.管理員通過(guò)輸入收件人點(diǎn)擊查詢2.出現(xiàn)有關(guān)于收件人的所有訂單。2.出現(xiàn)所有關(guān)于這個(gè)收件人的訂單。3.管理員通過(guò)輸入地址查詢訂單3.出現(xiàn)所有有關(guān)于輸入地址的所有訂單。3.出現(xiàn)地址一致的訂單。表4-5圖書(shū)訂購(gòu)管理用例表5結(jié)論與展望5.1工作總結(jié)本次設(shè)計(jì)和實(shí)現(xiàn)的基于web的圖書(shū)管理系統(tǒng)可以有效的管理圖書(shū)館的資源,幫助管理人員更快速、更方便的檢索、增加圖書(shū)信息,同時(shí)也更好的管理好讀者的信息。對(duì)于讀者來(lái)講多了一個(gè)網(wǎng)上圖書(shū)管理系統(tǒng),可以讓他們更好的尋找到自己喜歡的圖書(shū),可以選擇借閱或者訂購(gòu)都可以,大大的提高了借閱圖書(shū)的效率,同時(shí)節(jié)省的管理員來(lái)引導(dǎo)讀者的工作,減輕管理人員的負(fù)擔(dān)。這個(gè)工作主要有以下幾點(diǎn):敘述了國(guó)內(nèi)外圖書(shū)管理系統(tǒng)的形式,以及發(fā)展趨勢(shì)。進(jìn)行了系統(tǒng)的可行性分析、詳細(xì)設(shè)計(jì)、數(shù)據(jù)庫(kù)設(shè)計(jì)等方面,其中包括經(jīng)濟(jì)可行性的分析、技術(shù)可行可行性的分析,同時(shí)設(shè)計(jì)了系統(tǒng)的兩大模塊中的功能,用戶功能和管理員功能。設(shè)計(jì)了系統(tǒng)數(shù)據(jù)庫(kù),建立個(gè)表之間的聯(lián)系。編碼實(shí)現(xiàn)了系統(tǒng)的整體功能,通過(guò)springtemplate[28]來(lái)完成對(duì)數(shù)據(jù)庫(kù)信息的增刪改查,同時(shí)利用MVC設(shè)計(jì)模式實(shí)現(xiàn)了分層操作,讓業(yè)務(wù)邏輯層和數(shù)據(jù)訪問(wèn)層分開(kāi)。這樣就更加容易的增加新的功能和進(jìn)行維護(hù)。通過(guò)測(cè)試來(lái)展現(xiàn)系統(tǒng)的功能,從系統(tǒng)中選出幾個(gè)代表性的功能來(lái)展示出該系統(tǒng)的能力。5.2工作展望本系統(tǒng)雖然實(shí)現(xiàn)的圖書(shū)管理系統(tǒng)的所有基本功能,但是仍然存在一些不足之處。本系統(tǒng)只有PC端,在現(xiàn)在這個(gè)發(fā)展飛速的時(shí)代,相較于PC端訪問(wèn)web[29]來(lái)說(shuō),移動(dòng)端[30]的應(yīng)用更加的廣泛,希望以后能開(kāi)發(fā)出移動(dòng)應(yīng)用APP來(lái)讓讀者的用戶體驗(yàn)更加完美。本次使用的開(kāi)發(fā)技術(shù)還可以更加的簡(jiǎn)便,同時(shí)也可以增加一些新的功能,在現(xiàn)在人工智能[31]和大數(shù)據(jù)[32]發(fā)展的時(shí)代,可以將這里個(gè)的技術(shù)應(yīng)用上去,讓系統(tǒng)更加的人性化。最后在今后的學(xué)習(xí)中可以學(xué)會(huì)更好的技術(shù),了解到更多的功能來(lái)完成本次的圖書(shū)管理系統(tǒng)。致謝在此感謝我的指導(dǎo)老師楊紅衛(wèi)老師對(duì)我的指導(dǎo),楊紅衛(wèi)老師在我遇到困惑時(shí)都耐心的替我解答,在我完成論文后還替我細(xì)心的檢查其中的錯(cuò)誤并指出,讓我能夠更好的完成我的論文。同時(shí)也感謝計(jì)算機(jī)網(wǎng)絡(luò)空間安全學(xué)院對(duì)我的培養(yǎng),這大學(xué)四年來(lái)教過(guò)我的老師們,是你們成就今天的我,我會(huì)繼續(xù)努力的。最后感謝各個(gè)評(píng)審的老師,謝謝你們。參考文獻(xiàn)[1]羅小朝民辦學(xué)院圖書(shū)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].成都:西南交通大學(xué),2018,25-26.[2]成曉瑜談?wù)剤D書(shū)館計(jì)算機(jī)編目工作中的常見(jiàn)問(wèn)題[J].晉圖學(xué)刊,2008:60-62.[3]張毅.圖書(shū)館信息管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].電子科技大學(xué),2012.[4]徐樹(shù)堅(jiān).高校圖書(shū)管理系統(tǒng)應(yīng)用分析研究[J].電腦與電信,2013,(05):76-77.[5]李小平,易麗萍.網(wǎng)上書(shū)店?duì)I銷(xiāo)策略與圖書(shū)采訪模式創(chuàng)新研究[J].市場(chǎng)論壇,2009,(05):83-84.[6]羅小朝.民辦學(xué)院圖書(shū)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].西南交通大學(xué),2018.[7]王曉輝.淺談我國(guó)圖書(shū)館自動(dòng)化建設(shè)現(xiàn)狀與發(fā)展趨勢(shì)[J].現(xiàn)代情報(bào),2007,(07):18-19+23.[8]王海歆.昆明學(xué)院圖書(shū)館借閱管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].電子科技大學(xué),2016.[9]張秀德.圖書(shū)管理系統(tǒng)的需求分析與設(shè)計(jì)[J].職業(yè),2016,(27):154-155.[10]吳鋒珍.高校圖書(shū)管理系統(tǒng)的數(shù)據(jù)庫(kù)設(shè)計(jì)[J].湖南郵電職業(yè)技術(shù)學(xué)院學(xué)報(bào),2016,15(02):32-35.[11]王兆媛.基于Django框架的圖書(shū)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].吉林大學(xué),2016.[12]MariaC.,AndreeJ.R.OpenForum:TheFutureofLibrarySystems[J].TheSerialsLibrarian,2010,(9):167-173.[13]BarbaraA.,HsinL.C.PublicLibraryStaff’sPerceivedValueandSatisfactionofanOpenSourceLibrarySystem[J].TheElectronicLibrary,2014,(3):390-402.[14]楊清蘭.基于J2EE的圖書(shū)管理系統(tǒng)分析與功能模塊劃分[J].內(nèi)蒙古科技與經(jīng)濟(jì),2014,(07):74-76.[15]多姆.Eclipse3高級(jí)編程[B].清華大學(xué)出版社,2006.\t"/http/77726476706e69737468656265737421fbf952d2243e635930068cb8/KXReader/_blank"[16]葉紅美.計(jì)算機(jī)軟件Java編程特點(diǎn)及其技術(shù)分析[J].電腦編程技巧與維護(hù),2017(02):13-14.\t"/http/77726476706e69737468656265737421fbf952d2243e635930068cb8/KXReader/_blank"[17]周寶亮,王敏.計(jì)算機(jī)軟件開(kāi)發(fā)中JAVA編程語(yǔ)言的應(yīng)用[J].電子技術(shù)與軟件工程,2017(03):61-62.\t"/http/77726476706e69737468656265737421fbf952d2243e635930068cb8/KXReader/_blank"[18]呂萱.計(jì)算機(jī)軟件開(kāi)發(fā)中Java編程語(yǔ)言的應(yīng)用[J].信息與電腦(理論版),2018(08):67-69.[19]鄭智方,李彬,劉世坤,李鵬.探究mysql的運(yùn)用實(shí)例-對(duì)數(shù)據(jù)庫(kù)的宏觀把握[J].科技風(fēng),2020,(06):129.[20]劉翠霞.Java數(shù)據(jù)庫(kù)連接池的原理與應(yīng)用[J].無(wú)線互聯(lián)科技,2020,17(04):167-168.\t"/http/77726476706e69737468656265737421fbf952d2243e635930068cb8/KXReader/_blank"[21]韓凌波.基于mvc架構(gòu)的普法考試系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].軟件,2015,36(3):132-134.\t"/http/77726476706e69737468656265737421fbf952d2243e635930068cb8/KXReader/_blank"[22]任女爾,董長(zhǎng)青,陳辰.基于既有J2EE項(xiàng)目構(gòu)建高性能Web應(yīng)用方法研究[J].電腦知識(shí)與技術(shù),2017,13(32):76-79.[23]密君英.圖書(shū)管理系統(tǒng)的數(shù)據(jù)庫(kù)設(shè)計(jì)與實(shí)現(xiàn)[J].中小企業(yè)管理與科技(上旬刊),2011,(09):234.[24]周永宏,肖國(guó)政.基于Servlet的在線圖書(shū)管理系統(tǒng)設(shè)計(jì)[J].科技風(fēng),2019,(21):15.[25]陳平.圖書(shū)館圖書(shū)管理系統(tǒng)的結(jié)構(gòu)設(shè)計(jì)及其功能實(shí)現(xiàn)[J].信息技術(shù)與信息化,2019,(10):56-58.[26]高玉玲.網(wǎng)上圖書(shū)管理系統(tǒng)的設(shè)計(jì)[J].電子技術(shù)與軟件工程,2017,(18):203+220.[27]蘇寧馨,章華,張帆,金建.基于MVC架構(gòu)的在線圖書(shū)借閱及管理系統(tǒng)的設(shè)計(jì)[J].綏化學(xué)院學(xué)報(bào),2019,39(05):135-138.[28]張少應(yīng),陳慶榮.基于Spring的數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)研究[J].信息技術(shù),2016,(10):81-84.[29]鄭春雷.圖書(shū)館管理系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā)[D].成都:電子科技大學(xué),2011.[30]王貽芳.淺議數(shù)字圖書(shū)館[J].高校實(shí)驗(yàn)與裝備,2013,9(1):28-61.[28][31]王紅,袁小舒,雷菊霞.人工智能:圖書(shū)館應(yīng)用架構(gòu)和服務(wù)模式的重塑[J].現(xiàn)代情報(bào),2019,39(09):101-108.[32]王伊.大數(shù)據(jù)時(shí)代圖書(shū)館科學(xué)數(shù)據(jù)管理與服務(wù)的探索[J].科技風(fēng),2020,(09):112.附件圖書(shū)表管理代碼 protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ request.setCharacterEncoding("utf-8"); Stringmethod=request.getParameter("method"); if("addbook".equals(method)){ AddBook(request,response); }elseif("deletebook".equals(method)){ DeleteBook(request,response); }elseif("findbookAlllist".equals(method)){ FindBookAlllist(request,response); }elseif("findBookById".equals(method)){ findBookById(request,response); }elseif("updateBook".equals(method)){ UpdateBook(request,response); }elseif("delselect".equals(method)){ DelSelect(request,response); }elseif("findreaderbooklist".equals(method)){ FindReaderBookList(request,response); }elseif("msg".equals(method)){ BookMsg(request,response); } } privatevoidBookMsg(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ Stringbid=request.getParameter("bid"); BookServiceservice=newBookServiceImpl(); Bookbook1=service.findBookById(bid); request.setAttribute("book2",book1); request.getRequestDispatcher("/views/reader/bookmsg.jsp").forward(request,response); } privatevoidFindReaderBookList(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ StringcurrentPage=request.getParameter("currentPage");//當(dāng)前頁(yè)碼 Stringrows=request.getParameter("rows");//每頁(yè)顯示條數(shù) if(currentPage==null||"".equals(currentPage)){ currentPage="1"; } //健壯性檢查,即如果頁(yè)面顯示的行數(shù)為空或null時(shí),設(shè)定為5 if(rows==null||"".equals(rows)){ rows="5"; } BookServiceservice=newBookServiceImpl(); List<Book>books=service.findAll(); PageBean<Book>pb=service.findBookByPage(currentPage,rows); request.setAttribute("books",books); request.setAttribute("pb",pb); request.getRequestDispatcher("/views/reader/booklist.jsp").forward(request,response); } privatevoidDelSelect(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ //1.獲取所有選中的id String[]ids=request.getParameterValues("abid"); //2.調(diào)用service刪除 if(ids!=null)//如果ids為null,說(shuō)明沒(méi)有選中的任何條目,則不執(zhí)行刪除操作。 { BookServiceservice=newBookServiceImpl(); service.delSelecteBook(ids); } //3.跳轉(zhuǎn)查詢所有Servlet response.sendRedirect(request.getContextPath()+"/bookServlet?method=findbookAlllist"); } privatevoidUpdateBook(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ Map<String,String[]>map=request.getParameterMap(); BookupdateBook=newBook(); try{ BeanUtils.populate(updateBook,map); }catch(IllegalAccessExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }catch(InvocationTargetExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } BookServiceservice=newBookServiceImpl(); service.UpdateBook(updateBook); response.sendRedirect(request.getContextPath()+"/bookServlet?method=findbookAlllist"); } privatevoidfindBookById(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ Stringbid=request.getParameter("bid"); BookServiceservice=newBookServiceImpl(); Bookbook1=service.findBookById(bid); request.setAttribute("book1",book1); request.getRequestDispatcher("/views/updatebook.jsp").forward(request,response); } privatevoidFindBookAlllist(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ StringcurrentPage=request.getParameter("currentPage");//當(dāng)前頁(yè)碼 Stringrows=request.getParameter("rows");//每頁(yè)顯示條數(shù) if(currentPage==null||"".equals(currentPage)){ currentPage="1"; } //健壯性檢查,即如果頁(yè)面顯示的行數(shù)為空或null時(shí),設(shè)定為5 if(rows==null||"".equals(rows)){ rows="5"; } BookServiceservice=newBookServiceImpl(); PageBean<Book>pb=service.findBookByPage(currentPage,rows); request.setAttribute("pb",pb); request.getRequestDispatcher("/views/booklist.jsp").forward(request,response); } privatevoidDeleteBook(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ Stringbid=request.getParameter("bid"); BaseServiceservice1=newBaseServiceImpl(); service1.deleteBook(bid); BookServiceservice=newBookServiceImpl(); service.deleteBook(bid); response.sendRedirect(request.getContextPath()+"/bookServlet?method=findbookAlllist"); } privatevoidAddBook(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ Map<String,String[]>map=request.getParameterMap(); Bookaddbook=newBook(); try{ BeanUtils.populate(addbook,map); }catch(IllegalAccessExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }catch(InvocationTargetExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } BookServiceservice=newBookServiceImpl(); service.addReader(addbook); response.sendRedirect(request.getContextPath()+"/bookServlet?method=findbookAlllist"); }借閱表管理代碼protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ request.setCharacterEncoding("utf-8"); Stringmethod=request.getParameter("method"); if("borrowbook".equals(method)){ BorrowBook(request,response); }elseif("findborrowlist".equals(method)){ FindBorrowList(request,response); }elseif("getborrowlist".equals(method)){ GetBorrowList(request,response); }elseif("rlend".equals(method)){ Rlend(request,response); }elseif("booking".equals(method)){ Booking(request,response); }elseif("delet".equals(method)){ Delete(request,response); } } privatevoidDelete(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ //1.創(chuàng)建session對(duì)象 HttpSessionsession=request.getSession(); //2.獲取session域中的用戶ID Stringrid=session.getAttribute("rid").toString(); Stringbbid=request.getParameter("bbid"); BorrowServiceservice=newBorrowServiceImpl(); service.delete(bbid); response.sendRedirect(request.getContextPath()+"/borrowSearchServlet?rid="+rid); } privatevoidBooking(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ Stringbstatus=request.getParameter("bstatus"); Stringbbid=request.getParameter("bbid"); BorrowServiceservice=newBorrowServiceImpl(); //預(yù)約功能 if(Integer.parseInt(bstatus)==1){ service.changeStatus(bbid); request.setAttribute("borrow_msg","借閱成功?。?!"); request.getRequestDispatcher("/views/aborrowlist.jsp").forward(request,response); } } privatevoidRlend(HttpServletRequestrequest,HttpServletResponsere

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論