版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 本科畢業(yè)設計(論文)</p><p><b> ( 屆)</b></p><p> 論文題目基于UML的圖書館管理系統(tǒng)的設計與實現(xiàn)</p><p> 所在學院 </p><p> 專業(yè)班級 信息管理與信息系統(tǒng) &
2、lt;/p><p> 學生姓名 學號 </p><p> 指導教師 職稱 </p><p> 完成日期 年 月 日</p><p><b> 誠 信 申 明</b></p>
3、<p> 我申明,所呈交的論文(設計)是本人在老師指導下進行的研究工作及取得的研究成果。據(jù)我查證,除了文中特別加以標注和致謝的地方外,論文(設計)中不包含其他人已經發(fā)表或撰寫過的研究成果,也不包含為獲得______或其他教育機構的學位或證書而使用過的材料。我承諾,論文(設計)中的所有內容均真實、可信。</p><p> 論文(設計)作者簽名: 簽名日期: 年 月 日<
4、/p><p><b> 授 權 申 明</b></p><p> 學校有權保留送交論文(設計)的原件,允許論文(設計)被查閱和借閱,學??梢怨颊撐模ㄔO計)的全部或部分內容,可以影印、縮印或其他復制手段保存論文(設計),學校必須嚴格按照授權對論文(設計)進行處理,不得超越授權對論文(設計)進行任意處置。</p><p> 論文(設計)作者簽名
5、: 簽名日期: 年 月 日</p><p> 基于UML的圖書館管理系統(tǒng)的設計與實現(xiàn)</p><p> 摘要:圖書館是搜集、整理、保管、傳播和利用文獻信息、為社會提供服務的文化事業(yè)機構,它承擔著保存人類文化遺產、進行社會教育、傳遞文獻信息和開發(fā)智力資源的職能。隨著信息資源的不斷增長,就需要圖書館管理系統(tǒng)的來更加簡單、效率地支持圖書館的職能。</p>
6、<p> 本系統(tǒng)采用MyEclipse作為開發(fā)工具,JSP作為開發(fā)語言,MySQL為后臺數(shù)據(jù)庫管理系統(tǒng)。能夠實現(xiàn)對圖書的查詢,添加,瀏覽,刪除等功能。文中主要描述了系統(tǒng)的背景和開發(fā)技術方案,分析了系統(tǒng)的需求分析和設計,并且對每個模塊的設計與實施做出了詳細的描述,系統(tǒng)基本能滿足用戶查詢和閱覽圖書信息資源的功能。</p><p> 關鍵字:圖書館;管理;數(shù)據(jù)庫;模塊</p><p
7、> Based on UML library management system design and implementation</p><p> Abstract:The library is collecting, sorting out, keeping, dissemination and using literature information, provide services of c
8、ultural institutions for social, it undertakes the functions of conserved human cultural heritage, carry out social education, transfer literature information and developing intelligence resources.</p><p>
9、 The system USES the MyEclipse as a receptionist for development tool, JSP as a development language, MySQL backend database management system. Can realize for librarians query, add, browse, delete etc. Function. This pa
10、per mainly describes the background and development of technology system scheme, and the analysis of system analysis and design, and needs of each module design and implementation, and makes a detailed description of the
11、 basic system can satisfy user query and reading books inform</p><p> Key words:The library; Management; Database; module</p><p><b> 目 錄</b></p><p> 1 系統(tǒng)概述………………………
12、…………………………………………………………………1</p><p> 1.1 項目背景簡介…………………………………………………………………………… 1</p><p> 1.2 國內外發(fā)展現(xiàn)狀………………………………………………………………………… 1</p><p> 1.3 項目目標…………………………………………………………………………………
13、2</p><p> 2 開發(fā)技術方案選擇………………………………………………………………………………3</p><p> 2.1 JSP技術簡介………………………………………………………………………………3</p><p> 2.2 Struts的概述………………………………………………………………………………4</p><p>
14、; 2.3 MYSQL簡介………………………………………………………………………………5</p><p> 3 系統(tǒng)分析…………………………………………………………………………………………7</p><p> 3.1 需求調查………………………………………………………………………………… 7</p><p> 3.2 用例圖設計……………………………
15、………………………………………………… 8</p><p> 3.3 實體類圖設計……………………………………………………………………………10</p><p> 4 系統(tǒng)設計……………………………………………………………………………………… 13</p><p> 4.1 系統(tǒng)功能介紹……………………………………………………………………………13<
16、;/p><p> 4.2 用例設計…………………………………………………………………………………13</p><p> 4.3 數(shù)據(jù)庫設計………………………………………………………………………………17</p><p> 4.3.1 數(shù)據(jù)庫概念結構設計……………………………………………………………17</p><p> 4.3.2
17、 數(shù)據(jù)庫數(shù)據(jù)表設計………………………………………………………………20</p><p> 5 系統(tǒng)實現(xiàn)……………………………………………………………………………………… 24</p><p> 5.1 數(shù)據(jù)庫的連接……………………………………………………………………………24</p><p> 5.2 系統(tǒng)登陸模塊的實現(xiàn)…………………………………………
18、…………………………27</p><p> 5.3 圖書信息管理模塊的實現(xiàn)………………………………………………………………29</p><p> 5.3.1 圖書類別信息添加功能實現(xiàn)…………………………………………………… 29</p><p> 5.3.2 圖書類別信息維護功能實現(xiàn)…………………………………………………… 31</p>&
19、lt;p> 5.3.3 圖書信息添加功能實現(xiàn)………………………………………………………… 32</p><p> 5.4 讀者信息管理模塊的實現(xiàn)………………………………………………………………36</p><p> 5.4.1 讀者類別信息添加功能實現(xiàn)……………………………………………………36</p><p> 5.4.2 讀者信息添加功能實
20、現(xiàn)…………………………………………………………38</p><p> 5.4.3 讀者信息管理功能實現(xiàn)……………………………………………………… 41</p><p> 5.5 圖書借閱管理模塊的實現(xiàn)………………………………………………………………42</p><p> 5.5.1 圖書借閱功能實現(xiàn)………………………………………………………………43&
21、lt;/p><p> 5.5.2 圖書續(xù)借功能實現(xiàn)………………………………………………………………46</p><p> 5.5.3 圖書歸還功能實現(xiàn)…………………………………………………………… 49</p><p> 5.6 系統(tǒng)管理模塊的實現(xiàn)……………………………………………………………………51</p><p> 5.6.
22、1 管理員權限設置功能的實現(xiàn)………………………………………………… 51</p><p> 5.6.2 個人口令修改功能實現(xiàn)…………………………………………………………53</p><p> 6 系統(tǒng)測試……………………………………………………………………………………… 55</p><p> 6.1 測試方案……………………………………………………
23、……………………………55</p><p> 6.2 系統(tǒng)評價…………………………………………………………………………………56</p><p> 7 總結…………………………………………………………………………………………… 57</p><p> 致 謝………………………………………………………………………………………………58</p>
24、<p> 參考文獻……………………………………………………………………………………………59</p><p><b> 1 系統(tǒng)概述</b></p><p> 1.1 項目背景簡介</p><p> 圖書館管理信息系統(tǒng)(Library Management Information System,LMIS)就是將傳統(tǒng)圖書館
25、業(yè)務的手工操作轉變成由計算機管理,即對圖書館的圖書、期刊、音像資料等各種載體文獻,實現(xiàn)采訪、編目、典藏、流通、檢索以及相關業(yè)務工作的計算機化、信息化管理[1]。</p><p> 自從人類步入信息時代后,創(chuàng)造的信息爆炸式增長,再加上信息數(shù)字化技術,通訊技術,多媒體技術的迅速發(fā)展和網絡的普及,圖書館作為信息資源的集散地,需要不斷更新繁多的各類圖書信息,電子信息以及借閱信息,再加上圖書館工作人員數(shù)量有限,傳統(tǒng)的基于
26、文本和表格的紙質介質的手工統(tǒng)計和操作已經無法滿足圖書館日益增長的各類業(yè)務需求。再者,需要處理的數(shù)據(jù)量十分龐大,人工統(tǒng)計過程非常容易出錯,對出錯信息的重新檢查和查找也十分得繁瑣,這些都將為廣大讀者帶來不必要的麻煩。因此傳統(tǒng)手工操作隨著時代的發(fā)展,效率越來越低,造成大量的人力,物力的浪費。為了使讀者在圖書館的借書還書等業(yè)務更加方便,有效地簡化讀者借還書手續(xù),提高圖書借閱率,避免因為手工操作出錯導致的讀者與管理人員之間不必要的爭執(zhí)等不該出現(xiàn)的
27、問題,因此亟待需要有一套能夠有效處理圖書館日常各項業(yè)務和具備各個相關功能的圖書館管理系統(tǒng),使圖書館管理工作規(guī)范化,程序化,系統(tǒng)化,提高圖書館信息處理的效率和準確度[2]。</p><p> 1.2 國內外發(fā)展現(xiàn)狀</p><p> 圖書館管理系統(tǒng)的發(fā)展階段按關鍵特征劃分為三個階段:第一階段從手工操作到計算機操作,第二階段是從只有單個模塊系統(tǒng)到兩個或者多個模塊系統(tǒng)以及從單一功能到多功能
28、的轉變,第三階段是從圖書館提供的服務來劃分的,從直接提供面對面的單個圖書館資源的服務到可以提供在線服務的、多個圖書館的資源的服務,第四階段從只能提供圖書館紙質資源到能提供多種網絡資源和在線多媒體資源,從主要是功能的集成到對不同類型資源的轉變。</p><p> 可見,圖書館管理業(yè)務中計算機進行自動化管理的比重不斷增加,但是目前在研究過程中,主要存在如下問題:一是人們對圖書館信息管理系統(tǒng)這一概念的理解過于狹隘,再
29、加上很多圖書館缺乏圖書館管理信息系統(tǒng)建設的指導,因此在很大程度上限制了計算機管理系統(tǒng)在圖書館工作中的深入使用。二是目前很少有圖書館管理系統(tǒng)能夠可以實現(xiàn)辦公自動化管理和知識管理能力,決策支持能力。具體主要體現(xiàn)在如下幾個方面。首先,系統(tǒng)不易維護。圖書館管理系統(tǒng)大多數(shù)采用C/S結構,這種模式是一種兩層結構的分布模式,開發(fā)的應用程序裝在客戶端中,因此當需要改動客戶端程序的時候,需要將客戶端程序重新安裝。另外,由于軟件發(fā)開過于依靠高校,缺乏公司的
30、經營理念,因此系統(tǒng)的補丁和升級不夠,維護也不及時,對用戶的意見不重視,甚至完全忽視。其次,系統(tǒng)難移植和集成。大多數(shù)系統(tǒng)都為了商業(yè)利益而采取技術保護,因此用戶很難按照自己的需求對現(xiàn)有的系統(tǒng)采取嵌入新程序的方式。而且現(xiàn)在圖書館管理系統(tǒng)的趨勢是系統(tǒng)接口和數(shù)據(jù)的共享,但是由于圖書館管理系統(tǒng)的提供是多個廠商和平臺來完成導致這個趨勢無法達成或者很難達成。再者,系統(tǒng)缺乏雙向交流互動。這是由2個原因導致的:一方面開發(fā)商,</p><
31、p><b> 1.3 項目目標</b></p><p> 本次畢業(yè)設計就是開發(fā)一個圖書館管理系統(tǒng),并通過該系統(tǒng)處理常見的圖書館相關業(yè)務。本系統(tǒng)的目標是:</p><p> ?。?)借閱者可以通過系統(tǒng)查詢書籍信息。</p><p> ?。?)借閱者能夠借閱書籍和歸還書籍。</p><p> ?。?)圖書管理員能
32、夠處理借閱者的借閱和還書。</p><p> ?。?)系統(tǒng)管理員可以對系統(tǒng)的數(shù)據(jù)進行維護,如增加、刪除、更新書目,增加、刪除和更新借閱者帳戶。 </p><p> 2 開發(fā)技術方案選擇</p><p> 本系統(tǒng)選擇的開發(fā)技術語言為JSP,系統(tǒng)在Microsoft Windows XP下開發(fā),所采用的開發(fā)工具主要是myEclipse6.5,選擇的數(shù)據(jù)庫為MySQ
33、L。發(fā)布平臺為TOMCAT6.0服務器端運行,客戶端的IE版本需要在6.0以上。下面分別對編程環(huán)境以及數(shù)據(jù)庫MySQL做介紹分析。</p><p> 2.1 JSP技術簡介</p><p> Web服務從由簡單網頁構成的靜態(tài)服務網站,發(fā)展到可以交互執(zhí)行一些復雜步驟的動態(tài)服務網站,這就需要和其他服務整合,需要多個服務能夠一起無縫地協(xié)同工作,需要能夠創(chuàng)建出與設備無關的應用程序,需要能夠容
34、易地協(xié)調網絡上的各個服務的操作步驟,容易地創(chuàng)建新的用戶化的服務[4]。</p><p> Java是一種簡單易用、完全面向對象、具有平臺無關性且安全可靠的主要面向Internet的開發(fā)工具。JSP(Java Server Page)技術讓Java成為了基于Web的應用程序的首選開發(fā)工具,目前的Java技術已成為所有大型電子商務項目的必然選擇。JSP技術可以以一種簡捷而快速的方法生成Web頁面。使用JSP技術的W
35、eb頁面可以很容易地顯示動態(tài)內容。JSP技術的設計目的是使得構造基于Web的應用程序更加容易和快捷,而這些應用程序能夠與各種Web服務器、應用服務器、瀏覽器和開發(fā)工具共同工作。JSP技術不是惟一的動態(tài)網頁技術,也不是第一個,在JSP技術出現(xiàn)之前就已經存在幾種優(yōu)秀的動態(tài)網頁技術,如CGI、ASP等。</p><p> 基于Java語言的JSP技術具有很多其他動態(tài)網頁技術所沒有的特點,具體表現(xiàn)在如下方面:</
36、p><p> ?。?)簡便性和有效性</p><p> JSP動態(tài)網頁的編寫與一般的靜態(tài)HTML的網頁編寫是十分相似的。只是在原來的HTML網頁中加入一些JSP專有的標簽,或是一些腳本程序(此項不是必需的)。這樣,一個熟悉HTML網頁編寫的設計人員可以很容易進行JSP網頁的開發(fā)。而且開發(fā)人員完全可以不自己編寫腳本程序,而只是通過JSP獨有的標簽使用別人已寫好的部件來實現(xiàn)動態(tài)網頁的編寫。這樣,
37、一個不熟悉腳本語言的網頁開發(fā)者,完全可以利用JSP做出漂亮的動態(tài)網頁。而這在其他的動態(tài)網頁開發(fā)中是不可實現(xiàn)的。</p><p><b> ?。?)程序的獨立性</b></p><p> JSP是Java API家族的一部分,它擁有一般的Java程序的跨平臺的特性。換句話說,就是擁有程序的對平臺的獨立性,即Write once,Run anywhere!。</p
38、><p> ?。?)程序的兼容性 </p><p> JSP中的動態(tài)內容可以各種形式進行顯示,所以它可以為各種客戶提供服務,即從使用HTML/DHTML的瀏覽器,到使用WML的各種手提無線設備(例如,移動電話和個人數(shù)字設備PDA),再到使用XML的B2B應用,都可以使用JSP的動態(tài)頁面。</p><p> (4)程序的可重用性</p><p>
39、; 在JSP頁面中可以不直接將腳本程序嵌入,而只是將動態(tài)的交互部分作為一個部件加以引用。這樣,一旦這樣的一個部件寫好,它可以為多個程序重復引用,實現(xiàn)了程序的可重用性。現(xiàn)在,大量的標準JavaBeans程序庫就是一個很好的例證[5]。</p><p> 2.2 Struts的概述</p><p> struts是一種開源軟件,采用 Struts 可以簡化Web 應用的開發(fā)工作,實現(xiàn)代
40、碼重用,具有使得 Web 應用具有強可擴展性。Struts 的出現(xiàn)使得 Web 應用的開發(fā)過程大大簡化,從而能夠縮短開發(fā)周期、提高開發(fā)效率。</p><p> Struts的優(yōu)點主要集中體現(xiàn)在兩個方面:Taglib和頁面導航。Taglib是Struts的標記庫,靈活動用,能大大提高開發(fā)效率。Struts的標記庫使得程序開發(fā)者使用JSP自帶的常用標記。頁面導航使系統(tǒng)的流程更加清晰。通過一個配置文件可以清楚的看到整
41、個系統(tǒng)各部分之間的聯(lián)系,這對于后期的維護有著莫大的好處。尤其是當另一批程序開發(fā)者接手這個項目時,這種優(yōu)勢體現(xiàn)得更加明顯。</p><p> 下圖是Struts的工作流程,所有的請求都提交給ActionServlet來處理。如圖2-1 Struts的工作流程圖。</p><p> ActionServlet是一個FrontController,它是一個標準的Servlet,它將reque
42、st轉發(fā)給RequestProcessor來處理, ActionMapping是ActionConfig的子類,實質上是對struts-config.xml的一個映射,從中可以取得所有的配置信息 ,RequestProcessor根據(jù)提交過來的url,如*.do,從ActionMapping 中得到相應的ActionForn和Action。然后將request的參數(shù)對應到ActionForm中,進行form驗證。如果驗證通過則調用Act
43、ion的execute()方法來執(zhí)行Action,最終返回ActionFoward,ActionFoward是對mapping中一個foward的包裝,對應于一個url。</p><p> ActionForm使用了ViewHelper模式,是對HTML中form的一個封裝。其中包含有validate方法,用于驗證form數(shù)據(jù)的有效性。ActionForm是一個符合JavaBean規(guī)范的類,所有的屬性都應滿足g
44、et和set對應。對于一些復雜的系統(tǒng),還可以采用DynaActionForm來構造動態(tài)的Form,即通過預制參數(shù)來生成Form。這樣可以更靈活的擴展程序。</p><p> ActionErrors是對錯誤信息的包裝,一旦在執(zhí)行action或者form.validate中出現(xiàn)異常,即可產生一個ActionError并最終加入到ActionErrors。在Form驗證的過程中,如果有Error發(fā)生,則會將頁面重新
45、導向至輸入頁,并提示錯誤。</p><p> Action是用于執(zhí)行業(yè)務邏輯的RequsestHandler。每個Action都只建立一個instance。Action不是線程安全的,所以不應該在Action中訪問特定資源。一般來說,應改使用 Business Delegate 模式來對Business tier進行訪問以解除耦合。 </p><p> Struts提供了多種Acti
46、on供選擇使用。普通的Action只能通過調用execute執(zhí)行一項任務,而DispatchAction可以根據(jù)配置參數(shù)執(zhí)行,而不是僅進入execute()函數(shù),這樣可以執(zhí)行多種任務。如insert,update等。LookupDispatchAction可以根據(jù)提交表單按鈕的名稱來執(zhí)行函數(shù)。 </p><p> 圖2-1 Struts的工作流程圖</p><p> 2.3
47、 MYSQL簡介</p><p> 本系統(tǒng)的開發(fā)選擇的數(shù)據(jù)庫為MySQL,MySQL是最受歡迎的開源SQL數(shù)據(jù)庫管理系統(tǒng),它由MySQL AB開發(fā)、發(fā)布和支持,相比較其它系統(tǒng)而言,MySQL數(shù)據(jù)庫可以稱得上是目前運行速度最快的SQL語言數(shù)據(jù)庫。</p><p> MySQL的特性包括以下幾點: </p><p> ?。?)MySQL是一個數(shù)據(jù)庫管理系統(tǒng)</
48、p><p> 一個數(shù)據(jù)庫是一個結構化的數(shù)據(jù)集合。它可以是從一個簡單的銷售表到一個美術館、或者一個社團網絡的龐大的信息集合。如果要添加、訪問和處理存儲在一個計算機數(shù)據(jù)庫中的數(shù)據(jù),你就需要一個像MySQL這樣的數(shù)據(jù)庫管理系統(tǒng)。從計算機可以很好的處理大量的數(shù)據(jù)以來,數(shù)據(jù)庫管理系統(tǒng)就在計算機處理中和獨立應用程序或其他部分應用程序一樣扮演著一個重要的角色。</p><p> ?。?)MySQL是一個關
49、系數(shù)據(jù)庫管理系統(tǒng)</p><p> 關系數(shù)據(jù)庫把數(shù)據(jù)存放在分立的表格中,這比把所有數(shù)據(jù)存放在一個大倉庫中要好得多,這樣做將增加你的速度和靈活性?!癕ySQL”中的SQL代表“Structured Query Language”(結構化查詢語言)。SQL是用于訪問數(shù)據(jù)庫的最通用的標準語言,它是由ANSI/ISO定義的SQL標準。SQL標準發(fā)展自1986年以來,已經存在多個版本:SQL-86,SQL-92,SQL:
50、1999,SQL:2003,其中SQL:2003是該標準的當前版本。</p><p> ?。?)MySQL是開源的數(shù)據(jù)庫管理系統(tǒng)</p><p> 開源意味著任何人都可以使用和修改該軟件,任何人都可以從Internet上下載和使用MySQL而不需要支付任何費用。如果你愿意,你可以研究其源代碼,并根據(jù)你的需要修改它。</p><p> ?。?)MySQL適合訪問在I
51、nternet上的數(shù)據(jù)庫</p><p> MySQL服務器原本就是開發(fā)比已存在的數(shù)據(jù)庫更快的用于處理大的數(shù)據(jù)庫的解決方案,并且已經成功用于高苛刻生產環(huán)境多年。盡管MySQL仍在開發(fā)中,但它已經提供一個豐富和極其有用的功能集。它的連接性、速度和安全性使MySQL非常適合訪問在Internet上的數(shù)據(jù)庫。</p><p> ?。?)MySQL服務器工作在客戶/服務器或嵌入系統(tǒng)中</p
52、><p> MySQL數(shù)據(jù)庫服務器是一個客戶/服務器系統(tǒng),它由多線程SQL服務器組成,支持不同的后端、多個不同的客戶程序和庫、管理工具和廣泛的應用程序接口(APIs)。MySQL也可以是一個嵌入的多線程庫,你可以把它連接到你的應用中而得到一個小、快且易于管理的產品[6]。</p><p><b> 3 系統(tǒng)分析</b></p><p><
53、;b> 3.1 需求調查</b></p><p> 需求調查是調查用戶的需求,是指對要解決的問題進行詳細的分析,弄清楚問題的要求,包括需要輸入什么數(shù)據(jù),要得到什么結果,最后應輸出什么?,F(xiàn)在我們應該明確問題定義階段的主要任務:我們要建立一個圖書信息管理系統(tǒng),以解決學校圖書館各類業(yè)務的基本情況,比便有效的擺脫傳統(tǒng)繁瑣的手工記賬,實現(xiàn)管理自動化,從而提高工作效率。</p><
54、p> 所開發(fā)的圖書館管理系統(tǒng)要求具有界面友好,功能完備,易使用等特點。而后臺數(shù)據(jù)庫的數(shù)據(jù)要具有一致性、完整性、安全性、易維護性。系統(tǒng)開發(fā)的總目標是實現(xiàn)內部圖書借閱管理的系統(tǒng)化、規(guī)范化和自動化。因此一個完善的圖書館管理系統(tǒng)應該包括如下一些要求:</p><p> 讀者信息管理:管理員能夠對讀者進行注冊登記,包括記錄讀者的姓名、編號、職業(yè)、性別、地址、郵箱等信息。并且在之后可以對讀者信息進行修改和刪除等更新
55、操作。而且在登記讀者的時候可以登記讀者的類型,以便之后提供不同類型的服務。</p><p> 圖書館信息維護:管理員登陸系統(tǒng)后可以對圖書館相關信息進行設置,比如設置地址,郵箱,館名,簡介信息等。</p><p> 圖書館信息查詢:任何注冊登記的用戶都可以瀏覽該圖書館的相關信息,比如圖書館的館名字,館長,地址,郵箱,簡介等相關信息。</p><p> 圖書借還管
56、理:管理員可以處理讀者借書,還書的請求,每個讀者屬于不同的讀者類型,不同的讀者類型可以借閱圖書的數(shù)目也是不一樣的。讀者將實體書目拿給管理員的時候,管理員就可以針對該書目進行借還管理,并在系統(tǒng)中更新相關信息,如借還日期,借還者,應還日期等。</p><p> 圖書查詢:該系統(tǒng)可以為任何注冊登記的用戶提供方便的查詢方法,可以以條形碼、書名、作者、出版社、等信息進行圖書檢索,并能反映出圖書的借閱情況;以借閱人編號對借
57、閱人信息進行檢索;以出版社名稱查詢出版社聯(lián)系方式信息。</p><p> 圖書續(xù)借:管理員可以處理讀者續(xù)借的請求,讀者將實體書目拿給管理員的時候,管理員就可以針對該書目進行續(xù)借管理,并在系統(tǒng)中更新相關信息,如續(xù)借期,借還者,應還日期等。</p><p> 圖書信息維護:管理員能夠對圖書進行收錄登記,就是將圖書的一些必要的基本信息(畢如:書的條形碼、書名、作者、出版社等)預先存入圖書館數(shù)
58、據(jù)庫中,供以后查詢和為各項業(yè)務作支持。并且能夠設置圖書的類別,使得不同的圖書更容易被查詢。</p><p> 管理員權限設置:該系統(tǒng)能夠對使用該管理系統(tǒng)的用戶進行管理,按照不同的身份提供不同的功能授權。比如讀者只能在系統(tǒng)上進行查詢圖書信息和查詢自己的信息,管理員可以根據(jù)自己的權限不同獲得不同程度的系統(tǒng)操作權。比如設置某一個管理員只有處理借書的權限。</p><p> 系統(tǒng)查詢:管理員或
59、者讀者可以按條件查詢圖書檔案信息,圖書借閱信息,圖書借閱超期信息列表。并且可以根據(jù)這些信息進行相關操作,比如讀者發(fā)現(xiàn)自己的某一個圖書要到期了,那么就會去圖書館進行續(xù)借或者還書。</p><p> 口令更改:管理員或一般的操作員登陸系統(tǒng)后可以更改自己的登陸密碼。</p><p> 3.2 用例圖設計</p><p> 該圖書館管理系統(tǒng)的開發(fā)是一個比較復雜的軟件
60、工程,基于軟件工程思想,采用了UML表達圖書館管理系統(tǒng)的設計方式,提取類以及描述它們之間的協(xié)作關系,實現(xiàn)系統(tǒng)模型構建。UML的用例圖(Use Case)較詳細和確切地描述了用戶的功能需求,使系統(tǒng)責任更為明確,是其他UML視圖的核心和基礎,其他視圖的構造和發(fā)展依賴于用例圖中所描述的內容,系統(tǒng)的最終目標就是提供用例視圖中描述的功能[7]。首先通過之前的需求分析建立該系統(tǒng)用例圖,從管理員和讀者登錄系統(tǒng)后所具體的權限和操作來描述了圖書館管理系統(tǒng)
61、的管理員,讀者和各個子系統(tǒng)之間的關系,如圖3-1圖書館管理系統(tǒng)用例圖所示。</p><p> 圖3-1 圖書館管理系統(tǒng)用例圖</p><p> 從用例圖中我們可以看出管理員和讀者之間對本系統(tǒng)所具有的用例。管理員所包含的用例有:口令管理:管理員可以通過登錄該系統(tǒng)進行更改密碼的操作。讀者信息維護:包括對讀者的增刪改和讀者信息的查詢。圖書館信息維護:能夠對圖書館信息進行維護更新操作。圖書查詢
62、:可以對所有圖書的詳細信息進行查詢。圖書借閱:可以處理讀者的借閱請求。圖書歸還:可以處理讀者的歸還請求。圖書續(xù)借:可以處理讀者的續(xù)借請求。圖書信息維護:可以實現(xiàn)書目的增刪改。管理員信息維護:可以增刪改管理員賬戶,并且可以設置管理員對系統(tǒng)的操作權限。圖書借閱信息查看:可以查看現(xiàn)有已經出借的書目信息。讀者所包含的用例有:讀者信息查詢:讀者在登錄系統(tǒng)后可以查詢自己的相關信息。圖書借閱:通過管理員進行借書業(yè)務。圖書歸還:通過管理員進行還書業(yè)務。
63、圖書續(xù)借:通過管理員進行圖書續(xù)借業(yè)務。圖書借閱信息查看:可以查看自己所借書目的相關信息。</p><p> 3.3 實體類圖設計</p><p> 基于UML的系統(tǒng)分析階段另一個重要的工作就是特定域類的分析,即作出系統(tǒng)中的關鍵類,確定與該領域相關的概念,建立類圖。類圖是UML的核心技術,表示該系統(tǒng)中類和類之間的關系,是對系統(tǒng)靜態(tài)結構的描述。圖書館管理系統(tǒng)的域類主要包括圖書借閱(Bor
64、row),圖書信息(Book),圖書類型(BookType),讀者(Read),讀者信息(ReadType),管理員(Manger),圖書館信息(Library)。可以在類圖中將這些域類和他們之間的關系表示出來。如圖3-2系統(tǒng)實體類設計圖。</p><p> 圖3-2系統(tǒng)實體類設計圖</p><p> 類圖說明:UML類圖中包括三個部分,類名稱,類屬性和類操作。上述幾個類中Borrow
65、類用于圖書的借閱、歸還、續(xù)借功能,并且在實現(xiàn)這三個功能的時候更新相應的借閱信息,圖書信息和讀者信息,如更新借書日期,對應的借閱人。Book類用于實現(xiàn)圖書的添加、刪除、更新,查詢功能,在實現(xiàn)添加、刪除、更新功能的時候都會更新相關圖書信息。BookType類用于設置圖書種類,不同類型的圖書可以借閱的最長天數(shù)是不同的。Read類用于實現(xiàn)讀者的添加、刪除、更新,主要用于管理讀者信息。ReadType類用于設置讀者類型,讀者類型的不同,所獲得的權
66、限也不同,比如可借書目的數(shù)量。Library 類用于保存圖書館相關信息,任何登錄的用戶都可以從中看到圖書館的簡介。Manger類用于處理上述幾個類的業(yè)務請求,比如圖書的借閱、歸還、續(xù)借都要通過Manger類才能得以完成。</p><p><b> 4 系統(tǒng)設計</b></p><p> 系統(tǒng)設計內容主要包括:確定設計方針和方法,將系統(tǒng)分解為若干子系統(tǒng),確定各子系
67、統(tǒng)的目標、功能及其相互關系,決定對子系統(tǒng)的管理體制和控制方式,對各子系統(tǒng)進行技術設計和評價。通過上述系統(tǒng)分析,可以了解到該圖書館管理系統(tǒng)需要實現(xiàn)的主要功能模塊以及實現(xiàn)各個模塊的功能,下面就對整個系統(tǒng)的的功能做一個基于UML的系統(tǒng)設計。</p><p> 4.1 系統(tǒng)功能介紹</p><p> 下面介紹下該系統(tǒng)的功能:圖書員進行借書業(yè)務處理,讀者需要還書的時候,可以讓管理員進行還書業(yè)務
68、處理[8]。讀者信息管理:管理員可以添加和刪除讀者,并且可以對讀者的相關信息進行修改保存。此外,還可以設置不同類型讀者的可借書目數(shù)量。系統(tǒng)設置:管理員可以在登陸系統(tǒng)后修改并保存圖書館簡介,此外還可以修改管理的操作權限。口令更改:管理員可以在自己登錄系統(tǒng)后,選擇口令更改,更改自己的密碼。</p><p> 圖4-1系統(tǒng)功能介紹圖</p><p><b> 4.2 用例設計&l
69、t;/b></p><p> 設計的最后階段是設計UML模型,也就是將前面設計的模型進行擴展和細化,這里的設計目的是產生一個可以使用的解決方案,并且可以方便的將方案轉換成程序代碼。時序圖就可以很好的滿足這個目的。它通過描述對象之間發(fā)送消息的時間順序顯示多個對象之間的動態(tài)協(xié)作。它可以表示用例的行為順序,當執(zhí)行一個用例行為時,時序圖中的每條消息對應了一個類操作或狀態(tài)機中引起轉換的觸發(fā)事件。時序圖主要用于描述對
70、象是如何交互的,并且將重點放在消息序列上[9]。</p><p> 根據(jù)需求分析階段的用例分析以及系統(tǒng)功能介紹,我們可以畫出流通子系統(tǒng)中主要用例的時序圖:</p><p> ?。?)首先我們來做用戶登錄時序圖,用戶在圖書館管理系統(tǒng)的登錄界面輸入用戶名和密碼,通過系統(tǒng)驗證后就進入了主界面。在主界面中,不同類型的用戶可以進入不同的流通子系統(tǒng)。如管理員可以進行圖書和讀者的管理等業(yè)務,讀者可以進
71、行書面的查詢等業(yè)務。其時序圖如圖4-2登錄時序圖。</p><p><b> 圖4-2登錄時序圖</b></p><p> ?。?)管理員通過身份驗證后進入主界面后,在流通子系統(tǒng)中可以進行讀者信息的維護,圖書信息的維護,圖書的借閱、歸還、續(xù)借等活動。讀者的信息維護包括讀者的添加、刪除、更改以及讀者類型的設置;圖書信息維護包括圖書的添加、刪除、更改。其時序圖如圖4-3
72、讀者信息管理時序圖。</p><p> 圖4-3讀者信息管理時序圖</p><p> ?。?)本系統(tǒng)的圖書借閱管理包括圖書的借閱、歸還以及續(xù)借三個功能,當管理員進行讀者的借還書業(yè)務時,不但要同時修改借閱記錄從而顯示現(xiàn)在的借閱狀態(tài),還有同時修改讀者信息中的借閱圖書的信息,包括圖書的數(shù)量及圖書的名稱和庫存等相關信息。其時序圖如圖4-4圖書借閱管理時序圖。</p><p&g
73、t; 圖4-4圖書借閱管理時序圖</p><p> ?。?)圖書添加是圖書館系統(tǒng)的另一項重要功能,管理員在進入主界面后,在主界面的流通子系統(tǒng)中可以選擇圖書信息管理,選擇添加圖書,輸入書目的圖書類型,出版社,設置條形碼等信息后,這些信息都會存儲到圖書記錄中。其時序圖如圖4-5圖書添加時序圖。</p><p> 圖4-5圖書添加時序圖</p><p> 4.3
74、數(shù)據(jù)庫設計</p><p> 數(shù)據(jù)庫(Database)是按照數(shù)據(jù)結構來組織、存儲和管理數(shù)據(jù)的倉庫,它使得數(shù)據(jù)管理不再僅僅是存儲和管理數(shù)據(jù),而轉變成用戶所需要的各種數(shù)據(jù)管理的方式。數(shù)據(jù)庫設計(Database Design)是指對于一個給定的應用環(huán)境,構造最優(yōu)的數(shù)據(jù)庫模式,建立數(shù)據(jù)庫及其應用系統(tǒng),使之能夠有效地存儲數(shù)據(jù),滿足各種用戶的應用需求[10]。</p><p> 4.3.1
75、數(shù)據(jù)庫概念結構設計</p><p> 針對該圖書管理信息系統(tǒng)的內容和數(shù)據(jù)流程分析,設計成如下數(shù)據(jù)項以及數(shù)據(jù)結構[11]:</p><p> (1)圖書類別信息:包括圖書類別編號,名稱,該圖書類別可以外借的天數(shù)。</p><p> (2)圖書信息:包括條形瑪,圖書名稱,圖書類型,作者,譯者,出版社,價格,頁碼,書架,添加時間,操作員,是否刪除,系統(tǒng)記錄編號。&l
76、t;/p><p> (3)讀者類別信息:包括讀者類別編號,讀者類別名稱,可借圖書數(shù)。</p><p> (4)讀者信息:包括讀者姓名,讀者性別,讀者條形碼,讀者類型,職業(yè),出生日期,有效證件,證件號碼,電話,Email,備注,讀者加入時間,操作員。</p><p> (5)圖書借閱信息:包括記錄編號,圖書編號,讀者編號,借閱時間,歸還時間,是否已經歸還,操作員。&
77、lt;/p><p> (6)圖書歸還信息:包括記錄編號,圖書編號,讀者編號,歸還時間,操作員。</p><p> (7)圖書館信息:包括圖書館名稱,館長,聯(lián)系電話,聯(lián)系地址,圖書館網址,建館時間,圖書館簡介。</p><p> (8)管理員信息:包括管理員id編號,管理員帳號和管理員密碼。</p><p> (9)管理員權限信息:包括管理
78、員id編號,系統(tǒng)設置權限,讀者管理權限,圖書館管理權限,圖書借還權限,系統(tǒng)查詢權限。</p><p> 根據(jù)對數(shù)據(jù)項與數(shù)據(jù)結構的分析,設計出能夠滿足系統(tǒng)需求的各種實體及它們之間的關系,以便之后設置邏輯結構。根據(jù)設計規(guī)劃得出的實體有圖書類別信息實體,圖書信息實體,讀者類別信息實體,讀者信息實體,各個實體的屬性通過實體屬性圖表示如下面這些圖所示[12]。下列各圖中矩形代表該實體對象,它對應數(shù)據(jù)庫中的一張數(shù)據(jù)表,而橢
79、圓形里的信息代表該數(shù)據(jù)對象的屬性,它對應數(shù)據(jù)表中的字段信息。</p><p> 圖4-6 圖書類別實體屬性圖</p><p> 圖4-7 圖書信息實體屬性圖</p><p> 圖4-8 讀者類別信息實體屬性圖</p><p> 圖4-9 讀者信息實體屬性圖</p><p> 圖4-10圖書借閱信息實體屬性圖&
80、lt;/p><p> 圖4-11圖書歸還信息實體屬性圖</p><p> 圖4-12 操作員帳號信息實體屬性圖</p><p> 圖4-13 管理員信息實體屬性圖</p><p> 圖4-14 管理員權限信息屬性圖</p><p> 圖4-15 圖書館系統(tǒng)屬性圖</p><p> 4.3
81、.2 數(shù)據(jù)庫數(shù)據(jù)表設計 </p><p> 表4-1圖書類別信息表</p><p> 表4-2 圖書信息表</p><p> 表4-3讀者類別信息表 </p><p> 表4-4讀者信息表 </p><p> 表4-5圖書借閱信息表 </p><p> 表4-6圖書歸還信息表
82、</p><p> 表4-7圖書館信息表 </p><p> 表4-8管理員信息表 </p><p> 表4-9管理員權限信息表 </p><p><b> 5 系統(tǒng)實現(xiàn)</b></p><p> 5.1 數(shù)據(jù)庫的連接</p><p> 在系統(tǒng)設計階段,已將
83、系統(tǒng)劃分為多個模塊,現(xiàn)在在詳細設計階段需要將它們按照一定的原則組裝起來,同時確定了每個功能及模塊之間的外部接口,并確定每個模塊具體執(zhí)行的過程。在本系統(tǒng)中,數(shù)據(jù)庫的訪問是使用的mysql的驅動連接的,對數(shù)據(jù)庫的訪問操作如數(shù)據(jù)添加,修改,刪除查詢都在本類中實現(xiàn),各個業(yè)務層的實現(xiàn)都需要調用本數(shù)據(jù)層代碼的。</p><p> package com.core;</p><p> import
84、java.io.InputStream;</p><p> import java.sql.*;</p><p> import java.util.Properties;</p><p> /*數(shù)據(jù)庫連接類*/</p><p> public class ConnDB {</p><p> public C
85、onnection conn = null;</p><p> public Statement stmt = null;</p><p> public ResultSet rs = null;</p><p> private static String propFileName = "/com/connDB.properties";
86、//指定資源文件保存的位置</p><p> private static Properties prop = new Properties();</p><p> private static String dbClassName ="com.mysql.jdbc.Driver";</p><p> private static Stri
87、ng dbUrl =</p><p> "jdbc:mysql://127.0.0.1:3306/db_librarySys?user=root&password=123&useUnicode=true";</p><p> public ConnDB(){</p><p><b> try {</b>
88、</p><p> InputStream in=getClass().getResourceAsStream(propFileName);</p><p> prop.load(in);//通過輸入流對象加載Properties文件</p><p> dbClassName = prop.getProperty("DB_CLASS_NAM
89、E");//獲取數(shù)據(jù)庫驅動</p><p> dbUrl = prop.getProperty("DB_URL",</p><p> "jdbc:mysql://127.0.0.1:3306/db_librarySys?user=root&password=123&useUnicode=true");</p>
90、<p><b> }</b></p><p> catch (Exception e) {</p><p> e.printStackTrace();//輸出異常信息</p><p><b> }</b></p><p><b> }</b><
91、/p><p> public static Connection getConnection() {</p><p> Connection conn = null;</p><p><b> try {</b></p><p> Class.forName(dbClassName).newInstance();&l
92、t;/p><p> conn = DriverManager.getConnection(dbUrl);</p><p><b> }</b></p><p> catch (Exception ee) {</p><p> ee.printStackTrace();</p><p><
93、b> }</b></p><p> if (conn == null) {</p><p> System.err.println(</p><p> "警告: DbConnectionManager.getConnection() 獲得數(shù)據(jù)庫鏈接失敗.\r\n\r\n鏈接類型:" +</p><p&
94、gt; dbClassName + "\r\n鏈接位置:" + dbUrl);</p><p><b> }</b></p><p> return conn;</p><p><b> }</b></p><p><b> /*</b></
95、p><p> * 功能:執(zhí)行查詢語句</p><p><b> */</b></p><p> public ResultSet executeQuery(String sql) {</p><p><b> try {</b></p><p> conn = getC
96、onnection();</p><p> stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,</p><p> ResultSet.CONCUR_READ_ONLY);</p><p> rs = stmt.executeQuery(sql);</p><p>
97、 } catch (SQLException ex) {</p><p> System.err.println(ex.getMessage());</p><p><b> }</b></p><p> return rs;</p><p><b> }</b></p>&
98、lt;p><b> /*</b></p><p> * 功能:執(zhí)行更新操作</p><p><b> */</b></p><p> public int executeUpdate(String sql) {</p><p> int result = 0;</p>
99、<p><b> try {</b></p><p> conn = getConnection();//調用getConnection()方法構造Connection對象的一個實例conn</p><p> stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,</
100、p><p> ResultSet.CONCUR_READ_ONLY);</p><p> result = stmt.executeUpdate(sql);//執(zhí)行更新操作</p><p> } catch (SQLException ex) {</p><p> result = 0;</p><p><
101、;b> }</b></p><p> return result;</p><p><b> }</b></p><p><b> /*</b></p><p> * 功能:關閉數(shù)據(jù)庫的連接</p><p><b> */</b&
102、gt;</p><p> public void close() {</p><p><b> try {</b></p><p> if (rs != null) {</p><p> rs.close();</p><p><b> }</b></p>
103、;<p> if (stmt != null) {</p><p> stmt.close();</p><p><b> }</b></p><p> if (conn != null) {</p><p> conn.close();</p><p><b>
104、 }</b></p><p> } catch (Exception e) {</p><p> e.printStackTrace(System.err);</p><p><b> }</b></p><p><b> }</b></p><p>&
105、lt;b> }</b></p><p> 5.2 系統(tǒng)登陸模塊的實現(xiàn)</p><p> 在此系統(tǒng)中,需要登陸系統(tǒng)后才可以執(zhí)行圖書管理系統(tǒng)各個功能,關于登陸的界面設計如下,視圖層(View)在login.jsp中實現(xiàn),其中主要放置一個用戶輸入管理員帳號和一個輸入管理員密碼的密碼框,管理員輸入信息完畢后選擇確定按扭,首先使用客戶端js代碼對輸入的信息進行完整性驗證,驗
106、證通過后該表單會將這些信息傳遞給manager.do?action=login(在login.jsp中)進行處理,通過在Struts-config.xml文件中配置的映射信息這些信息會被傳遞給控制層的com.action.Manager類進行處理。</p><p> 在控制層中,它首先取得參數(shù)action的信息,在本登陸模塊中,它的值是“l(fā)ogin”,然后控制層取得用戶登陸的ActionForm,該FormBe
107、an里保存了用戶輸入的帳號和密碼信息,控制層將該FormBean傳遞給業(yè)務層ManagerDAO的checkManager函數(shù)進行處理,在該函數(shù)中,程序首先根據(jù)管理員帳號查詢記錄,如果查詢到了,再判斷密碼是否一致,如果一致業(yè)務層會返回1給控制層,否則返回0給控制層,控制層根據(jù)返回的結果如果是1說明登陸成功,程序會將管理員的帳號信息保存在session變量manager中,然后根據(jù)ActionForward的映射將頁面跳轉到管理首頁。登錄
108、系統(tǒng)的界面如圖5-1 所示。</p><p> 圖5-1 系統(tǒng)登陸界面</p><p> 關于登陸模塊的控制層和業(yè)務層實現(xiàn)關鍵代碼如下:</p><p> //以下是控制層實現(xiàn)代碼:</p><p> // 管理員身份驗證</p><p> public ActionForward managerLogin(
109、ActionMapping mapping, ActionForm form,</p><p> HttpServletRequest request, HttpServletResponse response) {</p><p> ManagerForm managerForm = (ManagerForm) form;</p><p> managerF
110、orm.setName(managerForm.getName());</p><p> managerForm.setPwd(managerForm.getPwd());</p><p> /*將存有管理員信息的formbean傳遞給DAO業(yè)務層處理(查詢是否存在該管理員帳號和密碼)*/</p><p> int ret = managerDAO.check
111、Manager(managerForm);</p><p> System.out.print("驗證結果ret的值:" + ret);</p><p> /*業(yè)務層如果返回1,表示驗證成功*/</p><p> if (ret == 1) {</p><p> /*將用戶帳號保存在session中*/</p
112、><p> HttpSession session = request.getSession();</p><p> session.setAttribute("manager", managerForm.getName());</p><p> /*交給控制器,跳轉到登陸成功的頁面*/</p><p> return
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于uml的圖書館管理系統(tǒng)的設計與實現(xiàn)[文獻綜述]
- 基于uml的圖書館管理系統(tǒng)的設計與實現(xiàn)[任務書]
- 基于uml的圖書館管理系統(tǒng)的設計與實現(xiàn)畢業(yè)論文
- 基于uml的圖書館管理系統(tǒng)的設計與實現(xiàn)[畢業(yè)論文]
- 基于uml的圖書館管理系統(tǒng)的設計與實現(xiàn)[開題報告]
- 基于php的crm系統(tǒng)設計與實現(xiàn)【畢業(yè)論文+文獻綜述+任務書+開題報告】
- 基于flash的網站設計與實現(xiàn)【畢業(yè)論文+文獻綜述+任務書+開題報告】
- 畢業(yè)論文--圖書館管理系統(tǒng)的設計與實現(xiàn)
- 基于jsp的個人博客系統(tǒng)設計與實現(xiàn)【畢業(yè)論文+文獻綜述+任務書+開題報告】
- 企業(yè)在線會議管理系統(tǒng)的設計與實現(xiàn)【畢業(yè)論文+文獻綜述+開題報告+任務書】
- 房產中介管理系統(tǒng)的設計與實現(xiàn)【畢業(yè)論文+文獻綜述+開題報告+任務書】
- 圖書館圖書借閱管理系統(tǒng)的設計與實現(xiàn)畢業(yè)論文
- 射頻識別技術(rfid)在圖書館管理系統(tǒng)中的應用分析【畢業(yè)論文+任務書+開題報告+文獻綜述+外文翻譯】
- 文獻綜述圖書館座位管理系統(tǒng)的設計與實現(xiàn)
- 文獻綜述圖書館座位管理系統(tǒng)的設計與實現(xiàn)
- 在線網摘系統(tǒng)的設計與實現(xiàn)【畢業(yè)論文+文獻綜述+任務書+開題報告】
- 基于仿真模擬的crm系統(tǒng)設計及實現(xiàn)【畢業(yè)論文+文獻綜述+開題報告+任務書】
- 畢業(yè)論文---基于web的圖書館管理系統(tǒng)前臺設計與實現(xiàn)
- 倉庫管理系統(tǒng)的分析與實現(xiàn)【畢業(yè)論文+任務書+開題報告+文獻綜述+外文翻譯】
- 畢業(yè)論文--圖書館網站管理系統(tǒng)設計與實現(xiàn)
評論
0/150
提交評論