畢業(yè)設(shè)計(論文)-基于Java的圖書館管理系統(tǒng)的設(shè)計.doc_第1頁
畢業(yè)設(shè)計(論文)-基于Java的圖書館管理系統(tǒng)的設(shè)計.doc_第2頁
畢業(yè)設(shè)計(論文)-基于Java的圖書館管理系統(tǒng)的設(shè)計.doc_第3頁
畢業(yè)設(shè)計(論文)-基于Java的圖書館管理系統(tǒng)的設(shè)計.doc_第4頁
畢業(yè)設(shè)計(論文)-基于Java的圖書館管理系統(tǒng)的設(shè)計.doc_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

畢業(yè)設(shè)計 (論文) 作 者: 學(xué) 號: 系 : 計算機(jī) 專 業(yè): 計算機(jī) 題 目: 基于 Java 的圖書館管理系統(tǒng)的設(shè)計 指導(dǎo)者: (姓 名) (專業(yè)技術(shù)職務(wù)) 評閱者: (姓 名) (專業(yè)技術(shù)職務(wù)) 2012 年 6 月 6 日 畢業(yè)設(shè)計(論文)中文摘要 基于基于 JavaJava 的圖書館管理系統(tǒng)的設(shè)計的圖書館管理系統(tǒng)的設(shè)計 摘要:摘要: 隨著科學(xué)技術(shù)的進(jìn)步,計算機(jī)行業(yè)的迅速發(fā)展,計算機(jī)信息處理系統(tǒng)的引進(jìn) 已徹底改變了許多系統(tǒng)的管理方式。圖書管管理系統(tǒng)就是其中一個,系統(tǒng)中解決 了學(xué)校圖書館管理中出現(xiàn)的基本問題以及相關(guān)統(tǒng)計工作。系統(tǒng)中有服務(wù)器端和客 戶端兩個程序。服務(wù)器端程序負(fù)責(zé)開啟數(shù)據(jù)庫,建立與客戶端的連接,客戶端程 序可以實現(xiàn)讀者用戶和管理員用戶的登錄及內(nèi)部操作。讀者用戶可以進(jìn)行圖書的 查詢、借閱信息的查詢及個人信息的修改的操作。管理員用戶可以進(jìn)行圖書的查 詢、借書還書、圖書及管理員的添加、刪除等操作。系統(tǒng)采用 Java 中的 Swing 包來進(jìn)行界面的設(shè)計,使用 C/S 設(shè)計模式,采用了 Eclipse 開發(fā)平臺, Access 作為后臺存儲的數(shù)據(jù)庫。論文敘述了圖書館管理系統(tǒng)的整個實現(xiàn)過程,簡單介紹 了 Java 編程的相關(guān)知識,重點闡述了各個模塊的設(shè)計思想以及設(shè)計難點。 關(guān)鍵詞:圖書館管理 Java Swing C/S Socket 畢業(yè)設(shè)計(論文)外文摘要 TitleTitle Librarian Management System Based On Java AbstractAbstract With the advances in science and technology, the rapid development of the computer industry, the introduction of computer information processing system has completely changed the management of many systems. Book tube management system is a system to solve the basic problems in the school library management and related statistical work. There are two programs of server and client systems. The server- side program is responsible for opening the database, to establish a connection with the client, the client program can readers users and administrators of the users login and internal operations. Reader users can query for books, to modify the operation of the borrow information inquiries and personal information. The administrator user can query for books, library books, books, and administrators to add, delete and other operations. The system uses Javas Swing package to interface design, C / S design pattern, using the Eclipse development platform, the Access database as the back-end storage. The paper describes the implementation process of the library management system, a brief knowledge of Java programming, focuses on the various modules of the design ideas and design difficulties. KeywordsKeywords: library management Java Swing C/S Socket 目次目次 1 引言 .1 1.1 課題背景.1 1.2 目前圖書管理系統(tǒng)存在的問題.1 1.3 課題意義.2 1.4 課題內(nèi)容.2 2 需求分析 .2 2.1 可行性分析.2 2.2 功能分析.3 2.3 性能分析.3 3. 相關(guān)技術(shù)介紹 .4 3.1 SWING介紹 .4 3.2 C/S 介紹 .5 3.3 SOCKET介紹 .6 4 系統(tǒng)設(shè)計 .6 4.1 模塊設(shè)計.6 4.2 數(shù)據(jù)庫設(shè)計.7 5 程序?qū)崿F(xiàn) .10 5.1 客戶端與服務(wù)器端的連接.10 5.2 登錄模塊程序?qū)崿F(xiàn).11 5.3 管理員功能模塊的實現(xiàn).12 5.4 讀者功能模塊的實現(xiàn).18 6. 軟件測試 .19 6.1 軟件測試的方法與步驟.19 6.2 測試用例設(shè)計與測試用例的運(yùn)行過程及測試結(jié)果分析.20 6.3 分析.21 結(jié)論 .22 參考文獻(xiàn) .23 致 謝 .24 (論文) 第 1 頁 共 24 頁 1 1 引言引言 1.11.1 課題背景課題背景 在我國信息化管理系統(tǒng)近年來日趨成熟,在采用計算機(jī)技術(shù)進(jìn)行管理之前,圖書的 圖書借閱工作是非常繁瑣和復(fù)雜的。圖書的借閱工作完全依賴于手工操作,不但費(fèi)時費(fèi) 力而且經(jīng)常容易出錯。讀者在借書的時候首先要有一個借閱證,工作人員把讀者要借閱 的信息卡與讀者的借閱證放到一起,并且在借閱證上填寫借閱信息,這就是手工操作時 代的借閱過程。這樣的借閱工作顯而易見,效率非常低,因為工作量大不僅容易丟失, 而且還容易出錯??偟膩碚f,缺乏系統(tǒng)、規(guī)范的信息管理手段。利用計算機(jī)來處理這些 流程無疑會極大程度地提高效率和處理能力。讀者排隊的時間會明顯縮短,讀者可以花 更多的時間在選書和看書上面。而且近年來,隨著圖書館規(guī)模的逐漸擴(kuò)大,圖書數(shù)量也 相應(yīng)的大量增加,有關(guān)的圖書的各種信息成倍增長,總是面對大量的讀者信息、書籍信 息、以及兩者相互作用而產(chǎn)生的借書信息、還書信息等等面對如此龐大的信息量,需要 一套合理、有效、規(guī)范的圖書館管理系統(tǒng)。對圖書資料進(jìn)行統(tǒng)一、集中的管理。使用本 軟件之后,工作人員可以查詢某位讀者、某種圖書的借閱情況,以及借書還書,讀者的 信息增加修改等變得都非常方便和快捷,效率也提高了。 1.21.2 目前圖書管理系統(tǒng)存在的問題目前圖書管理系統(tǒng)存在的問題 1.檢索速度慢、效率低 因為圖書館的藏書種類多、數(shù)量多,將藏書準(zhǔn)確地分門別類,快速檢索,手工進(jìn)行 非常困難,有時會出現(xiàn)一些錯誤信息,例如館中沒有此書或已被別人借走且沒有記錄。 圖書館的規(guī)模越大,這個問題越突出。 2.借書、還書工作量大 借書、還書頻率越大,說明圖書館的作用越大,然而隨之而來的大量的借書、還書 登記、實存圖書的更新以及借出圖書超期、遺失等的處理,其工作量之大,往往是人工 操作所難以勝任的。而且經(jīng)常會出現(xiàn)這樣那樣的差錯。 3.圖書統(tǒng)計工作難、藏書更新不能及時完成。 圖書館的圖書應(yīng)根據(jù)科學(xué)技術(shù)的發(fā)展和教學(xué)工作的需要及時添加和更新,然而由于 藏書數(shù)量及圖書種類越來越多,加上自然損耗,人為破壞,使圖書的統(tǒng)計工作難以及時 (論文) 第 2 頁 共 24 頁 完成,藏書的更新也就很難有針對性地進(jìn)行,藏書的知識結(jié)構(gòu)得不到良好地控制。 1.31.3 課題意義課題意義 隨著計算機(jī)的廣泛應(yīng)用,其逐步成為現(xiàn)代化的標(biāo)志。圖書館的信息量也會越來越大, 因此需要對讀者資源、書籍資源、借書信息、還書信息進(jìn)行管理,及時了解各個環(huán)節(jié)中 信息的變更,要對因此而產(chǎn)生的單據(jù)進(jìn)行及時的處理,為了提高圖書館或者企業(yè)內(nèi)部對 圖書存銷的自動化的管理,能夠更快速的滿足讀者的要求,提高各種工作的效率,現(xiàn)對 其設(shè)計相應(yīng)的系統(tǒng),以達(dá)到上述的目的。 圖書管理系統(tǒng)的主要功能是實現(xiàn)圖書館圖書借閱和歸還的管理的自動化。圍繞這一 主要功能,本系統(tǒng)涉及到以下核心功能:借閱管理,歸還管理。除了這些核心功能外, 還包括一些基本和輔助功能,它們是:用戶管理、圖書館參數(shù)、管理員管理。 1.41.4 課題內(nèi)容課題內(nèi)容 1.實現(xiàn)圖書館對所藏圖書的按類別、書名等多方面的查詢,最大的方便讀者和圖書 館工作人員對所需圖書的查詢; 2.建立圖書館外借讀者數(shù)據(jù)庫,方便工作人員對讀者進(jìn)行有效管理; 3.建立圖書館工作人員數(shù)據(jù)庫,限定每個工作人員對軟件操作的權(quán)限,最大限度的 保護(hù)數(shù)據(jù)庫; 4. 建立讀者數(shù)據(jù)庫,限定每個讀者對圖書借閱的操作的權(quán)限,最大限度的保護(hù)數(shù) 據(jù)庫; 5.實現(xiàn)圖書館對新書入庫,舊書注銷的簡單處理,方便進(jìn)貨;實現(xiàn)圖書館的有效管 理。 2 2 需求需求分析分析 2.12.1 可行性分析可行性分析 采用現(xiàn)代化統(tǒng)一的計算機(jī)系統(tǒng),能夠有效優(yōu)化圖書館管理系統(tǒng),使其高效的發(fā)揮最 大作用,能夠迅捷的為讀者提供相應(yīng)的服務(wù),也同時能為管理人員減輕負(fù)擔(dān)。開發(fā)本系 統(tǒng)的可行性研究如下: 2.1.1 技術(shù)可行性 技術(shù)上的可行性分析主要分析技術(shù)條件能否順利完成開發(fā)工作,軟、硬件能否滿足 (論文) 第 3 頁 共 24 頁 需要。本系統(tǒng)采用 java 開發(fā)出友好美觀的人機(jī)界面,便于用戶理解、操作。使用 Eclipse 作為開發(fā)工具,使用方面規(guī)范性強(qiáng)。數(shù)據(jù)庫管理系統(tǒng)采用 Access,它能夠處理 大量數(shù)據(jù),同時保持?jǐn)?shù)據(jù)的完整性、安全性。因此本系統(tǒng)的開發(fā)平臺已成熟可行。硬件 方面,在科技飛速發(fā)展的今天,硬件更新速度越來越快,容量越來越大,可靠性越來越 高,價格越來越便宜,因此硬件平臺也能夠滿足本系統(tǒng)所需1。 2.1.2 經(jīng)濟(jì)可行性 鑒于計算機(jī)技術(shù)發(fā)展異常迅猛, ,在硬件軟件配置以及開發(fā)技術(shù)均以可行的情況下 開發(fā)這樣一個管理系統(tǒng)成本不會很高,但其可以大大提高圖書館的工作效率,也是圖書 館管理發(fā)展的必然趨勢,其必將有比較寬闊的市場, ,加上目標(biāo)系統(tǒng)并不是十分復(fù)雜和開 發(fā)周期較短,人員經(jīng)濟(jì)支出有限。開發(fā)完成運(yùn)行后,為使用者帶來便利,為系統(tǒng)的進(jìn)一 步推廣創(chuàng)造了條件,經(jīng)濟(jì)收益將遠(yuǎn)超過投資。從經(jīng)濟(jì)角度考慮,此系統(tǒng)開發(fā)可行。 2.22.2 功能分析功能分析 該系統(tǒng)主要建立一個基于 C/S 模式的圖書管理系統(tǒng),面對當(dāng)今很多小型圖書管理仍 是人工管理帶來的檢索速度慢,效率低,借閱歸還圖書量大,圖書統(tǒng)計工作量大,藏書不能 完成及時更新的問題,該系統(tǒng)可以對兩個不同的用戶類型實現(xiàn)不同的功能: 1.對于圖書館工作人員能夠方便的對圖書信息的管理,可以增加、修改、刪除圖書, 豐富具體圖書的信息,對不同圖書進(jìn)行分類操作;可以根據(jù)圖書證號和圖書的條形碼的 進(jìn)行借書和還書的操作;對讀者的信息進(jìn)行增加、修改、刪除,以及讀者的的信息統(tǒng)計 來實現(xiàn)對讀者的管理;對管理員的一些信息進(jìn)行添加、刪除和管理權(quán)限的設(shè)置來實現(xiàn)對 管理員的管理;可以查詢圖書相關(guān)資料、當(dāng)前借閱情況和歷史借閱情況;以及對一些參 數(shù)的 管理。 2.對于讀者在本系統(tǒng)的應(yīng)用下可實現(xiàn)按照各種方式(如:書名,作者,ISBN 號,出版) 查詢圖書館的藏書情況;能夠查詢自己的借閱圖書情況,也能查詢自己的信息 (如學(xué)號、 姓名、密碼、電話、地址等)和更新自己的信息以便對自己的信息進(jìn)行管理。 2.32.3 性能分析性能分析 1打開軟件后任意的瀏覽切換不同的界面(隨意操作) ,包括“圖形登陸界面” , “圖書查詢界面” , “借書還書界面” , “讀者管理界面” , “管理員界面” , “圖書管理界面 ”及各個菜單項和按鈕均有反應(yīng)且反應(yīng)正確無誤。 (論文) 第 4 頁 共 24 頁 2不可用的按鈕,全部置灰,減少用戶無謂的操作,提高可操作性。 3具有較高的可靠性和容錯能力,無溢出問題和數(shù)據(jù)丟失。 4界面設(shè)計合理。面板內(nèi)文字為當(dāng)前語言,并且語意明確。各個組件無交錯覆蓋。 輸入框內(nèi)文字字?jǐn)?shù)以及類型任意輸入,無越界以及提示違規(guī)現(xiàn)象。 3.3. 相關(guān)技術(shù)介紹相關(guān)技術(shù)介紹 3.13.1 SwingSwing 介紹介紹 Swing 是一個用于開發(fā) Java 應(yīng)用程序用戶界面的開發(fā)工具包。它以抽象窗口工具包 (AWT)為基礎(chǔ)使跨平臺應(yīng)用程序可以使用任何可插拔的外觀風(fēng)格。Swing 開發(fā)人員只用 很少的代碼就可以利用 Swing 豐富、靈活的功能和模塊化組件來創(chuàng)建優(yōu)雅的用戶界面。 工具包中所有的包都是以 swing 作為名稱,例如 javax.swing,javax.swing.event。2、3 在創(chuàng)建圖形界面時,一般要遵循以下步驟: (1)導(dǎo)入 Swing 包。用以下語句導(dǎo)入 Swing 包 import javax.swing.*; 大部 分 Swing 程序用到了 AWT 的基礎(chǔ)底層結(jié)構(gòu)和事件模型 ,因此需要導(dǎo)入兩個包: import java.awt.*; import java.awt.event.*; 如果圖形界面中包括了事件處理, 那么還需要導(dǎo)入事件處理包: import javax.swing.event.*;。 (2)選擇界面風(fēng)格 Swing 允許選擇程序的圖形界面風(fēng)格常用的有java 風(fēng)格, windows 風(fēng)格等 下面的代碼用于選擇圖形界面風(fēng)格,這里選擇的是跨平臺的Java 界面風(fēng)格 8、14。 try UIManager.setLookAndFeel( UIManager.getCrossPlatformLookAndFeelClassName( ); catch (Exception e) (3)設(shè)置頂層容器。圖形界面至少要有一個頂級 Swing 容器。頂級 Swing 容器 為其它 Swing 組件在屏幕上的繪制和處理事件提供支持 常用的頂級容器: JFrame(框架):表示主程序窗口 ; JDialog(對話框):每個 JDialog 對象表 示一個對話框,對話框?qū)儆诙壌翱?;JApplet(小程序)在 瀏覽器內(nèi)顯示一個小 程序界面。 一個框架包括邊界、菜單欄、 工具欄、狀態(tài)欄,以及中間占主要部分 (論文) 第 5 頁 共 24 頁 的窗格。窗格也可以看作是一種面板,但它是框架的一個組成部分,組件不會直接 放到框架上,而是放在若干個面板上,這些面板再放到窗格上,用框架對象的 getContentPane()函數(shù)來獲得窗格,再調(diào)用窗格的 add()函數(shù)放置面板 9、4。 (4)設(shè)置按鈕和標(biāo)簽 按鈕(JButton)是常用組件,按鈕上允許有圖標(biāo)或字符串, 也可以兩者兼容。標(biāo)簽(JLabel)可以顯示文本、圖像或者同時顯示。標(biāo)簽一般用來顯 示提示信息,它不對輸入事件作出反應(yīng)16。 (5)將組件放到容器上。用 add()函數(shù)來添加組件。 (6)為組件增加邊框。用 add()函數(shù)來添加。 (7)處理事件 。通過添加不同的監(jiān)聽器來監(jiān)聽并作出相應(yīng)的反應(yīng)13。 (8)輔助技術(shù)支持。根據(jù)自己的需求來進(jìn)行選擇。 3.23.2 C/SC/S 介紹介紹 C/S 結(jié)構(gòu)軟件(即客戶機(jī)/服務(wù)器模式)分為客戶機(jī)和服務(wù)器兩層,客戶機(jī)不是毫無 運(yùn)算能力的輸入、輸出設(shè)備,而是具有了一定的數(shù)據(jù)處理和數(shù)據(jù)存儲能力,通過把應(yīng)用 軟件的計算和數(shù)據(jù)合理地分配在客戶機(jī)和服務(wù)器兩端,可以有效地降低網(wǎng)絡(luò)通信量和服 務(wù)器運(yùn)算量。由于服務(wù)器連接個數(shù)和數(shù)據(jù)通信量的限制,這種結(jié)構(gòu)的軟件適于在用戶數(shù) 目不多的局域網(wǎng)內(nèi)使用7。 簡單的 C/S 體系結(jié)構(gòu)的數(shù)據(jù)庫應(yīng)用由兩部分組成,即客戶應(yīng)用程序和數(shù)據(jù)庫服務(wù)程 序。二者可分別稱為前臺程序與后臺程序。運(yùn)行數(shù)據(jù)庫服務(wù)器程序的機(jī)器,也稱為應(yīng)用 服務(wù)器。一旦服務(wù)器程序被啟動,就隨時等待響應(yīng)客戶程序發(fā)來的請求;客戶應(yīng)用程序 運(yùn)行在用戶自己的電腦上,對應(yīng)于數(shù)據(jù)庫服務(wù)器,可稱為客戶電腦,當(dāng)需要對數(shù)據(jù)庫中 的數(shù)據(jù)進(jìn)行任何操作時,客戶程序就自動地尋找服務(wù)器程序,并向其發(fā)出請求,服務(wù)器 程序根據(jù)預(yù)定的規(guī)則作出應(yīng)答,送回結(jié)果,應(yīng)用服務(wù)器運(yùn)行數(shù)據(jù)負(fù)荷較輕。數(shù)據(jù)的儲存 管理功能較為透明。在數(shù)據(jù)庫應(yīng)用中,數(shù)據(jù)的儲存管理功能,是由服務(wù)器程序和客戶應(yīng) 用程序分別獨立進(jìn)行的,前臺應(yīng)用可以違反的規(guī)則,并且通常把那些不同的(不管是已 知還是未知的)運(yùn)行數(shù)據(jù),在服務(wù)器程序中不集中實現(xiàn),例如訪問者的權(quán)限,編號可以 重復(fù)、必須有客戶才能建立定單這樣的規(guī)則。所有這些,對于工作在前臺程序上的最終 用戶,是“透明”的,他們無須過問(通常也無法干涉)背后的過程,就可以完成自己 的一切工作。在客戶服務(wù)器架構(gòu)的應(yīng)用中,前臺程序不是非?!笆菪 ?,麻煩的事情都 (論文) 第 6 頁 共 24 頁 交給了服務(wù)器和網(wǎng)絡(luò)。在 C/S 體系的下,數(shù)據(jù)庫不能真正成為公共、專業(yè)化的倉庫,它 受到獨立的專門管理。 3.33.3 SocketSocket 介紹介紹 所謂 socket 通常也稱作套接字,應(yīng)用程序通常通過套接字向網(wǎng)絡(luò)發(fā)出請求或 者應(yīng)答網(wǎng)絡(luò)請求。以 J2SDK-1.3 為例,Socket 和 ServerSocket 類庫位于 java .net 包 中。ServerSocket 用于服務(wù)器端,Socket 是建立網(wǎng)絡(luò)連接時使用的。在連接成功時, 應(yīng)用程序兩端都會產(chǎn)生一個 Socket 實例,操作這個實例,完成所需的會話。socket 是 面向客戶/服務(wù)器模型而設(shè)計的,針對客戶和服務(wù)器程序提供不同的 socket 系統(tǒng)調(diào)用。 客戶隨機(jī)申請一個 socket (相當(dāng)于一個想打電話的人可以在任何一臺入網(wǎng)電話上撥號 呼叫),系統(tǒng)為之分配一個 socket 號;服務(wù)器擁有全局公認(rèn)的 socket ,任何客戶都 可以向它發(fā)出連接請求和信息請求(相當(dāng)于一個被呼叫的電話擁有一個呼叫方知道的電 話號碼)。 根據(jù)連接啟動的方式以及本地套接字要連接的目標(biāo),套接字之間的連接過程可以分 為三個步驟:服務(wù)器監(jiān)聽,客戶端請求,連接確認(rèn)6。 服務(wù)器監(jiān)聽:是服務(wù)器端套接字并不定位具體的客戶端套接字,而是處于等待連接 的狀態(tài),實時監(jiān)控網(wǎng)絡(luò)狀態(tài)。 客戶端請求:是指由客戶端的套接字提出連接請求,要連接的目標(biāo)是服務(wù)器端的套 接字。為此,客戶端的套接字必須首先描述它要連接的服務(wù)器的套接字,指出服務(wù)器端 套接字的地址和端口號,然后就向服務(wù)器端套接字提出連接請求。 連接確認(rèn):是指當(dāng)服務(wù)器端套接字監(jiān)聽到或者說接收到客戶端套接字的連接請求, 它就響應(yīng)客戶端套接字的請求,建立一個新的線程,把服務(wù)器端套接字的描述發(fā)給客戶 端,一旦客戶端確認(rèn)了此描述,連接就建立好了。而服務(wù)器端套接字繼續(xù)處于監(jiān)聽狀態(tài), 繼續(xù)接收其他客戶端套接字的連接請求15。 4 4 系統(tǒng)設(shè)計系統(tǒng)設(shè)計 4.14.1 模塊設(shè)計模塊設(shè)計 系統(tǒng)可以對兩個不同的用戶類型實現(xiàn)不同的功能。 1.圖書館管理人員功能模塊,它包括 1)館藏檢索模塊:根據(jù)圖書的書名、isbn、 (論文) 第 7 頁 共 24 頁 出版社、作者來查圖書信息;再根據(jù)讀者的圖書證號來查詢讀者的借閱信息。2)借書 還書模塊:根據(jù)圖書證號和圖書條形碼進(jìn)行圖書借閱操作;通過圖書條形碼來進(jìn)行還書 操作。3)系統(tǒng)維護(hù):圖書維護(hù)可以增加、修改、刪除圖書,豐富具體圖書的信息;讀者 維護(hù)可對讀者的信息進(jìn)行增加、修改、刪除,以及讀者的信息統(tǒng)計來實現(xiàn)對讀者的管理; 管理 員維護(hù)讀管理員的一些信息進(jìn)行添加、刪除和管理權(quán)限的設(shè)置來實現(xiàn)對管理員的管理; 參數(shù)維護(hù)圖書館管理的一些參數(shù)的進(jìn)行管理。 2.讀者管理模塊,各種它包括 1)書目檢索模塊可以根據(jù)書名、作者、ISBN 號、出 版社查詢圖書館的藏書情況。2)我的借閱模塊能夠查詢自己的借閱圖書情況,及時根據(jù) 圖書信息進(jìn)行還書或是續(xù)借,以免超期。3)個人信息模塊可以對自己的學(xué)號、姓名、 密碼、電話、地址等進(jìn)行更新以便對自己的信息進(jìn)行管理。功能模塊圖如圖 4.1 所示。 圖 4.1 功能模塊圖 4.24.2 數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫設(shè)計 數(shù)據(jù)庫是整個系統(tǒng)的基石,數(shù)據(jù)庫的設(shè)計優(yōu)劣直接影響到整個系統(tǒng)的設(shè)計成敗,本節(jié) 對數(shù)據(jù)庫的設(shè)計進(jìn)行專門闡述。 數(shù)據(jù)庫設(shè)計是把現(xiàn)實世界的實體模型與需求轉(zhuǎn)換成數(shù)據(jù)庫的模型的過程,它是建立 圖書管理系統(tǒng) 管理員登陸 讀者登陸 館藏檢索 借書還書系統(tǒng)維護(hù) 書 目 檢 索 查 讀 者 借 閱 借 信 息 借 書 還 書 圖 書 維 護(hù) 讀 者 維 護(hù) 管 理 員 維 護(hù) 參 數(shù) 維 護(hù) 書 目 檢 索 我 的 借 閱 個 人 信 息 (論文) 第 8 頁 共 24 頁 數(shù)據(jù)庫應(yīng)用系統(tǒng)的核心問題。數(shù)據(jù)庫及其應(yīng)用的性能都建立在良好的數(shù)據(jù)庫設(shè)計的基礎(chǔ) 之上,數(shù)據(jù)庫的數(shù)據(jù)是一切操作的基礎(chǔ),如果數(shù)據(jù)庫設(shè)計不好,那么其它一切用于提高 數(shù)據(jù)庫性能的方法收效都是有限的。數(shù)據(jù)庫設(shè)計的關(guān)鍵是如何使設(shè)計的數(shù)據(jù)庫能合理地 存儲用戶的數(shù)據(jù),方便用戶進(jìn)行數(shù)據(jù)處理10。 設(shè)計數(shù)據(jù)庫必須遵循一定的規(guī)則,在關(guān)系型數(shù)據(jù)庫中,這種規(guī)則就是范式,范式是 符合某一種級別的關(guān)系模式的集合。一般人們設(shè)計數(shù)據(jù)庫遵循第三范式。即:數(shù)據(jù)庫表 中不包含已在其他表中包含的非主關(guān)鍵字信息。采用范式減少了數(shù)據(jù)冗余,節(jié)約了存儲 空間,同時加快了增、刪、改的速度11。 4.2.1 圖書信息表結(jié)構(gòu)設(shè)計 圖書信息表主要用于存儲圖書館中所藏圖書的相關(guān)信息,其中的相關(guān)信息是在圖書 入庫時由操作員進(jìn)行添加完善,此表主要用于讀者和圖書管理員對館中圖書的查詢,系統(tǒng) 用戶根據(jù)圖書的某個屬性進(jìn)行查詢,便可得知圖書的其他相關(guān)信息,其中圖書所在書架屬 性是便于讀者借閱時對圖書的尋找,圖書價格是在讀者不慎將圖書遺失時對遺失圖書進(jìn) 行賠償?shù)囊罁?jù)。表的具體結(jié)果如表 4.1 所示。 表 4.1 圖書信息表 bookdata 字段名稱數(shù)據(jù)類型字段大小是否允許為空說明 isbn 文本 20Yes 國際標(biāo)準(zhǔn)書號 name 文本 50Yes 書名 series 文本 20Yes 叢書名 authors 文本 200Yes 作者信息 publisher 文本 50Yes 出版發(fā)行 size 文本 50Yes 開本信息 pages 數(shù)字整形 Yes 頁數(shù) price 數(shù)字單精度型 Yes 定價 introduction 文本 255Yes 內(nèi)容簡介 picture 文本 250Yes 圖片 clnum 文本 10Yes 分類號 4.2.2 圖書管理參數(shù)信息表結(jié)構(gòu)設(shè)計 該表的設(shè)計主要是方便對圖書管理參數(shù)的管理,和對圖書的查詢,在實際應(yīng)用中圖書 管理員就是根據(jù)圖書類型的不同將之分列在不同的書架,以方便讀者的借閱尋找,其中可 借閱天數(shù)項設(shè)置了不同類型圖書的借閱期限,可根據(jù)圖書的具體情況進(jìn)行不同的維護(hù)管 理,表的具體結(jié)構(gòu)設(shè)計如表 4.2 所示。 表 4.2 圖書管理參數(shù)信息表 parameter 字段名稱數(shù)據(jù)類型字段長度是否允許為空說明 (論文) 第 9 頁 共 24 頁 type 數(shù)字整型 Yes 讀者類別 amount 數(shù)字整型 Yes 借書數(shù)量 period 數(shù)字整型 Yes 借書天數(shù) dailyfine 數(shù)字單精度型 Yes 超期每日罰款金額(元) 4.2.3 讀者信息表結(jié)構(gòu)設(shè)計 讀者信息表的設(shè)計是為了圖書館管理員對讀者進(jìn)行管理,其中讀者 ID,不同類型證件 的號碼都是唯一的,是讀者在借閱圖書時需要輸入對讀者身份進(jìn)行識別的信息,讀者電話 等信息是為了與讀者進(jìn)行聯(lián)系,讀者類型信息決定了讀者一次性可借閱的圖書的數(shù)量,注 冊時間可用于查詢計算讀者身份有效的期限,操作員是為了便于對信息才操作的查詢。 表的具體結(jié)構(gòu)設(shè)計如圖 4.3 所示。 表 4.3 讀者信息表 reader 字段名稱數(shù)據(jù)類型字段大小是否允許為空說明 readerid 文本 12Yes 讀者編號 passwd 文本 50Yes 密碼 name 文本 20Yes 姓名 gender 文本 r 2Yes 性別 addresse 文本 50Yes 地址 tel 文本 r 20Yes 電話 startdate 文本 50Yes 開通日期 enddate 文本 50Yes 作廢日期 type 數(shù)字整型 Yes 1:大學(xué)生,2:研 究生,3:教師 4.2.4 管理員類型信息表結(jié)構(gòu)設(shè)計 此表的設(shè)計是為了對不同身份的讀者進(jìn)行分類方便讀者的管理,其中可借閱圖書數(shù) 量的屬性設(shè)定,是根據(jù)讀者需求的不同對起權(quán)限進(jìn)行的設(shè)置,用于規(guī)定不同類型讀者一次 可借閱的圖書數(shù)量,表的具體結(jié)構(gòu)設(shè)計如圖 4.4 所示。 表 4.4 管理員信息表 librarian 字段名稱數(shù)據(jù)類型字段大小是否允許為空說明 userid 文本 20yes 賬號 passwd 文本 50yes 密碼 name 文本 50yes 姓名 bookp 數(shù)字整型 yes 是否有圖書管理權(quán)限(添加、刪除、修改圖 書信息),1:有,0:沒有 readerp 數(shù)字整型 yes 是否有讀者管理權(quán)限(添加、刪除、修改讀 者信息),1:有,0:沒有 parameterp 數(shù)字整型 yes 是否有參數(shù)設(shè)置權(quán)限(超期罰款金額、借閱 時長、借書數(shù)量),1:有,0:沒有 (論文) 第 10 頁 共 24 頁 4.2.5 圖書借閱信息表結(jié)構(gòu)設(shè)計 該表的設(shè)計是用于對讀者借閱圖書進(jìn)行管理,表中圖書條碼屬性是對借閱圖書的唯 一性識別標(biāo)識,讀者 ID 號記錄借閱的相應(yīng)讀者,借書時間記錄了相應(yīng)的歸還時間,以及歸 還時是否超時,以及超期天數(shù) ,根據(jù)讀者的類型以及天數(shù)進(jìn)行罰款,是否歸還標(biāo)識可查 詢讀書是否被歸還,表的具體結(jié)構(gòu)設(shè)計如圖 4.5 所示。 表 4.5 圖書借閱信息表 lendinfo 字段名稱數(shù)據(jù)類型字段長度是否允許為空說明 id 自動編號長整型 No readerID 文本 20yes 借閱人編號 bookcode 文本 20yes 圖書條碼 borrowdate 日期/時間 yes 借書日期 duedate 日期/時間 yes 應(yīng)還日期 returndate 日期/時間 yes 是否歸還 renew 數(shù)字長整型 yes 續(xù)借標(biāo)識(0:未續(xù) 借,1:續(xù)借) overduedays 數(shù)字整型 yes 超期天數(shù) fine 數(shù)字單精度型 yes 超期罰金 4.2.6 圖書現(xiàn)在信息表結(jié)構(gòu)設(shè)計 與圖書借閱信息表形成對照的是圖書歸還信息表,該表的設(shè)計除了像上表一樣把借 閱的圖書與相應(yīng)的借閱者進(jìn)行對應(yīng)的聯(lián)系以外還記錄了讀者應(yīng)歸還圖書的時間,以此判 斷讀者的借閱是否超時,表的具體結(jié)構(gòu)設(shè)計如圖 4.6 所示。 表 4.6 圖書現(xiàn)在信息表 bookinfo 字段名稱數(shù)據(jù)類型字段長度是否允許為空說明 barcode 文本 20no 圖書條碼 isbn 文本 20yes 國際標(biāo)準(zhǔn)書號 status 數(shù)字 50yes 是否可借(1:可借, 0:不可借) duedate 日期/時間 yes 應(yīng)還書時間 location 文本 yes 館藏地點 5 5 程序程序?qū)崿F(xiàn)實現(xiàn) 5.5.1 1 客戶端與服務(wù)器端的連接客戶端與服務(wù)器端的連接 1. 客戶端 (論文) 第 11 頁 共 24 頁 在客戶端設(shè)置socket來獲得服務(wù)器端的用戶名和端口號以便和服務(wù)器進(jìn)行連接。 public class LibClient implements LibProtocals protected Socket hostSocket; protected ObjectOutputStream outputToServer; protected ObjectInputStream inputFromServer; public LibClient(String host, int port) throws IOException hostSocket = new Socket(host, port); outputToServer = new ObjectOutputStream(hostSocket.getOutputStream(); inputFromServer = new ObjectInputStream(hostSocket.getInputStream(); log(連接成功.); 2. 服務(wù)器端 服務(wù)器端驗證客戶端發(fā)來的用戶名和端口號,如果符合就接受客戶端的請求,進(jìn)行 連接,然后啟動服務(wù)器隨時和客戶端進(jìn)行通信。 public class LibServer implements LibProtocals protected ServerSocket serverSocket; protected LibDataAccessor libDataAccessor;protected boolean done; protected Socket clientSocket = null;protected LibOpHandler libOpHandler = null; public LibServer(int thePort) done = false; serverSocket = new ServerSocket(thePort); libDataAccessor = new LibDataAccessor(); while (!done) try clientSocket = serverSocket.accept(); String clientHostName = clientSocket.getInetAddress().getHostName(); libOpHandler = new LibOpHandler(clientSocket, libDataAccessor); libOpHandler.start(); catch (IOException e2) log(e2) public static void main(String args) LibServer theLibServer;int port = 6666; / 設(shè)置默認(rèn)啟動端口號 if (args.length = 1) port = Integer.parseInt(args0); theLibServer = new LibServer(port); 5.25.2 登錄模塊程序登錄模塊程序?qū)崿F(xiàn)實現(xiàn) 本模塊主要是用戶通過圖書管理系統(tǒng)的首頁登錄進(jìn)入該系統(tǒng)。用戶輸入正確的用戶 名和密碼,系統(tǒng)會根據(jù)用戶的身份進(jìn)行相應(yīng)權(quán)限劃分;如果登錄信息有錯誤,則系統(tǒng)提 示登錄錯誤的信息,并且禁止系統(tǒng)用戶進(jìn)行任何操作。圖書管理系統(tǒng)的登錄主頁面如圖 5.1所示。 (論文) 第 12 頁 共 24 頁 圖5.1 系統(tǒng)登錄頁面圖 圖5.2 用戶登錄流程圖 用戶在登錄頁面寫好用戶名和密碼,選擇登錄,登錄成功則跳轉(zhuǎn)到系統(tǒng)的首頁,否 則提示錯誤信息。在服務(wù)器端進(jìn)行用戶身份驗證的程序流程圖如圖5.2程序流程圖所示 代碼如下: String userid = tf1.getText(); String password = new String(tf2.getPassword(); adminForm.setUserid(userid);adminForm.setPasswd(password); readerForm.setReaderid(userid);readerForm.setPasswd(password); if (lib.adminLogin(adminForm) | lib.readerLogin(readerForm) dispose(); MainFrame myFrame = new MainFrame(userid, password, flag); myFrame.setVisible(true);System.out.println(ok); else System.out.println(error); JOptionPane.showMessageDialog(null, 錯誤的用戶名或密碼!, 警告, JOptionPane.WARNING_MESSAGE); 5.35.3 管理員功能模塊的實現(xiàn)管理員功能模塊的實現(xiàn) 本模塊中最主要的是館藏檢索模塊、借書還書模塊、系統(tǒng)維護(hù)模塊。 5.3.1 館藏檢索模塊的實現(xiàn) 館藏檢索模塊主要是書目檢索和讀者借閱信息的查詢。書目檢索是根據(jù)圖書的書 名、isbn、出版社、作者來查詢圖書信息,主要針對的表是圖書信息表 bookdata;而讀 (論文) 第 13 頁 共 24 頁 者借閱信息的查詢則是跟據(jù)讀者的圖書證號來查詢讀者的借閱信息。主要用到的是圖書 借閱信息表 lendinfo,書目檢索界面如圖 5.3 所示,讀者借閱信息查詢效果如圖 5.4 所 示。 圖 5.3 書目檢索界面圖 圖 5.4 讀者借閱信息查詢圖 5.3.2 借書還書模塊的實現(xiàn) 1.圖書借閱子模塊實現(xiàn)系統(tǒng)的借閱功能,讀者向圖書管理員提供自己的圖書證號和 要借閱的圖書條形碼,并且還要根據(jù)借閱者的身份來規(guī)定最多借閱的數(shù)量,還要將被借 出的圖書的狀態(tài)設(shè)置為 0,以免下個人再借。如果借閱成功則彈出借書成功的對話框, 以方便管理員的管理。圖書管理員將讀者的借閱信息記錄在圖書借閱表 lendinfo 中。 以保證數(shù)據(jù)庫的信息和借閱操作保持一致。借閱圖書的界面如圖 5.5 所示。 (論文) 第 14 頁 共 24 頁 圖 5.5 借閱圖書的操作界面 代碼如下: if (judge.judgeBookBorrow(book) /下面用同樣的方法來判斷老師和研究生最多可借閱的圖書數(shù)量,故省略了 if (i = JOptionPane.YES_OPTION) LibDataAccessor b = new LibDataAccessor(); b.borrowBookInfo(book,judge.dayMaxNumber(readerForm);/ 將被借圖書可借狀態(tài)置 0 int n = b.readerBorrowBook(book,judge.dayMaxNumber(readerForm); if (n 0) int j = JOptionPane.showConfirmDialog(null,借書成功!再借一本?, 借書成功, JOptionPane.WARNING_MESSAGE); if (j = JOptionPane.YES_OPTION) bookFieldText.setText(); else dispose(); 2.圖書歸還子模塊實現(xiàn)系統(tǒng)的圖書歸還功能,讀者向圖書管理員提供自要歸還的圖 書條形碼,圖書管理員將信息記錄在系統(tǒng)中,歸還成功,其操作界面如圖 5.6 所示。 圖 5.6 圖書歸還界面 代碼如下: 先判斷圖書館是否有此書 judgeBookBorrow(),再判斷此書是否被借出。 (論文) 第 15 頁 共 24 頁 judgeBookYesOrNot()。并且查看是否續(xù)借,還要看是否超期,如果超期就要進(jìn)行罰款 if (b.judgeBookBorrow(book) / 得到超期天數(shù)。 int renew = b.renew(book);/ 查看是否續(xù)借。0:未續(xù)借,:續(xù)借。 float money1 = b.moneyUpdate(book,moneyNumber);/ 如果超期且沒有續(xù)借,得到罰款數(shù)額。 String money = b.numberFormatter(money1); int i = JOptionPane.showConfirmDialog(null, 確認(rèn)還圖書嗎?, 確認(rèn), JOptionPane.YES_NO_OPTION); if (i = JOptionPane.YES_OPTION) if (overduedays 0) b.returnBookInfo(book); b.returnBookLendInfo(book); int j = JOptionPane.showConfirmDialog(null, 還書成功!繼續(xù)還書?,還書成功, JOptionPane.WARNING_MESSAGE); if (j = JOptionPane.YES_OPTION) bookFieldText.setText(); else dispose(); 正好到期??磮D書是否要續(xù)借,如要續(xù)借則修改還書日期將 bookinfo 中書的狀態(tài) 碼 status 的值設(shè)為 1,使之可借。將 lendinfo 表中的實際還書日期字段 returndate 的 值設(shè)為還書的日期。 else if (overduedays = 0) System.out.println(圖書到期,需要續(xù)借。); int a = JOptionPane.showConfirmDialog(null, 圖書到期,續(xù)借 10 天?,圖書到期, JOptionPane.WARNING_MESSAGE); if (a = JOptionPane.YES_OPTION) boolean flag = b.renewBook(book);/ 續(xù)借圖書。 b.returnBookInfo(book);b.returnBookLendInfo(book); if (m = JOptionPane.YES_OPTION) bookFieldText.setText(); else dispose(); /超期續(xù)借和超期沒續(xù)借的情況就不一一說明了。 5.3.3 系統(tǒng)維護(hù)模塊的實現(xiàn) 1管理員管理模塊是實現(xiàn)管理員的添加、刪除和更新,首先定義了一個 AdminForm()類用 get()方法和 set()方法來設(shè)置管理員的一些信息,用類 AdminAll()來 設(shè)置管理員模塊的界面,在管理員添加時還可以設(shè)置管理員的權(quán)限并將這些操作保存在 管理員信息表 librarian 中,根據(jù)用戶名來進(jìn)行刪除和更新。管理員添加界面如圖 5.7 所示,管理員刪除更新界面如圖 5.8 所示。 (論文) 第 16 頁 共 24 頁 圖 5.7 管理員添加界面 圖 5.8 管理員刪除更新界面 2讀者維護(hù)功能模塊的實現(xiàn) 讀者維護(hù)實現(xiàn)對信息的管理功能,讀者信息管理則主要管理維護(hù)讀者的基本信息, 主要是添加,刪除,修改等。主要用 ReaderAddPanel()類,ReaderDel

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論