計算機專業(yè)畢業(yè)論文 .doc
題 目 基于 PHP 的圖書管理系統(tǒng) 學院 專業(yè)班級 姓名 指導教師 2015 年 12 月 江蘇開放大學計算機本(論文) -I- 摘 要 隨著科學技術的進步和計算機行業(yè)的迅速發(fā)展,人們的工作效率得到大大提 高。計算機信息處理系統(tǒng)的引進已徹底改變了許多系統(tǒng)的經營管理。 圖書管理系統(tǒng)是學校管理機制中的重要組成部分,通過對圖書館管理系統(tǒng)的 運行管理機制進行調查和研究,開發(fā)了此圖書館管理系統(tǒng)。本文中主要介紹了圖 書館管理事務中的常見基本問題等研究背景,進行了全面的可行性分析,詳細論 證了系統(tǒng)的需求分析、系統(tǒng)設計、系統(tǒng)實現(xiàn)和系統(tǒng)測試過程。 本系統(tǒng)使用 PHP 進行網頁界面的設計,使用 MVC 設計模式,采用集成開發(fā)環(huán) 境 DreamWeaver 進行開發(fā)。后端的數(shù)據(jù)庫采用 MySQL,通過 ODBC 驅動和數(shù)據(jù)庫進 行無縫連接。 系統(tǒng)實現(xiàn)了用戶登錄、圖書管理、借書證管理、圖書借閱管理等功能模塊。 用戶登錄模塊實現(xiàn)用戶的登錄和權限判定;圖書管理模塊實現(xiàn)了對圖書的添加、 刪除、修改、查詢等功能;借書證管理模塊實現(xiàn)了對學生的添加、刪除、修改、 查詢等功能;圖書借閱管理模塊實現(xiàn)了學生對圖書的借閱、還書和所借圖書的查 看等功能。 測試結果表明,本系統(tǒng)實現(xiàn)了圖書館圖書管理的主要功能,基本滿足圖書管 理的需要。 關鍵詞:圖書館,圖書管理系統(tǒng),PHP, MySQL ,JavaScript. 江蘇開放大學計算機本(論文) -II- 目 錄 1 緒 論 .1 1.1 目前圖書館管理系統(tǒng)存在的問題 .1 1.2 系統(tǒng)設計的目的和意義 .1 2 可行性分析 .4 2.1 技術可行性 .4 2.2 經濟可行性 .5 2.3 操作可行性 .5 3 需求分析 .6 3.1 圖書館管理系統(tǒng)需求概述 .6 3.2 功能需求 .6 3.2.1 與讀者相關的基本功能元素 .6 3.2.2 與管理員相關的基本功能元素 .7 3.2.3 總體系統(tǒng)的基本功能元素 .7 3.3 性能需求 .7 3.4 運行需求 .8 4 系統(tǒng)設計 .9 4.1 圖書館管理系統(tǒng)設計指導思想和原則.9 4.2 設計模式 .9 4.3 圖書館管理系統(tǒng)總體功能概述.10 4.4 圖書館管理系統(tǒng)各功能模塊概述.11 4.4.1 系統(tǒng)登錄模塊 .11 4.3.2 圖書管理模塊 .12 4.3.3 學生管理模塊 .13 4.3.4 借閱信息管理模塊 .14 4.3.5 圖書檢索模塊 .16 4.4 系統(tǒng)數(shù)據(jù)庫設計.17 5 系統(tǒng)實現(xiàn) .22 5.1 系統(tǒng)的軟件結構 .22 5.2 登錄系統(tǒng)模塊的實現(xiàn) .22 5.3 圖書管理模塊的實現(xiàn) .24 5.3.1 圖書入庫功能的實現(xiàn) .24 江蘇開放大學計算機本(論文) -III- 5.3.2 圖書維護功能的實現(xiàn) .25 5.4 學生管理模塊的實現(xiàn) .29 5.4.1 學生添加功能的實現(xiàn) .29 5.4.2 學生維護功能的實現(xiàn) .30 5.5 借閱信息管理模塊的實現(xiàn) .33 5.5.1 辦理圖書借閱功能的實現(xiàn) .33 5.5.2 辦理圖書歸還功能的實現(xiàn) .34 5.6 圖書檢索模塊的實現(xiàn) .35 5.7 系統(tǒng)設計的創(chuàng)新點 .36 5.7.1 系統(tǒng)后臺管理的安全性 .36 5.7.2 DAO 數(shù)據(jù)訪問接口 .37 6 系統(tǒng)測試 .38 6.1 系統(tǒng)測試的方法與步驟 .38 6.2 模塊測試 .38 6.2.1 登錄模塊測試 .38 6.2.2 圖書管理測試 .39 6.2.3 學生管理測試 .39 6.2.4 借閱信息管理測試 .40 6.3 評價.40 7 結束語 .42 致 謝 .43 參考文獻 .44 江蘇開放大學計算機本(論文) -4- 1緒 論 1.1目前圖書館管理系統(tǒng)存在的問題 (1)檢索速度慢、效率低 因為圖書館的藏書種類多。數(shù)量大,將藏書準確的分門別類,快速檢索,手 工進行非常困難,往往是終于查到了二維的信息,館中卻沒有此書或已被別人借 走。圖書館的規(guī)模越大,這個問題就越突出。 (2)借書、還書工作量大 借書、還書頻率越大,說明圖書館的作用越大,然而隨之而來的大量的借書、 還書登記、實存圖書的更新以及借出圖書超期,遺失等的處理,其工作量之大, 往往是人工操作所難以勝任的,而且經常會出現(xiàn)這樣那樣的差錯。 (3)圖書統(tǒng)計工作難、藏書更新不能及時完成 圖書館的圖書應根據(jù)科學技術的發(fā)展和教學工作的需要及時添加和更新,然 而由于藏書數(shù)量及圖書種類越來越多,加上自然損耗,人為破壞,使圖書的統(tǒng)計 工作難以及時完成,藏書的更新也就很難有針對性的進行,藏書的知識結構得不 到良好地控制。 我校也是一所發(fā)展中的高校,近幾年的發(fā)展速度很快,圖書館的規(guī)模和藏書 的數(shù)量也在不斷地擴大,為了解決海量圖書的管理問題,以及學生借閱圖書的信 息問題,改變傳統(tǒng)的管理方式也就成了迫在眉睫的問題了。 1.2系統(tǒng)設計的目的和意義 隨著計算機的廣泛應用,其逐步成為現(xiàn)代化的標志。圖書館或者一些企業(yè)內 部,甚至是書店,在正常運行的過程中總是面對大量的讀者信息,書籍信息以及 江蘇開放大學計算機本(論文) -5- 兩者相互作用產生的借書信息,還書信息。因此需要對讀者資源,書籍資源,借 書信息,還書信息進行管理,及時了解各個環(huán)節(jié)中信息的變更,要對因此而產生 的單據(jù)進行及時的處理,為了提高圖書館或者企業(yè)內部對圖書存銷的自動化的管 理,能夠更快速地滿足讀者的要求,提高各種工作效率,現(xiàn)對其設計相應的系統(tǒng), 以達到上述的目的。 圖書館管理系統(tǒng)的主要功能是實現(xiàn)圖書館圖書的借閱和歸還的管理自動化, 圖書新增及銷毀的及時化,用戶及圖書信息的更新,圍繞這些主要功能,本系統(tǒng) 涉及到以下核心功能:借閱管理,歸還管理,圖書管理,學生管理。除了這些核 心功能外,還包括一些基本和輔助的功能,它們是:圖書信息管理,查詢功能等。 該系統(tǒng)設計的主要目標是: 設計一個圖書館管理系統(tǒng),該系統(tǒng)主要功能分為圖書查詢、圖書借閱歸還和 圖書管理三大部分。在圖書查詢模塊中要求用戶能在瀏覽器中分別書名、著譯者、 類型等條件查詢;在圖書管理模塊中要求能完成如辦理借書證(即添加新的學生) 、新書錄入、借書還書登記、圖書修改等日常管理功能。 (1) 網站前臺設計:前臺供學生使用,學生登錄后有如下權利 圖書查詢:用戶可以按多種方式對圖書庫中的圖書進行查詢; 借閱信息查詢:用戶可以查看自己的歷史借閱信息。 (2)網站后臺設計:后臺是供管理員使用的,管理員登陸后有如下權利 辦理借閱證:將學生信息填寫完整,在數(shù)據(jù)庫中注冊新用戶; 書籍的錄入及刪除:可以對現(xiàn)有圖書庫中的圖書進行刪除,也可以添加新 江蘇開放大學計算機本(論文) -6- 書; 借書還書登記:普通用戶借閱或歸還圖書時,管理員將在借閱信息表中添 加相應的記錄; 圖書修改:管理員可以對現(xiàn)有圖書的詳細信息進行修改。 2可行性分析 采用現(xiàn)代化統(tǒng)一的計算機信息網站系統(tǒng),能夠有效優(yōu)化圖書館管理系統(tǒng),使 其高校的發(fā)揮最大的作用,能夠迅捷的為讀者提供相應的服務。開發(fā)本系統(tǒng)的可 行性如下: 2.1技術可行性 在軟、硬件方面對系統(tǒng)的需求來看,由于中小企業(yè)信息化水平比較低,軟硬 件配置較差;而且資金實力并不雄厚。所以其對硬件的配置要求是盡可能的低, 對軟件配置的要求則是系統(tǒng)最好是基于日常辦公軟件如 OFFICE 系列上的應用系 統(tǒng),這樣既不用花大量資金添置軟件,員工又較容易學會使用應用。本系統(tǒng)所實 現(xiàn)的功能是一般性質的辦公業(yè)務,總體的開發(fā)時間不用很長,它用到的硬件平臺 不高,軟件基本上是開源且較易懂,項目開發(fā)過程中遇到的技術上的問題在網上 或書上可找到,因此是在技術上是可行的。 該系統(tǒng)所用的軟件平臺有數(shù)據(jù)庫 MYSQL、開發(fā)工具包 WAMP2.0、服務器 Apache5.0,瀏覽器 IE 8.0 都是開源的其中操作的細節(jié)和配置都易學。 本系統(tǒng)開發(fā) 出來時在技術上具有代表當時辦公自動化信息系統(tǒng)的先進性,本系統(tǒng)在建成后一 段時間內,不會因技術的落后而需要大規(guī)模的調整,并且能夠跟隨時逐步的升級 而保持整個系統(tǒng)的先進性。同時本系統(tǒng)對計算機硬件要求不算太高,運行速度較 快,對企業(yè)辦公很方便。 本系統(tǒng)最重要的是基于 php 的 Web 應用程序開發(fā)提供了一個框架。本系統(tǒng)的 江蘇開放大學計算機本(論文) -7- 工作流程,分為以下步驟: (1) 瀏覽器向服務器發(fā)出請求,Controller 獲得這些請求。 (2) Controller 根據(jù)配置文件 php-config.xml 中的定義將這些請求發(fā)送到相應 的 Action,對應圖中的 Model。 (3) Action 完成相應的業(yè)務邏輯處理后,將處理結果返回到 Controller。 (4) Controller 再根據(jù)配置文件 config.xml 中的定義將處理結果顯示到用戶視 圖 View。 本系統(tǒng)正是利用了 MVC 工作流程來完成此次設計的整個流程,如圖 2.2 所示: V i e w J s p 瀏覽器 C o n t r o l l e r S e r v l e t M o d e l J a v a B e a n S t r u t s - c o n f i g . x m l 數(shù)據(jù)庫 圖 2.2 本系統(tǒng)工作流圖 2.2經濟可行性 根據(jù)成本/效益分析法,本系統(tǒng)所需的軟硬件資源都已具備,該系統(tǒng)簡單易 懂,本系統(tǒng)具有成本相對較低、利益高的特點,經濟上可行。 2.3操作可行性 本系統(tǒng)開發(fā)的開發(fā)宗旨是以便捷為中心。開發(fā)后的系統(tǒng)應具有美觀、大方、 簡單、易操作等優(yōu)點,即使是不懂計算機的人員也可以根據(jù)系統(tǒng)提示使用和管理 江蘇開放大學計算機本(論文) -8- 本系統(tǒng),它的操作簡單的特點使本系統(tǒng)在操作上可行。 江蘇開放大學計算機本(論文) -9- 3需求分析 3.1圖書館管理系統(tǒng)需求概述 圖書館管理系統(tǒng)的開發(fā)主要涉及到圖書的管理,學生信息的管理,借閱信息 的管理三大功能的數(shù)據(jù)管理。從管理的角度可將圖書分為三類:圖書信息管理、 系統(tǒng)用戶管理、讀者數(shù)據(jù)管理。圖書信息管理包括:添加新進圖書、刪除舊圖書、 修改圖書信息。系統(tǒng)用戶管理包括:修改用戶信息、辦理新用戶、注銷用戶。讀 者數(shù)據(jù)管理主要包括:讀者借閱信息的管理,借閱圖書以及歸還圖書。 圖書借閱者的需求是查詢圖書室所存的圖書。個人借閱情況以及個人信息的 修改;圖書館工作人員對圖書借閱者的借閱及還書要求進行操作,同時形成借書 或還書報表給借閱者查看確認;圖書管理人員的功能最為復雜,包括對圖書借閱 者、圖書進行管理和維護、以及系統(tǒng)狀態(tài)的查詢和維護等。 圖書館管理員可以瀏覽、查詢、添加、刪除、修改的基本信息;瀏覽、查詢、 添加、刪除和修改圖書借閱者的基本信息;瀏覽、查詢、添加、刪除和修改圖書 的借閱信息。 3.2功能需求 在本系統(tǒng)中,對讀者來說,他們關心的問題其實是如何方便的查詢到圖書館 中的書籍以及自己正在借閱或者已經借閱過一些什么書籍,也就是借閱歷史,另 一個關心的問題就是所借閱的圖書是否到期等等。由此可以得出系統(tǒng)一些需求。 3.2.1 與讀者相關的基本功能元素 (1)圖書查詢:應該能夠按照圖書不同信息對圖書進行查詢,如書名、作者、 圖書類型等條件查詢。 江蘇開放大學計算機本(論文) -10- (2)讀者信息查詢,讀者信息的查詢內容應包括以下幾個方面: 讀者信息對讀者的基本信息進行顯示。 書刊借閱對該讀者借閱書籍記錄進行查詢。 欠款查詢對該讀者超期圖書的欠款情況的查看。 3.2.2 與管理員相關的基本功能元素 在面向系統(tǒng)的管理員來說,應注意如下幾點: (1)圖書館中有哪些書籍,是否可以被借閱; (2)對學生的添加、修改和刪除操作的方便性; (3)查看學生都借閱著哪些書籍; (4)對書籍的添加、修改和刪除操作的方便性。 3.2.3 總體系統(tǒng)的基本功能元素 從以上問題出發(fā),可以得出本系統(tǒng)應該具有的功能: (1)圖書查詢對館內的圖書進行查詢; (2)借閱管理對讀者的每一次借閱,還書進行登記和管理; (3)圖書管理對圖書館的書籍進行管理,添加、刪除以及修改信息; (4)學生管理對學生進行管理,添加、刪除以及修改信息; (5)欠款情況管理對讀者借閱圖書超期欠款的情況進行管理。 3.3 性能需求 3.3.1 人身和環(huán)境安全性需求 (1)系統(tǒng)中的軟件不構成對人身健康的損害; (2)系統(tǒng)中的軟件失效時不造成財產的損失; 江蘇開放大學計算機本(論文) -11- (3)系統(tǒng)中的軟件失效時不造成環(huán)境的破壞。 3.3.2 可靠性和可用性需求 (1)系統(tǒng)中的軟件可以每天使用 24 小時,每年使用 365 天; (2)系統(tǒng)中的軟件故障率小于等于 5%。 3.3.3 容錯性需求 用戶輸入錯誤信息時,系統(tǒng)應提示,不應崩潰。 3.3.4 易用性 軟件適合 12-70 周歲的智力、視力、體力和肢體正常且具有圖書借閱相關知 識的人使用; 3.3.5 易學性 經過 1-2 天培訓的使用者可以正常使用本軟件。 3.4 運行需求 3.4.1 預期的物理環(huán)境 (1)系統(tǒng)在常溫環(huán)境下使用; (2)系統(tǒng)在潔凈的室內使用。 3.4.2 預期的技術環(huán)境 (1)寬帶網、1M 以上寬帶互聯(lián)網; (2)臺式計算機:CPU P4 2.0G 以上,內存 256M 以上,硬盤 40G 以上, 10M/100M 網卡,Windows 2000/2003/NT/XP 中文操作系統(tǒng); (3)數(shù)據(jù)庫管理系統(tǒng):MySQL5.0 及以上。 江蘇開放大學計算機本(論文) -12- 4系統(tǒng)設計 4.1 圖書館管理系統(tǒng)設計指導思想和原則 (1)利用軟件開發(fā)現(xiàn)有軟硬件環(huán)境,及先進的管理系統(tǒng)開發(fā)方案,從而到達 充分利用現(xiàn)在資源提高系統(tǒng)開發(fā)水平和應用效果的目的。 (2)系統(tǒng)應該符合軟件工程開發(fā)的理論,開發(fā)方法等開發(fā)依據(jù)。 (3)系統(tǒng)應滿足圖書館管理工作的需要,并達到操作過程中的直觀,方便, 實用,安全,準確等要求。 (4)系統(tǒng)應具備數(shù)據(jù)庫維護功能,及時根據(jù)用戶需求進行數(shù)據(jù)庫的各種操作。 (5)系統(tǒng)采用原型,實用模塊化程序設計方法,便于系統(tǒng)功能的各種組合和 修改,以及系統(tǒng)的測試與維護。 (6)圖書館管理系統(tǒng)的設計應適合校園的發(fā)展。 (7)圖書館管理系統(tǒng)的設計應當遵循數(shù)據(jù)庫設計規(guī)范。 4.2 設計模式 設計模式是面向對象的程序設計人員用來解決編程問題的一種形式化表示。 本系統(tǒng)開發(fā)采用目前一種廣泛流行的軟件設計模式 MVC。MVC(ModelView Controller)應用程序結構被用來分析分布式應用程序的特征。這種抽象結構能 有助于將應用程序分割成若干邏輯部件,使程序設計變得更加容易。把一個應用 的輸入、處理、輸出流程按照 Model、View、Controller 的方式進行分離,這樣 一個應用被分成三個層模型層、視圖層、控制層。 江蘇開放大學計算機本(論文) -13- M o d e l 抽象系統(tǒng)應用功能 ; 處 理業(yè)務邏輯 ; 數(shù)據(jù)持久 化 V i e w 抽象數(shù)據(jù)表達 ; 表示 針對用戶的數(shù)據(jù) ; C o n t r o n l l e r 定義應用系統(tǒng)的行為將 用戶請求映射到模型更 新 ; 選擇視圖作為對請 求的回應 ; 更新 狀態(tài)查詢 調用 請求 選擇視圖 圖 4-1 MVC 模式 MVC 模式的出現(xiàn),很好的解決了傳統(tǒng)開發(fā) WEB 應用方式中存在的問題。M 代 表模型(Model),包含完成任務所需要的所有的行為和數(shù)據(jù);V 代表視圖 (View)界面,現(xiàn)實模型提供的數(shù)據(jù);C 代表控制器(Controller),它將模型 映射到界面中,處理用戶的輸入并相應請求。其模型的關系如圖所示。在 MVC 模 型中,三層各盡其職、相互獨立,各層內部的改變不會影響到其它層,從而降低 了數(shù)據(jù)表達、數(shù)據(jù)描述和應該操作的耦合度,也能更好的實現(xiàn)開發(fā)中的分工,加 速工程進度。 4.3 圖書館管理系統(tǒng)總體功能概述 圖書管理系統(tǒng)包含五個模塊分別是:系統(tǒng)登錄、圖書管理、學生管理、借閱 信息管理、圖書檢索。 系統(tǒng)登錄模塊:一般用戶和管理員都必須登錄才能進入系統(tǒng),用戶登錄時在 后臺判斷用戶的權限類型,分為普通用戶和管理員,普通用戶可以對書籍進行瀏 覽及個人借閱信息的查詢,管理員可以對多種信息進行操作。 江蘇開放大學計算機本(論文) -14- 圖書管理模塊:管理員通過驗證界面進入系統(tǒng)后,進入到圖書管理模塊,可 以對圖書進行添加,刪除、修改圖書信息、查詢、查看等一系列的操作。 學生管理模塊:管理員可以在此模塊中創(chuàng)建新的普通用戶,并且可以對用戶 的信息進行修改,刪除等操作。 借閱信息管理模塊:這是圖書管系統(tǒng)中最重要的模塊之一,管理員進入該模 塊中可以為普通用戶辦理借閱圖書,歸還圖書的功能,并且能夠實現(xiàn)還款的操作。 圖書檢索模塊:普通用戶通過驗證界面進入系統(tǒng)后,能夠按照書名,作者等 多種條件對圖書進行查詢操作,確保查詢到的都是最新的信息。 整體系統(tǒng)的功能模塊如圖 4-2 所示: 圖書館管理系統(tǒng) 登 錄 系 統(tǒng) 模 塊 借 書 證 管 理 模 塊 圖 書 管 理 模 塊 借 閱 信 息 模 塊 圖 書 檢 索 模 塊 圖 4-2 圖書館管理系統(tǒng)功能圖 江蘇開放大學計算機本(論文) -15- 4.4 圖書館管理系統(tǒng)各功能模塊概述 4.4.1 系統(tǒng)登錄模塊 用戶進入系統(tǒng)時調用的一個模塊。該模塊根據(jù)用戶輸入的用戶名、密碼來判 斷用戶的類型,跳轉到該類用戶的界面。 本模塊的功能點包括: (1) 判斷用戶名和密碼是否相符; (2) 根據(jù)用戶的權限類型,登錄到系統(tǒng)的制定界面操作使用。 登錄功能模塊流程圖如圖 4-3 所示: 開始 顯示登錄界面 是否存在用戶 管理員界面 結束 是否是管理員 用戶界面 Y N N Y 圖 4-3 登錄模塊流程圖 4.3.2 圖書管理模塊 在本模塊中圖書館工作人員可以對圖書進行管理操作。 本模塊的功能點包括: (1) 新書入庫,將新進圖書按其類型將圖書的基本信息錄入系統(tǒng)數(shù)據(jù)庫; 江蘇開放大學計算機本(論文) -16- (2) 圖書出庫,某一部分圖書會隨著時間的增長及知識的更新而變得不再有 收藏的價值,或者圖書被損壞,這些圖書就要在圖書庫中除去。即從圖書庫中刪 除此圖書記錄; (3) 新書編碼,圖書入庫后,需要貼上條形碼,以便以后提供借閱,本系統(tǒng) 不涉及到條形碼閱讀器,只是假定此過程已經生成條形碼。編碼只是將條形碼帖 于書上以唯一標識圖書; (4) 圖書信息修改,圖書信息由于工作人員的疏忽,而出現(xiàn)錄入錯誤,提供 其圖書 ID 就可以查看圖書的基本信息并對其進行修改; 圖書管理功能模塊流程圖如圖 4-4 所示: 圖書管理 是否成功 新 書 入 庫 圖 書 信 息 修 改 圖 書 出 庫 是否成功是否成功 入庫 成功 頁面 修改 失敗 頁面 修改 成功 頁面 出庫 失敗 頁面 出庫 成功 頁面 入庫 失敗 頁面 NY N NYY 開始 結束 圖 4-4 圖書管理模塊流程圖 4.3.3 學生管理模塊 本模塊主要是工作者對學生信息(讀者借書證信息)進行管理。 本模塊的功能點包括: 江蘇開放大學計算機本(論文) -17- (1) 辦理借書證,為新讀者辦理借書證,填寫用戶基本信息; (2) 注銷借書證,輸入讀者借書證編號,根據(jù)借書證 ID 刪除讀者表中此借 書證信息; (3) 掛失借書證,主要是將借書證的狀態(tài)改為掛失,更新讀者表狀態(tài)字段, 有圖書管理員操作; (4) 修改圖書證信息,由于工作人員的疏忽,而出現(xiàn)辦理借書證時錄入信 息有誤,則可根據(jù)借書證編號對其信息進行查看和修改。 借書證管理功能模塊流程圖如圖 4-5 所示: 借書證管理 是否成功 借 書 證 辦 理 讀 者 信 息 修 改 借 書 證 注 銷 圖 書 證 掛 失 是否成功是否成功 辦理 成功 頁面 修改 失敗 頁面 修改 成功 頁面 注銷 失敗 頁面 注銷 成功 頁面 辦理 失敗 頁面 NY N N YY 是否成功 掛失 失敗 頁面 掛失 成功 頁面 N Y 開始 結束 圖 4-5 借書證管理模塊流程圖 4.3.4 借閱信息管理模塊 本模塊主要是工作者對圖書外借和歸還進行管理。 本模塊的功能點包括: 江蘇開放大學計算機本(論文) -18- (1) 圖書借閱,記錄借閱證編號和圖書編號,進行借書過程。在數(shù)據(jù)庫中插 入一天借書記錄,該記錄包括圖書 ID、借書證 ID、借閱日期、歸還日期等; (2) 圖書歸還,輸入借書證編號,圖書編號,根據(jù)輸入的編號在借閱登記表 中找到相應的記錄,將借閱記錄刪除,并將該記錄相應的數(shù)據(jù)更新到歷史借閱記 錄信息表中; (3) 查看借閱記錄,可以根據(jù)借書證 ID 以及圖書 ID 查詢借閱記錄。 (4) 辦理還款,如讀者有圖書超期的情況將會有欠款,可以根據(jù)借書證的 ID 來為讀者班里還款。 借閱信息管理功能模塊流程圖如圖 4-6 所示: 江蘇開放大學計算機本(論文) -19- 借書信息管理 辦 理 借 閱 辦 理 還 款 歸 還 圖 書 填寫借書證編 號和圖書編號 是否存在編號 填寫借書證編 號和圖書編號 是否存在借閱記錄 歸 還 成 功 歸 還 失 敗 是否已經借閱 借 閱 失 敗 借 閱 成 功 填寫借書證編 號 是否存在編號 是否有欠款 還 款 失 敗 還 款 成 功 Y N Y N N N N Y Y Y 開始 結束 圖 4-6 借閱信息管理模塊流程圖 4.3.5 圖書檢索模塊 使用該模塊的用戶有:讀者和管理員。 本模塊的功能點包括: (1) 根據(jù)圖書 ID 進行檢索; (2) 根據(jù)圖書名稱進行檢索; 江蘇開放大學計算機本(論文) -20- (3) 根據(jù)圖書類型進行檢索。 (4) 根據(jù)圖書作者或譯者進行檢索。 圖書檢索功能模塊流程圖如圖 4-7 所示: 圖書檢索 根 據(jù) 圖 書 I D 查 詢 根 據(jù) 書 名 查 詢 根 據(jù) 類 型 查 詢 根 據(jù) 作 者 查 詢 是否檢索到圖書 圖書列表 提示頁面 Y N 開始 結束 圖 4-7 圖書檢索模塊流程圖 4.4 系統(tǒng)數(shù)據(jù)庫設計 4.4.1 概念結構設計 (1)實體圖 學生:學生屬性有學號、姓名、密碼、性別、學院、班級、電話、email、宿 舍、地址、已借書數(shù)量、創(chuàng)建日期。學生實體圖如圖 4-8 所示: 學生 學號創(chuàng)建日期 已借書數(shù)量 地址 宿舍 email 電話 班級 學院 性別 密碼 姓名 江蘇開放大學計算機本(論文) -21- 圖 4-8 學生實體圖 圖書:圖書屬性有圖書編號、書名、作者、類別、單價、出版社、出版日期、 總數(shù)量、當前數(shù)量、購買日期、內容摘要。圖書實體圖如圖 4-9 所示: 圖 4-9 圖書實體圖 (2)ER 圖 根據(jù)以上實體圖,分析了各個實體的屬性,根據(jù)這些屬性,可以得到系統(tǒng)的 ER 圖,如圖 4-10 所示 1 n n n 學生 圖書 圖書編號內容摘要 購買日期 當前數(shù)量 總數(shù)量 出版日期 出版社 單價 類別 作者 書名 屬于班級 借書日期 江蘇開放大學計算機本(論文) -22- 1 n 圖 4.8 系統(tǒng) E-R 圖 4.4.2 邏輯結構設計 根據(jù)上述功能模塊的需求,設計如下主要數(shù)據(jù)庫表: 表 4.1 圖書信息表(t_book) 字段英文名稱 字段中文名稱 字段類型 字段約束 是否可為空 Book_num 圖書編號 Varchar2(15) 主鍵 否 Book_name 書名 Varchar2(20) 否 Writer 作者 Varchar2(10) 否 Sort_id 類加 ID Varchar2(5) 否 表 4.1 圖書信息表(t_book) 續(xù)表 01 Price 單價 Number(5.2) 是 Pub_company 出版社 Varchar2(20) 是 Pub_date 出版日期 Date 是 Total_num 總數(shù)量 Number(3) 否 借閱 圖書 學生 屬于 還書日期 超期罰款 江蘇開放大學計算機本(論文) -23- Current_num 當前數(shù)量 Number(3) 否 Buy_date 入庫日期 Date 否 Brief 內容摘要 Varchar2(100) 是 表 4.2 學生信息表 (t_student) 字段英文名稱 字段中文名稱 字段類型 字段約束 是否可為空 Student_num 學號 Varchar2(15) 主鍵 否 Student_name 姓名 Varchar2(10) 否 Password 密碼 Varchar2(20) 否 Academy_id 學院 ID Varchar2(10) 否 Class_id 班級 ID Varchar2(10) 否 Sex 性別 Varchar2(2) 是 Telephone 電話 Varchar2(15) 是 Email Email Varchar2(20) 是 Lended_num 已借書數(shù)量 Number(2) 默認為 0 否 Create_date 創(chuàng)建日期 Date 否 表 4.3 借閱信息表(t_book_student) 字段英文名稱 字段中文名稱 字段類型 字段約束 是否可為空 Id ID 號 Varchar2(35) 主鍵 否 Book_id 圖書編號 Varchar2(15) 否 Student_id 學號 Varchar2(15) 否 江蘇開放大學計算機本(論文) -24- borrow_date 借書日期 Date 否 return_date 還書日期 Date 否 Money 超期罰款 Number(5.2) 否 表 4.4 管理員表(t_admin) 字段英文名稱 字段中文名稱 字段類型 字段約束 是否可為空 Admin_id 管理員 ID Number(5) 主鍵 否 Admin_name 管理員姓名 Varchar2(10) 否 Admin_password 管理員密碼 Varchar2(20) 否 表 4.5 學院表(t_admin) 字段英文名稱 字段中文名稱 字段類型 字段約束 是否可為空 Academy_id 學院 ID Varchar2(10) 主鍵 否 Academy_name 學院名 Varchar2(30) 否 表 4.6 班級表(t_class) 字段英文名稱 字段中文名稱 字段類型 字段約束 是否可為空 Class_id 班級 ID Varchar2(10) 主鍵 否 Class_name 班級名 Varchar2(30) 否 Academy_id 所屬學院 ID Varchar2(10) 否 江蘇開放大學計算機本(論文) -25- 表 4.7 圖書類別表(t_admin) 字段英文名稱 字段中文名稱 字段類型 字段約束 是否可為空 Sort_id 類別 ID Varchar2(5) 主鍵 否 Sort_name 類別名 Varchar2(20) 否 江蘇開放大學計算機本(論文) -26- 5系統(tǒng)實現(xiàn) 5.1系統(tǒng)的軟件結構 處理靜態(tài) WEB 是由 Web 瀏覽器向 Web 發(fā)送靜態(tài)頁面, Web 服務器直接對發(fā)送 的靜態(tài)網頁進行處理。 處理動態(tài) WEB 數(shù)據(jù)庫查詢的過程是:當 Web 瀏覽器向 Web 服務器發(fā)送請求時, 動態(tài)網頁的處理流程是,屏蔽掉 HTML 語言,只輸入動態(tài)網頁文件,由 Web 服務 器向數(shù)據(jù)庫中傳遞信息,經過數(shù)據(jù)庫的處理返回數(shù)據(jù)集,Web 應用服務器再把含 有程序代碼的動態(tài)網頁轉換為靜態(tài)網頁返還給 Web 瀏覽器。這就是用動態(tài)網頁對 數(shù)據(jù)庫進行查詢并將數(shù)據(jù)返還給瀏覽器處理的全過程,具體見圖 5-1 所示。 數(shù)據(jù)庫 W e b 瀏覽器 W e b 瀏覽器 W e b 服務器 應用程序服務器 發(fā)送請求 返回響應 查詢數(shù)據(jù) 返回數(shù)據(jù)集 圖 5-1 數(shù)據(jù)庫查詢示意圖 5.2登錄系統(tǒng)模塊的實現(xiàn) 本模塊主要是用戶通過圖書館管理系統(tǒng)的首頁進入該系統(tǒng)。用戶輸入正確的 用戶名和密碼,如果登錄信息有錯誤,則系統(tǒng)提示登錄錯誤信息,并且禁止系統(tǒng) 江蘇開放大學計算機本(論文) -27- 用戶進行任何操作。若登錄信息正確,系統(tǒng)會根據(jù)用戶的身份進行相應權限的判 斷,讀者進入前臺系統(tǒng),管理員進入后臺系統(tǒng)。圖書館系統(tǒng)登錄主頁面如圖 5-2 所示。 圖 5-2 圖書館管理系統(tǒng)登錄界面 其實現(xiàn)的代碼如下: Action 層: public String login() boolean flag = iss.login(admin); if(flag) return success; message = 用戶名或口令錯誤! ; return fail; Service 層: public boolean login(TAdmin admin) TAdmin a = isd.login(admin); if(a != null) return true; return false; Dao 層: public TAdmin login(TAdmin admin) Session session = this.getHibernateTemplate().getSessionFactory().openSession(); Query q = session.createQuery(from TAdmin a where a.adminName = ? and a.adminPassword = ?).setString(0, admin.getAdminName().setString(1, admin.getAdminPassword(); 江蘇開放大學計算機本(論文) -28- TAdmin a = (TAdmin)q.uniqueResult(); return a; 5.3圖書管理模塊的實現(xiàn) 圖書管理模塊主要分為圖書入庫、查看圖書、統(tǒng)計圖書,其中圖書入庫是往 圖書管理數(shù)據(jù)庫中添加圖書信息??磮D書功能中可以查看圖書詳細信息,并對圖 書信息進行修改或刪除某些廢棄圖書信息。 5.3.1圖書入庫功能的實現(xiàn) 點擊添加圖書功能,填寫圖書基本信息,為圖書選擇類型,類型是與數(shù)據(jù)庫 交互動態(tài)生成的下拉列表,具體界面如圖 5-3 所示。 圖 5-3 圖書入庫界面 其實現(xiàn)的代碼如下: public String addInfoBook() this.sortList = ibs.listBookSort(); return add; 江蘇開放大學計算機本(論文) -29- public List listBookSort() return this.getHibernateTemplate().find(from TSort tsort); public String addSaveBook() ibs.saveBook(book); book = null; bookList = this.listBook(); return Book; public void saveBook(TBook book) Date now = new Date(); book.setBuyDate(now); book.setCurrentNum(book.getTotalNum(); ibd.saveBook(book); public void saveBook(TBook book) this.getHibernateTemplate().save(book); 5.3.2圖書維護功能的實現(xiàn) 點擊圖書維護功能,展示所有圖書的信息列表,在每個圖書信息行后提供刪 除和修改操作功能,并且可以單擊選定某一個圖書信息后的詳細信息進行詳細查 看圖書信息。具體圖書列表界面如圖 5-4 所示 圖 5-4 圖書列表界面 其實現(xiàn)的代碼如下: public String listAllBook() bookList = this.listBook(); return Book; public List listBook(TBook book, Page page) String hql = from TBook tb where 1=1; if(book!=null) if(book.getBookNum() != null if(book.getBookName() != null if(book.getWriter() != null if(!book.getSortId().getSortId().trim().equals(-1) hql = hql + and tb.sortId.sortId = + book.getSortId().getSortId()+; hql = hql + order by tb.bookName; else hql = hql + order by tb.buyDate desc; Session session = this.getHibernateTemplate().getSessionFactory().openSession(); Query q = session.createQuery(hql); q.setFirstResult(page.getStartRow(); q.setMaxResults(5); List list = q.list(); return list; (1)刪除圖書功能的實現(xiàn) 管理員刪除圖書,刪除時可刪除一個,也可同時多選刪除, 其實現(xiàn)的代碼如下: public String deleteOneBook() ibs.delBookById(bookNum); bookList = this.listBook(); return Book; public String deleteMoreBook() ibs.delMoreBook(bookNums); bookList = this.listBook(); return Book; public void delBookById(String bookNum) this.getHibernateTemplate().delete(this.getHibernateTemplate(). get(TBook.class, bookNum); public void delMoreBook(String bookNums) for(int i=0; i<bookNums.length;i+) 江蘇開放大學計算機本(論文) -31- this.getHibernateTemplate().delete(this.getHibernateTemplate(). get(TBook.class, bookNumsi); (2)修改圖書信息功能的實現(xiàn) 在管理員修改圖書信息時,跳轉到圖書信息詳細表單中,列出所要修改圖書 的詳細信息,并可以進行修改,則修改界面如圖 5-5 所示。 圖 5-5 修改圖書信息界面 其實現(xiàn)的代碼如下: public String modifyInfoBook() this.sortList = ibs.listBookSort(); book = ibs.queryOneBookById(bookNum); return modifyInfo; public String modifySaveBook() ibs.modifyBook(book); book = null; bookList = this.listBook(); return Book; 江蘇開放大學計算機本(論文) -32- public TBook queryOneBookById(String bookNum) TBook book = (TBook)this.getSession().createQuery(from TBook tb where tb.bookNum = ?).setString(0, bookNum).uniqueResult(); this.getSession().close(); return book; public void modifyBook(TBook book) this.getHibernateTemplate().update(book); (3)查看圖書詳細信息功能的實現(xiàn) 在管理員點擊詳細信息時,跳轉到某圖書信息詳細表單中,列出所選圖書的 詳細信息,則顯示界面如圖 5-6 所示。 圖 5-6 圖書詳細信息界面 其實現(xiàn)的代碼如下: public String infoDetailBook() book = ibs.queryOneBookById(bookNum); return Detail; public TBook queryOneBookById(String bookNum) TBook book = (TBook)this.getSession().createQuery(from TBook tb where tb.bookNum = ?).setString(0, bookNum).uniqueResult(); this.getSession().close(); return book; 江蘇開放大學計算機本(論文) -33- 5.4學生管理模塊的實現(xiàn) 學生管理模塊主要分為添加學生、查看學生、修改學生,查看學生的詳細信 息。 5.4.1學生添加功能的實現(xiàn) 點擊添加學生,填寫學生基本信息,具體界面如圖 5-7 所示。 圖 5-7 辦理借書證界面 其實現(xiàn)的代碼如下: public String addInfoStudent() this.academyList = iss.listAllAcademy(); return add; public void addStudent(TStudent student) Date now = new Date(); 江蘇開放大學計算機本(論文) -34- student.setCreateDate(now); student.setLendedNum(0); isd.saveStudent(student); public List listAllAcademy() return this.getHibernateTemplate().find(from TAcademy ta); public List listAllClass() return this.getHibernateTemplate().find(from TClass tc); public void saveStudent(TStudent student) this.getHibernateTemplate().save(student); 5.4.2學生維護功能的實現(xiàn) 點擊學生維護功能,展示所有讀者的信息列表,在每個讀者信息行后提供刪 除和修改操作功能,并且可以單擊選定某一個讀者信息后的詳細信息進行詳細查 看讀者信息。具體讀者列表界面如圖 5-8 所示 圖 5-8 讀者列表界面 其實現(xiàn)的代碼如下: public String listAllStudent() studentList = this.getStudentListByPage(); return Student; public List listAllStudent(Page page) Session session = this.getHibernateTemplate().getSessionFactory().openSession(); Query q = session.createQuery(from TStudent ts); q.setFirstResult(page.getStartRow(); q.setMaxResults(5); List list = q.list(); 江蘇開放大學計算機本(論文) -35- return list; (1)刪除學生功能的實現(xiàn) 管理員刪除讀者,刪除時可刪除一個,也可同時多選刪除。 其實現(xiàn)的代碼如下: public String deleteOneStudent() iss.deleteOneStudent(studentNum); studentList = this.getStudentListByPage(); return Student; public String deleteMoreStudent() iss.deleteMoreStudent(studentNums); studentList = this.getStudentListByPage(); return Student; public void deleteOneStudent(String studentNum) this.getHibernateTemplate().delete(this.getHibernateTemplate(). get(TStudent.class, studentNum); public void deleteMoreStudent(String studentNums) for(int i=0;i<studentNums.length;i+) this.getHibernateTemplate().delete(this.getHibernateTemplate(). get(TStudent.class, studentNumsi); (2)修改學生信息功能的實現(xiàn) 在管理員修改學生信息時,跳轉到學生信息詳細表單中,列出所要修改學生 的詳細信息,并可以進行修改,則修改界面如圖 5-9 所示。 江蘇開放大學計算機本(論文) -36- 圖 5-9 修改讀者信息界面 其實現(xiàn)的代碼如下: public String modifyInfoStudent() this.student = iss.getStudentByid(studentNum); this.academyList = iss.listAllAcademy(); this.clas