版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 畢業(yè)設(shè)計(論文)</b></p><p> 題目: 圖書館管理系統(tǒng) </p><p> 姓 名 </p><p> 學(xué) 號 </p><p> 專 業(yè)
2、 計算機網(wǎng)絡(luò) </p><p> 指導(dǎo)教師 </p><p><b> 2012年4月</b></p><p><b> 目錄</b></p><p><b> 摘要III</b></p><
3、;p><b> 前言IV</b></p><p> 第一章 圖書館管理系統(tǒng)分析1</p><p> 1.1 需求分析1</p><p> 1.2 功能分析2</p><p> 1.3 系統(tǒng)用例圖設(shè)計2</p><p> 1.4 繪制系統(tǒng)流程圖3</p>
4、<p> 1.5 系統(tǒng)的開發(fā)環(huán)境4</p><p> 第二章 數(shù)據(jù)庫分析與設(shè)計5</p><p> 2.1 數(shù)據(jù)庫分析5</p><p> 2.2 數(shù)據(jù)庫概念設(shè)計5</p><p> 2.3 數(shù)據(jù)邏輯結(jié)構(gòu)設(shè)計7</p><p> 2.4 各表之間的聯(lián)系圖9</p><
5、;p> 第三章 系統(tǒng)設(shè)計與功能實現(xiàn)10</p><p> 3.1 數(shù)據(jù)庫Dao類的構(gòu)建10</p><p> 3.2 系統(tǒng)登錄模塊11</p><p> 3.3 主窗體模塊13</p><p> 3.4 圖書類別管理模塊15</p><p> 3.5 圖書信息管理模塊17</p>
6、;<p> 3.6 讀者信息管理模塊21</p><p> 3.7 圖書訂購管理模塊24</p><p> 3.8 圖書借閱管理模塊27</p><p> 3.9 系統(tǒng)維護模塊30</p><p> 第四章 系統(tǒng)測試35</p><p> 4.1 測試項目35</p>
7、<p> 4.2 測試用例35</p><p><b> 結(jié)束語37</b></p><p><b> 參考文獻(xiàn)38</b></p><p><b> 圖書館管理系統(tǒng)</b></p><p><b> 摘要</b></p&
8、gt;<p> 圖書館管理系統(tǒng)是采用Java做前臺,后臺數(shù)據(jù)庫則采用的是SQL Server 2005,本系統(tǒng)提供6個功能模塊,分別是圖書類別管理模塊、圖書信息管理模塊、讀者信息管理模塊、新書訂購管理模塊、圖書借閱模塊,以及系統(tǒng)維護模塊。這6個模塊里又有許多子模塊,通過這些模塊之間的相互連接與配合,完成操作員發(fā)出的各種指令。</p><p> 圖書館管理系統(tǒng)是一個供內(nèi)部人員使用的系統(tǒng)。而圖書館的
9、工作人員也分為兩類,一類是操作人員,主要負(fù)責(zé)圖書的借閱和歸還的工作;一類是管理員,除了操作人員的所有功能外,還能夠?qū)斜?、書籍信息、讀者信息等進(jìn)行管理。</p><p> 論文將全面介紹所設(shè)計的圖書館管理系統(tǒng)的系統(tǒng)功能和業(yè)務(wù)流程,并對系統(tǒng)進(jìn)行詳細(xì)的數(shù)據(jù)分析和設(shè)計,最終使用Java完成系統(tǒng)開發(fā)。</p><p> 關(guān)鍵詞:圖書館管理系統(tǒng),SQL Server 2005,Java<
10、;/p><p><b> 前言</b></p><p> 隨著社會的發(fā)展,人們對于知識的需求也在不斷地增長。書籍作為人們獲取并增長知識的主要途徑,使得圖書館在人們生活中占有了一定位置。但是近幾年來,隨著書量的不斷增長,造成了書庫空間極度不足,圖書擠壓,管理不善。這些都直接影響了讀者對圖書館藏書的充分利用。這時圖書館就特別需要開發(fā)一套圖書館管理系統(tǒng),通過該系統(tǒng)來提高圖書
11、館的管理效率,從而減少管理方面的工作流和成本。</p><p> 一個現(xiàn)代化的圖書館在正常運營中總是面對大量的讀者信息,書籍信息以及兩者相互作用產(chǎn)生的借書信息,還書信息。面對圖書館數(shù)以萬計的圖書,紛繁復(fù)雜的讀者信息,頻繁更替的借還書信息,傳統(tǒng)的直接方法不但管理出現(xiàn)漏洞,造成損失。因此有一個智能化、系統(tǒng)化、信息化的圖書管理系統(tǒng)十分重要的。充分利用計算機的功能實現(xiàn)對讀者管理、書籍管理,借閱管理等自動化控制,將會使圖
12、書館的工作大大減弱。方便友好的圖形界面、簡便的操作、完善的數(shù)據(jù)庫管理。將會使得圖書館系統(tǒng)極大限度的應(yīng)用于現(xiàn)代化圖書管理中。</p><p> 第一章 圖書館管理系統(tǒng)分析</p><p><b> 1.1 需求分析</b></p><p> 圖書館管理系統(tǒng)是一個高度集成的圖書信息處理系統(tǒng),通過將圖書館的各種功能進(jìn)行整合,從而達(dá)到顯示檢索信息
13、,提高工作效率,降低管理成本等目的。一個典型的圖書館管理系統(tǒng)應(yīng)該能夠管理所有的圖書種類,圖書信息以及讀者信息,還需要提供各種圖書信息的檢索查詢功能。該系統(tǒng)還需要能夠?qū)D書的借閱,歸還進(jìn)行管理,并對讀者的罰款進(jìn)行自動計算。通過該系統(tǒng)的自動化管理,能夠大大減少圖書館管理人員,還能減少管理人員的工作任務(wù),從而降低管理開銷和成本。</p><p> 一個完整的圖書館管理系統(tǒng)包括前臺和后臺,前臺主要是顯示在計算機屏幕上的
14、顯示界面,有各種指令按鈕,操作框以及文本框,后臺主要是為前臺的一些操作提供一些必要的數(shù)據(jù),也就是一個相對于系統(tǒng)比較完整的數(shù)據(jù)庫,操作員以及各類圖書的信息,借書者的信息等等。</p><p> 一個最基本的圖書館管理系統(tǒng)要有如下幾個重要功能:</p><p> 用戶在借書超期的情況下得到來自管理員的提醒。</p><p> 管理員可以方便進(jìn)行圖書管理,用戶管理,
15、管理員管理。圖書管理包括圖書信息以及圖書分類的添加,修改,刪除。用戶管理包括用戶信息的添加,刪除,修改。管理員管理包括管理員信息的添加,刪除,修改等。</p><p> 用戶和管理員可以修改自己的密碼,修改前需先核實自己的原始密碼。</p><p> 未注冊用戶(游客)也可以瀏覽所有的圖書信息和分類信息,但是無法借閱。</p><p> ?。?)實現(xiàn)模糊查詢,使
16、用戶得到更多的相關(guān)記錄。并且考慮使用的方便性,一些經(jīng)常使用的輸入無須用戶輸入,比如進(jìn)行圖書查詢時圖書分類只須用戶做選擇就可以。</p><p> (6)考慮程序執(zhí)行操作時可能出現(xiàn)的情況,比如刪除圖書分類時該分類下存在圖書,程序自動跳轉(zhuǎn)該分類圖書查看。刪除某個用戶,如果存在借書記錄則不允許刪除,跳轉(zhuǎn)到該用戶的借書記錄。等待管理員確認(rèn)該用戶所借圖書已經(jīng)全部歸還之后才允許刪除該用戶信息。</p><
17、;p> 一個圖書館管理系統(tǒng)要是能實現(xiàn)以上的各種功能,那么這個圖書館管理系統(tǒng)也就算是比較成功的一個系統(tǒng)了。</p><p><b> 1.2 功能分析</b></p><p> 根據(jù)以上需求分析,我所設(shè)計的圖書館管理系統(tǒng)有6個功能模塊,分別是圖書類別管理模塊,圖書信息管理模塊,讀者信息管理模塊,新書訂購管理模塊,圖書借閱模塊以及系統(tǒng)維護模塊。其中各功能模塊的
18、具體說明如下:</p><p> 圖書類別管理模塊:該模塊主要負(fù)責(zé)管理圖書館的圖書種類信息,如圖書種類的名稱、可借天數(shù)、罰款數(shù)目等信息。</p><p> 圖書信息管理模塊:該模塊主要負(fù)責(zé)管理圖書館的圖書信息,如圖書編號、圖書名稱、作者、出版社等信息。</p><p> 讀者信息管理模塊:該模塊主要負(fù)責(zé)管理圖書館的讀者信息,如讀者編號、讀者信息、證件號碼、最大
19、借書量等信息。</p><p> 圖書訂購管理模塊:該模塊主要負(fù)責(zé)管理圖書館的新書訂購信息、包括新書訂購和驗收新書兩個子模塊。</p><p> 圖書借閱管理模塊:該模塊主要負(fù)責(zé)圖書館的書籍借閱和歸還信息,包括圖書借閱、圖書歸還、圖書搜索3個子模塊。</p><p> 系統(tǒng)維護模塊:該模塊主要負(fù)責(zé)圖書館的工作人員信息,包括用戶管理和更改系統(tǒng)口令兩個子模塊。&l
20、t;/p><p> 1.3 系統(tǒng)用例圖設(shè)計</p><p> 圖書館管理系統(tǒng)是一個內(nèi)部人員使用的系統(tǒng),也就是說不是所有的人都能夠使用它,只有圖書館的工作人員才能使用。而圖書館的工作人員也分為兩類,一類是操作人員,主要負(fù)責(zé)圖書的借閱和歸還的工作;一類是管理員,除了操作人員的所有功能外,還能夠?qū)斜?,書籍信息,讀者信息等進(jìn)行管理。下面以管理員為例繪制其所對應(yīng)的用例圖如圖1.1所示。<
21、/p><p> 圖1.1 管理員用例圖</p><p> 1.4 繪制系統(tǒng)流程圖</p><p> 本系統(tǒng)首先需要對用戶的身份進(jìn)行識別,只有合法的用戶才能進(jìn)入系統(tǒng),否則將無法進(jìn)入系統(tǒng)。進(jìn)入系統(tǒng)后,首先打開系統(tǒng)主窗體,在系統(tǒng)首頁的菜單欄或者功能區(qū)可以選擇各種導(dǎo)航鏈接來進(jìn)行各種操作。由于不同權(quán)限的用戶對于系統(tǒng)有不同的功能,下面以功能最多的管理員為例,其系統(tǒng)流程圖如圖1
22、.2所示。</p><p> 圖1.2 系統(tǒng)流程圖</p><p> 1.5 系統(tǒng)的開發(fā)環(huán)境</p><p> 圖書館管理系統(tǒng)的具體開發(fā)環(huán)境要求如下:</p><p> 系統(tǒng)開發(fā)平臺:Eclipse 3.4。</p><p> 數(shù)據(jù)庫管理系統(tǒng)軟件:SQL Server 2005。</p><
23、;p> 運行平臺:Windows 7。</p><p> Java開發(fā)包:JDK 5.0以上。</p><p> 分辨率:800×600以上。</p><p> GUI開發(fā)包:Swing。</p><p> 第二章 數(shù)據(jù)庫分析與設(shè)計</p><p><b> 2.1 數(shù)據(jù)庫分析&l
24、t;/b></p><p> 在開發(fā)圖書館管理系統(tǒng)時,考慮到圖書量大,數(shù)據(jù)庫維護大的特點,選用SQL Server 2005作為數(shù)據(jù)庫管理系統(tǒng)。在SQL Server 2005中新增一個數(shù)據(jù)庫,其數(shù)據(jù)庫名為db_library。數(shù)據(jù)庫中可以包含圖書信息、圖書類別信息、圖書借閱信息、操作員信息、圖書訂購信息及讀者信息等實體,用來存儲不同的信息。</p><p> 2.2 數(shù)據(jù)庫概念
25、設(shè)計</p><p> 本系統(tǒng)一共設(shè)計規(guī)劃出6個實體,分別是圖書類別信息實體、圖書信息實體、讀者信息實體、操作員實體、圖書借閱信息實體以及圖書訂購信息實體。</p><p> 圖書的類別有很多,因此可以建立一個圖書館類別信息表,專門用來保存圖書的類別信息。同時因為每種類別的書籍閱讀時間有所不同,所以需要在類別表中保存該類別可借天數(shù)信息。圖書類別信息實體E-R圖如圖2.1所示。</
26、p><p> 圖2.1 圖書類別信息實體E-R圖</p><p> 對于圖書館來說最重要的就是要管理其下的書籍,所以需要建立一個圖書信息表,用來保存圖書的所有信息。圖書信息實體E-R圖如圖2.2所示。</p><p> 圖2.2 圖書信息實體E-R圖</p><p> 要想在圖書館借書首先需要進(jìn)行登記并交付押金。領(lǐng)取讀書卡才能借書。所以需
27、要建立一個讀者信息表來保存圖書館的所有讀者的登記信息。讀者信息實體E-R圖如圖2.3所示。</p><p> 圖2.3 讀者信息實體E-R圖</p><p> 圖書館里一般有一個以上的系統(tǒng)操作員,需要建立一個操作員信息表,用來保存操作員的身份信息。操作員信息實體E-R圖如圖2.4所示。</p><p> 圖2.4 操作員信息實體E-R圖</p>
28、<p> 圖書館最大的功能就是能夠借書,這時需要建立一個圖書借閱信息表,用來保存讀者的借書信息。圖書的借閱信息實體E-R圖如圖2.5所示。</p><p> 圖2.5 圖書的借閱信息實體E-R圖</p><p> 圖書館除了借書,還需要到出版社或其他代理商訂購新書,這是需要建立一個圖書訂購信息表,用來保存所有的訂購信息。圖書訂購信息實體E-R圖如圖2.6所示。</p&
29、gt;<p> 圖2.6 圖書訂購信息實體E-R圖</p><p> 2.3 數(shù)據(jù)邏輯結(jié)構(gòu)設(shè)計</p><p> 根據(jù)設(shè)計好的各實體E-R圖創(chuàng)建數(shù)據(jù)庫的邏輯結(jié)構(gòu),數(shù)據(jù)庫各表的結(jié)構(gòu)如下:</p><p> ?。?)圖書類別信息采表用來儲存所有的圖書類別信息,包括圖書類別編號、圖書類別名稱、可借天數(shù)以及遲還一天的罰款數(shù)目4個字段。該表的邏輯結(jié)構(gòu)如表2
30、.1所示。</p><p> 表2.1 圖書類別信息表</p><p> (2)圖書信息表用來儲存所有的圖書信息,包括圖書編號、類別編號、圖書名稱、作者、譯者、出版社、出版日期以及書籍價格8個字段。該表的邏輯結(jié)構(gòu)如表2.2所示。</p><p> 表2.2 圖書信息表</p><p> (3)讀者信息表用來儲存所有的讀者信息,包括讀者
31、姓名、性別、年齡、證件號碼、會員證有效日期、最大借書量、電話號碼、押金、證件類型、職業(yè)、讀者編號以及辦證日期12個字段。該表的邏輯結(jié)構(gòu)如表2.3所示。</p><p> 表2.3 讀者信息表</p><p> ?。?)操作員信息表用來保存操作員信息,包括操作員編號、用戶名、性別、年齡、證件號碼、工作時間、電話號碼、是否為管理員、密碼9個字段。該表的邏輯結(jié)構(gòu)如表2.4所示。</p&g
32、t;<p> 表2.4 操作員信息表</p><p> ?。?)圖書借閱信息表用來保存所有圖書的借閱信息,包括借閱編號、書籍編號、操作員編號、讀者編號、是夠歸還、借書日期以及應(yīng)還日期7字段。該表的邏輯結(jié)構(gòu)如表2.5所示。</p><p> 表2.5 圖書借閱信息表</p><p> ?。?)圖書訂購信息表用來保存圖書館的所有訂購信息,包括書籍編號、
33、訂購日期、訂購數(shù)量、操作員、是否驗收以及書籍折扣6個字段。該表的邏輯結(jié)構(gòu)如表2.6所示。</p><p> 表2.6 圖書訂購信息表</p><p> 2.4 各表之間的聯(lián)系圖</p><p> 各表間的聯(lián)系圖如圖2.7所示。</p><p> 圖2.7 各表間聯(lián)系圖</p><p> 第三章 系統(tǒng)設(shè)計與功能
34、實現(xiàn)</p><p> 3.1 數(shù)據(jù)庫Dao類的構(gòu)建</p><p> 首先定義了一個類Dao,并為該類添加了4中方法,分別是構(gòu)造方法Dao、查詢方法executeQuery、更新方法executeUpdate以及關(guān)閉連接方法close。</p><p> public class Dao {</p><p> protected s
35、tatic String dbClassName = </p><p> "com.microsoft.sqlserver.jdbc.SQLServerDriver";//數(shù)據(jù)庫連接驅(qū)動類</p><p> protected static String dbUrl = "jdbc:sqlserver://localhost:1433;"<
36、/p><p> + "DatabaseName=db_library;";//數(shù)據(jù)庫連接URL</p><p> protected static String dbUser = "sa";//數(shù)據(jù)庫用戶名</p><p> protected static String dbPwd = "123"
37、;;//數(shù)據(jù)庫密碼</p><p> private static Connection conn = null;//數(shù)據(jù)庫連接對象</p><p> private static String ISBN;</p><p> private Dao() {//構(gòu)造方法</p><p><b>
38、 try {</b></p><p> if (conn == null) {//如果連接對象為空</p><p> Class.forName(dbClassName);//加載驅(qū)動類</p><p> conn = DriverManager.getConnection(dbUrl, dbUser, dbPwd);//獲
39、得連接對象</p><p><b> }</b></p><p> } catch (Exception ee) {</p><p> ee.printStackTrace();</p><p><b> }</b></p><p><b> }</
40、b></p><p> private static ResultSet executeQuery(String sql) {//查詢方法</p><p><b> try {</b></p><p> if(conn==null) new Dao(); //如果連接對象為空,則重新調(diào)用構(gòu)造方法</p><
41、p> return conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,</p><p> ResultSet.CONCUR_UPDATABLE).executeQuery(sql);//執(zhí)行查詢</p><p> } catch (SQLException e) {</p><p> e.prin
42、tStackTrace();</p><p> return null;//返回null值</p><p> } finally {</p><p><b> }</b></p><p><b> }</b></p><p> private static
43、int executeUpdate(String sql) {//更新方法</p><p><b> try {</b></p><p> if(conn==null) new Dao();//如果連接對象為空,則重新調(diào)用構(gòu)造方法</p><p> return conn.createStatement().executeUpda
44、te(sql);//執(zhí)行更新</p><p> } catch (SQLException e) {</p><p> e.printStackTrace();</p><p> return -1;</p><p> } finally {</p><p><b> }</b><
45、/p><p><b> }</b></p><p> public static void close() {//關(guān)閉方法</p><p><b> try {</b></p><p> conn.close();//關(guān)閉連接對象</p><p> } catch
46、(SQLException e) {</p><p> e.printStackTrace();</p><p><b> }finally{</b></p><p> conn = null;//設(shè)置連接對象為null值</p><p><b> }</b></p><
47、;p><b> }</b></p><p> 3.2 系統(tǒng)登錄模塊</p><p> 對于圖書館管理系統(tǒng)而言,不是所有的用戶都是可以使用的,所有需要添加一個登陸模塊。通過該模塊來對用戶的合法性進(jìn)行判斷,只有合法的用戶才能進(jìn)入到系統(tǒng)。整個登陸模塊的實現(xiàn)非常簡單,相信讀者能夠快速掌握其開發(fā)過程。登錄模塊的運行結(jié)果如圖3.1所示。</p><
48、p> 圖3.1 系統(tǒng)登錄界面</p><p> 3.2.1 登陸窗體界面設(shè)計與實現(xiàn)</p><p> 登陸窗體的界面設(shè)計我依然采用的是比較傳統(tǒng)的方法,新建一個類BookLoginFrame類,用來顯示登錄窗體。在該窗體中需要使用到四類控件,分別是JLabel、JTextFieid、JPasswordField以及JButton。其中控件JLabel是用來顯示頂部的圖片以及標(biāo)簽文
49、本;控件JTextFieid用來接收用戶名輸入信息;控件JPasswordField用來接收密碼輸入信息;控件JButton用來創(chuàng)建登陸和重置按鈕。</p><p> 3.2.2 操作員登陸</p><p> 在Dao類中新增一個方法check,通過該方法來檢測用戶信息是否合法。該方法接收兩個參數(shù),分別是操作員用戶名name,操作員密碼passsward。主要方法如下:</p&g
50、t;<p> public static Operater check(String name, String password) {</p><p> Operater operater=new Operater();//操作員信息對象</p><p> String sql = "select * from tb_operator where name=
51、'" + name</p><p> + "' and password='" + password + "'and admin=1";</p><p> ResultSet rs = Dao.executeQuery(sql);</p><p><b> try
52、{</b></p><p> while (rs.next()) {</p><p> operater.setId(rs.getString("id"));</p><p> operater.setName(rs.getString("name"));</p><p> oper
53、ater.setGrade(rs.getString("admin"));</p><p> operater.setPassword(rs.getString("password"));</p><p><b> ……</b></p><p><b> }</b></p
54、><p><b> }</b></p><p><b> }</b></p><p><b> 3.3 主窗體模塊</b></p><p> 圖書館管理系統(tǒng)的主窗體模式是由三個部分組成的。第一部分是位于主窗體上組上端的系統(tǒng)菜單欄,用來實現(xiàn)鏈接系統(tǒng)功能菜單。第二部分位于菜單欄
55、下面的工具欄,用來提供各種常用功能鏈接。第三部分位于工具下的系統(tǒng)功能窗口區(qū)域,主要用來顯示各種功能窗口。</p><p> 3.3.1 主窗體界面設(shè)計</p><p> 在主窗體中可以顯示其他功能窗體,所以需要在該窗體中加入一個桌面窗體。通過將其他功能窗體加入到該窗體中。從而實現(xiàn)多窗體顯。同時在主窗口體中,還需要添加一個main方法,該方法為系統(tǒng)入口的方法,通過執(zhí)行該方法來執(zhí)行系統(tǒng)。其
56、主要代碼如下: </p><p> public class Library extends JFrame {</p><p> private static final JDesktopPane </p><p> DESKTOP_PANE = new JDesktopPane();//桌面窗體</p><p> public st
57、atic void main(String[] args) {</p><p><b> try {</b></p><p> UIManager.setLookAndFeel(UIManager</p><p> .getSystemLookAndFeelClassName());//設(shè)置系統(tǒng)界面外觀</p><p&
58、gt; new BookLoginIFrame();//登錄窗口</p><p> } catch (Exception ex) {</p><p> ex.printStackTrace();</p><p><b> }</b></p><p><b> }</b></p>
59、<p> public static void addIFame(JInternalFrame iframe) { // 添加子窗體的方法</p><p> DESKTOP_PANE.add(iframe);//新增子窗體</p><p><b> }</b></p><p><b> }</b>&
60、lt;/p><p> 下面再來配置主窗體的其他屬性,首先需要設(shè)置其大小和位置,然后還要設(shè)置其菜單欄和工具欄,最后需要在桌面窗體中添加一個背景圖片。其代碼實現(xiàn)如下。</p><p> public Library() {</p><p><b> super();</b></p><p> setDefaultClos
61、eOperation(</p><p> WindowConstants.EXIT_ON_CLOSE);////設(shè)置關(guān)閉按鈕處理事件</p><p> Toolkit tool = Toolkit.getDefaultToolkit();//獲得默認(rèn)的工具箱</p><p> Dimension screenSize = tool.getScreenS
62、ize();//獲得屏幕的大小</p><p> setSize(800, 600);//設(shè)置窗體大小</p><p> setLocation((screenSize.width - getWidth()) / 2,</p><p> (screenSize.height - getHeight()) / 2);//設(shè)置窗體位
63、置</p><p> setTitle("圖書館管理系統(tǒng)");//設(shè)置窗體標(biāo)題</p><p> JMenuBar menuBar = createMenu(); //調(diào)用創(chuàng)建菜單欄的方法</p><p> setJMenuBar(menuBar);//設(shè)置菜單欄</p><p> JTo
64、olBar toolBar = createToolBar(); // 調(diào)用創(chuàng)建工具欄的方法</p><p> getContentPane().add(toolBar, BorderLayout.NORTH);//設(shè)置工具欄</p><p> final JLabel label = new JLabel();//創(chuàng)建一個標(biāo)簽,用來顯示圖片</p><p>
65、 label.setBounds(0, 0, 0, 0);//設(shè)置窗體的大小和位置</p><p> label.setIcon(null); // 窗體背景</p><p> DESKTOP_PANE.addComponentListener(new ComponentAdapter() {</p><p> public void component
66、Resized(final ComponentEvent e) {</p><p> Dimension size = e.getComponent().getSize();//獲得組件大小</p><p> label.setSize(e.getComponent().getSize());//設(shè)置標(biāo)簽大小</p><p> label.setText(&q
67、uot;<html><img width=" + size.width + " height="</p><p> + size.height + " src='"</p><p> + this.getClass().getResource("/backImg.jpg")</p>
68、;<p> + "'></html>");//設(shè)置標(biāo)簽文本</p><p><b> }</b></p><p><b> };</b></p><p> DESKTOP_PANE.add(label,new Integer(Integer.MIN_VAL
69、UE));//將標(biāo)簽添加到桌面窗體</p><p> getContentPane().add(DESKTOP_PANE);//將桌面窗體添加到主窗體中</p><p><b> }</b></p><p> 3.3.2 主窗體菜單欄設(shè)計</p><p> 在Library類中定義一個createMenu方法,在
70、該方法中實現(xiàn)菜單欄的設(shè)計。其運行界面如圖3.2所示。</p><p> 圖3.2 主窗體界面</p><p> 3.4 圖書類別管理模塊</p><p> 圖書類別管理模塊包含兩個子模塊,分別是圖書類別添加和圖書類別修改。其中圖書類別添加模塊用來錄入新的圖書類別信息,圖書列別修改模塊用來修改已有的圖書列別信息。系統(tǒng)界面如圖3.3所示。</p>&
71、lt;p> 圖3.3 圖書類別修改界面</p><p> 3.4.1 圖書類別添加模塊</p><p> 要添加圖書類別信息,首先要在Dao中添加一個InsertbookType方法,通過該方法來接受用戶輸入的所有書籍類別信息,然后執(zhí)行插入操作。其主要方法如下:</p><p> public static int InsertBookType(St
72、ring bookTypeName,String days,double fk){</p><p><b> int i=0;</b></p><p> try{String sql="insert into</p><p> tb_bookType(typeName,days,fk)</p><p>
73、 values('"+bookTypeName+"','"+days+"',"+fk+")";</p><p> i=Dao.executeUpdate(sql);//執(zhí)行插入操作</p><p><b> }</b></p><p>&l
74、t;b> ……</b></p><p><b> }</b></p><p> 3.4.2 圖書類別修改模塊</p><p> 修改圖書類別信息同保存圖書類別信息非常類似,首先在Dao中添加一個方法UpdatebookType。通過該方法來接收圖書修改表單中提交的書籍類別信息。其代碼如下:</p><
75、;p> public static int UpdatebookType(String id,String typeName,String days,String fk){</p><p><b> int i=0;</b></p><p> try{String sql="update </p><p> tb_boo
76、kType set typeName='"+typeName+"',</p><p> days='"+days+"',fk='"+fk+"' where id='"+id+"'";</p><p> //System.out.pri
77、ntln(sql);</p><p> i=Dao.executeUpdate(sql);//執(zhí)行更新操作</p><p><b> }</b></p><p><b> ……</b></p><p><b> }</b></p><p> 修
78、改圖書類別信息,是通過單擊修改按鈕執(zhí)行的,上面我們已經(jīng)為修改按鈕注冊了一個監(jiān)聽器,其對應(yīng)的監(jiān)聽器類為ButtonActionLinter。下面來實現(xiàn)該監(jiān)聽器類,其實現(xiàn)代碼如下:</p><p> class ButtonAddListener implements ActionListener{</p><p> public void actionPerformed(ActionEv
79、ent e){</p><p> Object selectedItem = bookTypeModel.getSelectedItem();</p><p> int i=Dao.UpdatebookType(BookTypeId.getText().trim(),selectedItem.</p><p> toString(), days.getText
80、().trim(),fk.getText().trim());</p><p> System.out.println(i);</p><p> if(i==1){//如果返回值為1,則表示修改成功</p><p> JOptionPane.showMessageDialog(null, "修改成功");</p><p&
81、gt; Object[][] results=getFileStates(Dao.selectBookCategory());</p><p> model.setDataVector(results,columnNames);</p><p> table.setModel(model);</p><p><b> }</b><
82、;/p><p><b> }</b></p><p><b> }</b></p><p> 3.5 圖書信息管理模塊</p><p> 圖書信息管理模塊包含兩個子模塊,分別是圖書信息添加和圖書信息修改。其中圖書信息添加模塊用來錄入新的圖書信息,圖書信息修改模塊用來修改已有的圖書信息。</
83、p><p> 3.5.1 圖書信息添加界面設(shè)計</p><p> 圖書信息添加窗體一共包含三個部分,第一部分是位于窗體最上端的圖片。第二部分是位于中間的主面板,用來提供各種標(biāo)簽和表單元素。第三部分是位于主面板下的按鈕面板,用來提供添加和關(guān)閉兩個按鈕。其運行界面如圖3.4所示。</p><p> 圖3.4 圖書信息添加界面</p><p>
84、 主面板是整個窗體最重要也是最核心的部分,其部分實現(xiàn)代碼如下:</p><p> public BookAddIFrame() {</p><p><b> super();</b></p><p> final BorderLayout borderLayout = new BorderLayout();//創(chuàng)建邊框布局管理器</
85、p><p> getContentPane().setLayout(borderLayout);//設(shè)置布局</p><p> setIconifiable(true);// 設(shè)置窗體可最小化</p><p> setClosable(true);// 設(shè)置窗體可關(guān)閉</p><p> setTitle("圖書信息添加&quo
86、t;);// 設(shè)置窗體標(biāo)題</p><p> setBounds(100, 100, 396, 260);// 設(shè)置窗體位置和大小</p><p> final JPanel mainPanel = new JPanel();//創(chuàng)建中心面板</p><p> mainPanel.setBorder(new EmptyBorder(5, 10, 5, 10)
87、);//設(shè)置邊框</p><p> final GridLayout gridLayout = new GridLayout(0, 4);//創(chuàng)建表格布局管理器</p><p> gridLayout.setVgap(5);//設(shè)置組件之間垂直距離</p><p> gridLayout.setHgap(5);//設(shè)置組件之間平行距離</p>&
88、lt;p> mainPanel.setLayout(gridLayout);//設(shè)置布局</p><p> getContentPane().add(mainPanel);//將中心面板加入到窗體</p><p> final JLabel ISBNLabel = new JLabel();//創(chuàng)建圖書編號標(biāo)簽</p><p> ISBNLabel.
89、setText("圖書編號:");//設(shè)置標(biāo)簽文本</p><p> mainPanel.add(ISBNLabel);//添加到中心面板</p><p> ISBN = new JTextField("請輸入13位書號",13);//創(chuàng)建書號文本框</p><p> ISBN.setDocument(new MyDoc
90、ument(13)); //設(shè)置書號文本框最大輸入值為13</p><p> ISBN.setColumns(13);//設(shè)置文本框長度</p><p> ISBN.addKeyListener(new ISBNkeyListener());//注冊監(jiān)聽器</p><p> ISBN.addFocusListener(new ISBNFocusListener
91、());//注冊監(jiān)聽器</p><p> mainPanel.add(ISBN);</p><p><b> ……</b></p><p><b> }</b></p><p> 3.5.2 檢測書籍編號是否已存在</p><p> 因為不可能存在重復(fù)的書籍編號。為
92、了防止操作員的操作錯誤,所以需要提供一個書籍編號監(jiān)測系統(tǒng)。如果該書籍號已存在,則不能進(jìn)行添加,否則可以進(jìn)行添加。</p><p> 要檢測書籍編號是否存在,需要在Dao類中添加一個方法,該方法用來接收輸入的書籍編號,然后查詢該書籍編號對應(yīng)的書籍記錄,其主要方法如下:</p><p> public static List selectBookInfo(String ISBN) {//根
93、據(jù)圖書編號查詢圖書</p><p> List list=new ArrayList();//保存所有查詢到的書籍信息</p><p> String sql = "select * from tb_bookInfo where ISBN='"+ISBN+"'";</p><p> ResultSet
94、rs = Dao.executeQuery(sql);//執(zhí)行查詢</p><p> ……//插入數(shù)據(jù),關(guān)閉連接</p><p><b> }</b></p><p> 對書籍編號進(jìn)行檢測,一般是在操作員輸入完書籍編號,并準(zhǔn)備輸入其他信息時來完成。這是需要新建一個ISBNFFocusListener監(jiān)聽類,該類繼承了FocusAdoper
95、類,并實現(xiàn)其中的focusLost,其實現(xiàn)代碼如下:</p><p> class ISBNFocusListener extends FocusAdapter {</p><p> public void focusLost(FocusEvent e){</p><p> if(!Dao.selectBookInfo(ISBN.getText().trim(
96、)).isEmpty()){</p><p> JOptionPane.showMessageDialog(null, "添加書號重復(fù)!");</p><p><b> return;</b></p><p><b> }</b></p><p><b> }&
97、lt;/b></p><p><b> }</b></p><p> 3.5.3 圖書信息添加</p><p> 要添加書籍信息,首先要在Dao中添加一個Insertbook方法,通過該方法來接受用戶輸入的所有書籍信息,然后執(zhí)行插入操作。其主要方法如下:</p><p> public static int
98、 Insertbook(String ISBN,String typeId,String bookname,</p><p> String writer,String translator,String publisher,Date date,Double price){</p><p><b> int i=0;</b></p><p>
99、;<b> try{</b></p><p> String sql="insert into tb_bookInfo(ISBN,typeId,bookname,writer,translator,"+"publisher,date,price) values('"+ISBN+"','"+ty
100、peId+"','"+bookname+"',"+ "'"+writer+"','"+translator+"','"+publisher+"','"+date+"',"+price+")";
101、</p><p> i=Dao.executeUpdate(sql);//執(zhí)行插入操作</p><p><b> }</b></p><p><b> ……</b></p><p><b> }</b></p><p> 3.5.4 圖書修改信
102、息</p><p> 修改圖書信息同保存圖書信息非常類似,首先在Dao中添加一個方法Updatebook。通過該方法來接收圖書修改表單中提交的書籍信息。其代碼如下:</p><p> public static int Updatebook(String ISBN,String typeId,String bookname,</p><p> String w
103、riter,String translator,String publisher,Date date,Double price){</p><p> int i=0;//更新記錄數(shù)</p><p> try{String sql="update tb_bookInfo set ISBN='"+ISBN+"' , typeI
104、d='"+typeId+"',bookname='"+bookname+"',</p><p> writer='"+writer+"',</p><p> translator='"+translator+"',</p><
105、;p> publisher='"+publisher+"',</p><p> date='"+date+"',</p><p> price="+price+" where ISBN='"+ISBN+"'";</p><
106、p> i=Dao.executeUpdate(sql);//執(zhí)行更新</p><p><b> }</b></p><p><b> ……</b></p><p><b> }</b></p><p> 修改圖書信息,是通過單擊修改按鈕執(zhí)行的,上面我們已經(jīng)為修改
107、按鈕注冊了一個監(jiān)聽器,其對應(yīng)的監(jiān)聽器類為UpdateBookActionLinter。下面來實現(xiàn)該監(jiān)聽器類,其實現(xiàn)代碼如下:</p><p> class UpdateBookActionListener implements ActionListener {</p><p> public void actionPerformed(final ActionEvent e) {<
108、;/p><p> int i=Dao.Updatebook(ISBNs, bookTypes, bookNames, writer,
109、 translators,publishers,Date.valueOf(pubDates),Double.parseDouble(prices));</p><p> if(i==1){//如果返回更新記錄數(shù)為1,表示修改成功</p><p> JOptionPane.showMessageDialog(null, "修改成功&qu
110、ot;);Object[][]results=getFileStates(Dao.selectBookInfo());//重新獲得書籍信息</p><p> DefaultTableModel model=new DefaultTableModel();//獲得表格模型</p><p> table.setModel(model);//設(shè)置表格模型</p><
111、p> model.setDataVector(results, columnNames);//設(shè)置模型數(shù)據(jù)和列名</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> 3.6 讀者信息
112、管理模塊</p><p> 讀者信息管理模塊包含兩個子模塊,分別是讀者信息添加和讀者信息修改與刪除。其中讀者信息添加模塊用來錄入新的讀者信息,讀者信息修改與刪除模塊用來修改和刪除已有的讀者信息。其系統(tǒng)運行界面如圖3.5所示。</p><p> 圖3.5 讀者信息管理模塊運行界面</p><p> 3.6.1 讀者信息添加</p><p>
113、; 要添加讀者信息,首先要在Dao中添加一個InsertReader方法,通過該方法來接受用戶輸入的所有讀者信息,然后執(zhí)行插入操作。其主要方法如下: </p><p> public static int InsertReader(String name,String sex,String age,String identityCard,Date date,String maxNum,String tel,D
114、ouble keepMoney,String zj,String zy,Date bztime,String ISBN){</p><p><b> int i=0;</b></p><p> try{String sql="insert into tb_reader(name,sex,age,identityCard,date,maxNum,</
115、p><p> tel,keepMoney,zj,zy,bztime,ISBN)values('"+name+"','"+sex+"','"+age+"','"+identityCard+"','"+date+"','"+
116、maxNum+"','"+tel+"',"+keepMoney+",'"+zj+"','"+zy+"',</p><p> '"+bztime+"','"+ISBN+"')";</
117、p><p> System.out.println(sql);</p><p> i=Dao.executeUpdate(sql);//執(zhí)行插入操作</p><p><b> }</b></p><p><b> ……</b></p><p><b> }&l
118、t;/b></p><p> 3.6.2 讀者信息修改與刪除</p><p> 修改與刪除讀者信息同保存讀者信息非常類似,首先在Dao中添加兩個方法UpdateReader及DelReader。通過這兩個方法來接收圖讀者修改表單中提交的讀者信息。其主要代碼如下:</p><p> public static int UpdateReader(String
119、 id,String name,String sex,String age,String identityCard,Date date,String maxNum,String tel,</p><p> Double keepMoney,String zj,String zy,Date bztime,String ISBN){</p><p><b> int i=0;&l
120、t;/b></p><p> try{String sql="update tb_reader set </p><p> name='"+name+"',sex='"+sex+"',</p><p> age='"+age+"',ide
121、ntityCard='"+identityCard+"',</p><p> date='"+date+"',maxNum='"+maxNum+"',</p><p> tel='"+tel+"',keepMoney="+keepMo
122、ney+",</p><p> zj='"+zj+"',zy='"+zy+"',</p><p> bztime='"+bztime+"'where ISBN='"+ISBN+"'";</p><p>
123、; i=Dao.executeUpdate(sql);// 執(zhí)行更新</p><p> }catch(Exception e){</p><p> e.printStackTrace();</p><p><b> }</b></p><p> Dao.close();//關(guān)閉連接</p><
124、;p><b> ……</b></p><p><b> }</b></p><p> public static int DelReader(String ISBN){</p><p><b> int i=0;</b></p><p> try{String
125、 sql="delete from tb_reader where ISBN='"+ISBN+"'";</p><p> //System.out.println(sql);</p><p> i=Dao.executeUpdate(sql);</p><p> }catch(Exception e){&
126、lt;/p><p> e.printStackTrace();</p><p><b> }</b></p><p> Dao.close();//關(guān)閉連接</p><p><b> ……</b></p><p><b> }</b></p&
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)設(shè)計(論文)---圖書館管理系統(tǒng)
- 圖書館管理系統(tǒng)畢業(yè)設(shè)計論文
- 畢業(yè)設(shè)計論文 圖書館管理系統(tǒng)設(shè)計
- 圖書館借閱管理系統(tǒng)---畢業(yè)設(shè)計論文
- 圖書館借閱管理系統(tǒng)-畢業(yè)設(shè)計論文
- 圖書館管理系統(tǒng)——后臺管理(畢業(yè)設(shè)計論文)
- 圖書館管理系統(tǒng)畢業(yè)設(shè)計
- 圖書館管理系統(tǒng)--畢業(yè)設(shè)計
- 圖書館管理系統(tǒng)畢業(yè)設(shè)計
- 基于jsp圖書館管理系統(tǒng)畢業(yè)設(shè)計論文
- 畢業(yè)設(shè)計(論文)+vb圖書館管理系統(tǒng)論文
- 基于jsp圖書館管理系統(tǒng)畢業(yè)設(shè)計論文
- 畢業(yè)設(shè)計---圖書館集成管理系統(tǒng)
- 畢業(yè)設(shè)計--圖書館借閱管理系統(tǒng)
- 圖書館管理系統(tǒng)(完整畢業(yè)設(shè)計)
- 畢業(yè)設(shè)計---圖書館借閱管理系統(tǒng)
- 圖書館管理系統(tǒng)(java) 優(yōu)秀畢業(yè)設(shè)計論文+源碼
- 基于java的圖書館管理系統(tǒng)畢業(yè)設(shè)計(論文)
- 畢業(yè)設(shè)計----圖書館管理系統(tǒng)開發(fā)
- 畢業(yè)設(shè)計---圖書館在線查閱管理系統(tǒng)
評論
0/150
提交評論