基于Oracle數(shù)據(jù)庫的圖書管理系統(tǒng)開發(fā)_第1頁
基于Oracle數(shù)據(jù)庫的圖書管理系統(tǒng)開發(fā)_第2頁
基于Oracle數(shù)據(jù)庫的圖書管理系統(tǒng)開發(fā)_第3頁
基于Oracle數(shù)據(jù)庫的圖書管理系統(tǒng)開發(fā)_第4頁
基于Oracle數(shù)據(jù)庫的圖書管理系統(tǒng)開發(fā)_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、目錄一 項目開發(fā)背景2二 項目目的及意義2三 開發(fā)環(huán)境43.1硬件環(huán)境43.2軟件環(huán)境4四 項目可行性分析44.1 項目背景44.2 對現(xiàn)有系統(tǒng)的分析54.3 對所建議技術(shù)可行性分析54.4 經(jīng)濟可行性分析54.5 社會因素可行性分析54.6 結(jié)論意見5五 項目需求分析55.1 目的55.2 用戶特點65.3 系統(tǒng)需求分析65.3.1 主要功能65.3.2 系統(tǒng)性能要求65.3.3 系統(tǒng)功能劃分65.3.4 數(shù)據(jù)流程圖7六 系統(tǒng)模塊設(shè)計76.1數(shù)據(jù)庫設(shè)計76.1.1數(shù)據(jù)庫分析76.1.2數(shù)據(jù)庫概念設(shè)計86.2主窗體設(shè)計96.2.1主窗體概述96.2.2主窗體的實現(xiàn)過程106.3登陸模塊設(shè)計15

2、6.3.1登錄模塊概述156.3.2登錄模塊的實現(xiàn)過程156.4圖書管理模塊設(shè)計196.4.1圖書信息管理模塊概述196.4.2圖書信息管理模塊實現(xiàn)過程20圖書查詢模塊的實現(xiàn)25七 系統(tǒng)測試26八 結(jié)論27九 參考文獻27一 項目開發(fā)背景當今時代是飛速發(fā)展的信息時代。在各行各業(yè)中離不開信息處理,這正是計算機被廣泛應(yīng)用于信息管理系統(tǒng)的環(huán)境。計算機的最大好處在于利用它能夠進行信息管理。使用計算機進行信息控制,不僅提高了工作效率,而且大大的提高了其安全性。尤其對于復(fù)雜的信息管理,計算機能夠充分發(fā)揮它的優(yōu)越性。計算機進行信息管理與信息管理系統(tǒng)的開發(fā)密切相關(guān),系統(tǒng)的開發(fā)是系統(tǒng)管理的前提。本系統(tǒng)就是為了管

3、理好圖書館信息而設(shè)計的。圖書館作為一種信息資源的集散地,圖書和用戶借閱資料繁多,包含很多的信息數(shù)據(jù)的管理,現(xiàn)今,有很多的圖書館都是初步開始使用,甚至尚未使用計算機進行信息管理。根據(jù)調(diào)查得知,他們以前對信息管理的主要方式是基于文本、表格等紙介質(zhì)的手工處理,對于圖書借閱情況(如借書天數(shù)、超過限定借書時間的天數(shù))的統(tǒng)計和核實等往往采用對借書卡的人工檢查進行,對借閱者的借閱權(quán)限、以及借閱天數(shù)等用人工計算、手抄進行。數(shù)據(jù)信息處理工作量大,容易出錯;由于數(shù)據(jù)繁多,容易丟失,且不易查找??偟膩碚f,缺乏系統(tǒng),規(guī)范的信息管理手段。盡管有的圖書館有計算機,但是尚未用于信息管理,沒有發(fā)揮它的效力,資源閑置比較突出,

4、這就是管理信息系統(tǒng)的開發(fā)的基本環(huán)境。數(shù)據(jù)處理手工操作,工作量大,出錯率高,出錯后不易更改。圖書館采取手工方式對圖書借閱情況進行人工管理,由于信息比較多,圖書借閱信息的管理工作混亂而又復(fù)雜;一般借閱情況是記錄在借書證上,圖書的數(shù)目和內(nèi)容記錄在文件中,圖書館的工作人員和管理員也只是當時對它比較清楚,時間一長,如再要進行查詢,就得在眾多的資料中翻閱、查找了,造成查詢費時、費力。如要對很長時間以前的圖書進行更改就更加困難了?;谶@此問題,我認為有必要建立一個圖書管理系統(tǒng),使圖書管理工作規(guī)范化,系統(tǒng)化,程序化,避免圖書管理的隨意性,提高信息處理的速度和準確性,能夠及時、準確、有效的查詢和修改圖書情況。二

5、 項目目的及意義我們要實現(xiàn)科學(xué)技術(shù)現(xiàn)代化,圖書情報工作的現(xiàn)代化是極其重要的,又由于科學(xué)和技術(shù)的不斷發(fā)展和進步,現(xiàn)代技術(shù)是一個動態(tài)的概念.第二次世界大戰(zhàn)以來,以計算機技術(shù)為代表的現(xiàn)代技術(shù)有了巨大的發(fā)展,而且還在迅速的變化發(fā)展之中,70年代后期,出現(xiàn)圖書情報工作的 “聯(lián)機革命”,使計算機更廣泛地,更有效的應(yīng)用到各個角落,發(fā)達國家較重視這一領(lǐng)域的發(fā)展,我國尚存在較大的差距。所以我們說,圖書情報工作計算機化是提高我國科學(xué)技術(shù)水平的一項帶有重大戰(zhàn)略意義的措施,它是圖書情報工作現(xiàn)代化的重要標志。計算機技術(shù)是現(xiàn)代技術(shù)的一部分,圖書自動化也只是圖書館現(xiàn)代化的一部分,它們之間是部分和整體的關(guān)系,但由于計算機技術(shù)

6、是信息技術(shù)的心臟,現(xiàn)代社會的驕子,信息社會的科技主角,所以在圖書館現(xiàn)代技術(shù)中,計算機技術(shù)處于核心地位,它對于其他現(xiàn)代化設(shè)備起控制,連接和轉(zhuǎn)換的作用,而圖書館自動化是圖書館現(xiàn)代化的核心和主導(dǎo)部分。圖書情報的計算機管理系統(tǒng)能提高圖書館本身管理水平,能代替工作人員進行圖書情報資料的某些加工處理,把工作人員從繁重的手工勞動,重復(fù)勞動中解放出來??傊?,建立圖書館的計算機自動化管理系統(tǒng),不但可以大大提高圖書館圖書流通率,而且推動了社會文化生活的進步。本論文以圖書館管理信息系統(tǒng)的需求分析及概念設(shè)計為切入點,運用理論與實際相結(jié)合的方法,構(gòu)建一個包含讀者信息,書籍信息和借閱信息的圖書館管理系統(tǒng)。圖書館管理系統(tǒng)是

7、典型的信息管理系統(tǒng)(MIS),其開發(fā)主要包括后臺數(shù)據(jù)庫的建立和維護以及前端應(yīng)用程序的開發(fā)兩個方面。對于前者要求建立起數(shù)據(jù)一致性和完整性強、數(shù)據(jù)安全性好的庫。而對于后者則要求應(yīng)用程序功能完備,易使用等特點。因此本人結(jié)合開放式圖書館的要求,對MySQL數(shù)據(jù)庫、Java程序設(shè)計進行了較深入的學(xué)習(xí)和應(yīng)用,主要完成對圖書管理系統(tǒng)的需求分析、功能模塊劃分、數(shù)據(jù)庫模式分析,并由此設(shè)計了數(shù)據(jù)庫結(jié)構(gòu)和應(yīng)用程序。希望本文所設(shè)計的圖書館管理系統(tǒng)能夠滿足借閱者和圖書館管理人員的需求。三 開發(fā)環(huán)境3.1硬件環(huán)境 PC機一臺3.2軟件環(huán)境My Eclipse開發(fā)環(huán)境;Power Designer;Visio;Oracle

8、 11g四 項目可行性分析4.1 項目背景 名稱:基于Oracle 11g的圖書館管理系統(tǒng)4.2 對現(xiàn)有系統(tǒng)的分析 現(xiàn)在市面上有許多的圖書館管理系統(tǒng)的軟件,但是質(zhì)量參差不齊,購買花費大,技術(shù)不到位,人力花費多,導(dǎo)致系統(tǒng)所有者的支出變多4.3 對所建議技術(shù)可行性分析 基于Oracle數(shù)據(jù)庫開發(fā)的圖書館管理系統(tǒng),在原有系統(tǒng)的基礎(chǔ)上,進行了改進,系統(tǒng)運行速度大大提升,并且節(jié)約成本,安全可靠,操作方便,不要要太多的人力。4.4 經(jīng)濟可行性分析 由于對該系統(tǒng)進行了改進,所以成本費用不高,最主要的是,由于操作簡單易上手,不需要大量的人力來運行,大大節(jié)約了成本4.5 社會因素可行性分析 本系統(tǒng)的研發(fā),完全符

9、合相關(guān)規(guī)定,委托方和被委托方簽訂合同,完全合法,并且,自主研發(fā)改進,不會侵犯其他類似軟件的專利權(quán)等。4.6 結(jié)論意見 通過以上分析,我認為該方案可行。 五 項目需求分析5.1 目的 項目需求分析的目的是明確本系統(tǒng)的詳細需求,供使用單位確定本系統(tǒng)的功能和性能,并作為軟件設(shè)計人員的設(shè)計依據(jù)和使用單位的驗收依據(jù)。5.2 用戶特點本系統(tǒng)面向的最終用戶是管理員(圖書館管理員和其他管理員),讀者(老師和同學(xué)等)。 5.3 系統(tǒng)需求分析 5.3.1 主要功能 1,能夠輸入圖書的綜合情況和進行新書的入庫,現(xiàn)有圖書的信 息修改等。 2,能夠?qū)崿F(xiàn)對讀者信息的增,刪,查,改。 3,能夠進行圖書的借閱和管理功能。 5

10、.3.2 系統(tǒng)性能要求 1,系統(tǒng)安全,可靠 2,功能齊全 3,操作方便,界面整潔,友好 4,易于維護和擴充 5.3.3 系統(tǒng)功能劃分 圖書館管理系統(tǒng)分為4大功能模塊,分別為“基礎(chǔ)數(shù)據(jù)維護”、“圖書借閱管理”、“新書訂購管理”和“系統(tǒng)維護”。本系統(tǒng)各個部分及其包括的具體功能模塊如下圖所示:圖書借書管理圖書還書管理圖書查詢圖書類別管理圖書信息管理更改密碼用戶管理驗收訂書新書訂購讀者信息管理系統(tǒng)維護新書訂購管理圖書借閱管理基礎(chǔ)數(shù)據(jù)維護圖書館管理系統(tǒng) 5.3.4 數(shù)據(jù)流程圖六 系統(tǒng)模塊設(shè)計 6.1數(shù)據(jù)庫設(shè)計 通常作為一個管理軟件,它的數(shù)據(jù)部分都是由數(shù)據(jù)庫來存儲和管理的。在本設(shè)計中數(shù)據(jù)庫承擔(dān)了圖書信息和

11、讀者信息。在如今的數(shù)據(jù)庫產(chǎn)品中,有很多成熟的產(chǎn)品,如Oracle,DB2,SQL Server,MySQL等,圖書館管理系統(tǒng)應(yīng)用于高校的圖書館中,用戶數(shù)據(jù)以及圖書的信息數(shù)據(jù)并不是很大??紤]到成本,選用了Oracle數(shù)據(jù)庫。下面將詳細的為您介紹本設(shè)計中數(shù)據(jù)庫的選擇以及數(shù)據(jù)庫的概念設(shè)計等。 6.1.1數(shù)據(jù)庫分析Oracle具有與其他數(shù)據(jù)庫相比具有以下優(yōu)點:1、處理速度快,非常快2、安全級別高。支持快閃以及完美的恢復(fù),即使硬件壞了 也可以恢復(fù)到故障發(fā)前的1s3、幾臺數(shù)據(jù)庫做負載數(shù)據(jù)庫,可以做到30s以內(nèi)故障轉(zhuǎn)移,4、網(wǎng)格控制,以及 數(shù)據(jù)倉庫方面 也非常強大 6.1.2數(shù)據(jù)庫概念設(shè)計 根據(jù)以上對系統(tǒng)所

12、作的需求分析、系統(tǒng)設(shè)計,規(guī)劃出本系統(tǒng)中使用的數(shù)據(jù)庫實體分別為圖書信息實體、圖書分類實體、圖書訂購實體、讀者信息實體、圖書借閱信息實體、庫存信息實體。以下為幾個關(guān)鍵實體的E-R圖。1. 圖書信息實體圖書信息實體包括圖書編號、圖書類別編號、書名、作者、出版社、價格、出版時間等屬性。其中圖書編號為圖書信息實體的主鍵,圖書類別編號為圖書信息實體的外鍵,與圖書分類實體具有外鍵關(guān)系。作者書名類別編號編號圖書出版時間價格出版社圖3-1 圖書信息實體E-R圖2. 讀者信息實體讀者信息實體包括條形碼、姓名、性別、年齡、電話、辦證日期、證件號碼等屬性。其中條形碼作為本實體的唯一標識。 年齡性別 姓名條形碼讀者電話

13、辦證日期證件號碼 圖3-2 讀者信息實體E-R圖3. 圖書借閱信息實體圖書借閱信息實體包括編號、圖書編號、讀者編號、是否歸還、借閱日期、歸還日期等屬性。編號作為圖書借閱信息實體的唯一標識,包括兩個外鍵,分別為圖書編號與讀者編號。編號圖書編號讀者編號圖書借閱借閱日期歸還日期是否歸還圖3-3 圖書借閱信息實體E-R圖4. 圖書訂購實體圖書訂購實體主要包括圖書編號,訂購日期、訂購數(shù)量、是否驗收等屬性。圖書訂購實體以圖書編號與圖書信息實體建立了關(guān)系。訂購日期圖書編號訂購數(shù)量圖書訂購操作員折扣是否驗收6.2主窗體設(shè)計 在整個系統(tǒng)中,主窗體部分顯示了本系統(tǒng)的所有功能。在主窗體的設(shè)計中運用了Swing技術(shù),

14、完成了對菜單欄以及工具欄的設(shè)計。管理員通過主窗體可以進行相應(yīng)的操作,實現(xiàn)系統(tǒng)的功能。普通用戶也可以利用主窗體中的工具欄進行常用的功能操作。下面將詳細的展現(xiàn)主窗體的設(shè)計細節(jié)部分。 6.2.1主窗體概述管理員通過“系統(tǒng)登錄”模塊的驗證后,可以登錄到圖書館管理系統(tǒng)的主窗體。系統(tǒng)主窗體主要包括菜單欄、工具欄。用戶在菜單欄中單擊任一菜單項,即可執(zhí)行相應(yīng)的功能;工具欄為用戶提供了經(jīng)常使用的功能按鈕。 6.2.2主窗體的實現(xiàn)過程 主窗體的實現(xiàn)過程如下:1 創(chuàng)建Library類,在其構(gòu)造函數(shù)中設(shè)置主窗體相關(guān)屬性,如窗體大小、窗體標題等相關(guān)屬性,還可以為窗體設(shè)置背景圖片,并調(diào)用創(chuàng)建菜單欄與工具欄的方法,在主窗體

15、中創(chuàng)建菜單欄與工具欄。關(guān)鍵代碼如下:public Library() super();setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);setModalExclusionType(ModalExclusionType.APPLICATION_EXCLUDE);setLocationByPlatform(true);setSize(800, 600);setTitle("圖書館管理系統(tǒng)");JMenuBar menuBar = createMenu(); / 調(diào)用創(chuàng)建菜單欄的方法setJMenuBar(menuBa

16、r);JToolBar toolBar = createToolBar(); / 調(diào)用創(chuàng)建工具欄的方法getContentPane().add(toolBar, BorderLayout.NORTH);final JLabel label = new JLabel();label.setBounds(0, 0, 0, 0);label.setIcon(null); / 窗體背景DESKTOP_PANE.addComponentListener(new ComponentAdapter() public void componentResized(final ComponentEvent e)

17、Dimension size = e.getComponent().getSize();label.setSize(e.getComponent().getSize();label.setText("<html><img width=" + size.width + " height="+ size.height + " src='"+ this.getClass().getResource("/backImg.jpg")+ "'></html>&quo

18、t;););DESKTOP_PANE.add(label,new Integer(Integer.MIN_VALUE);getContentPane().add(DESKTOP_PANE);2 編寫創(chuàng)建菜單欄的方法private JMenuBar createMenu() JMenuBar menuBar = new JMenuBar();JMenu bookOrderMenu = new JMenu(); / 初始化新書訂購管理菜單bookOrderMenu.setIcon(CreatecdIcon.add("xsdgcd.jpg");bookOrderMenu.add(

19、MenuActions.NEWBOOK_ORDER);bookOrderMenu.add(MenuActions.NEWBOOK_CHECK_ACCEPT);JMenu baseMenu = new JMenu();/ 初始化基礎(chǔ)數(shù)據(jù)維護菜單baseMenu.setIcon(CreatecdIcon.add("jcsjcd.jpg");JMenu readerManagerMItem = new JMenu("讀者信息管理");readerManagerMItem.add(MenuActions.READER_ADD);readerManagerMIte

20、m.add(MenuActions.READER_MODIFY);JMenu bookTypeManageMItem = new JMenu("圖書類別管理");bookTypeManageMItem.add(MenuActions.BOOKTYPE_ADD);bookTypeManageMItem.add(MenuActions.BOOKTYPE_MODIFY);JMenu menu = new JMenu("圖書信息管理");menu.add(MenuActions.BOOK_ADD);menu.add(MenuActions.BOOK_MODIFY

21、);baseMenu.add(readerManagerMItem);baseMenu.add(bookTypeManageMItem);baseMenu.add(menu);baseMenu.addSeparator();baseMenu.add(MenuActions.EXIT);JMenu borrowManageMenu = new JMenu(); / 借閱管理borrowManageMenu.setIcon(CreatecdIcon.add("jyglcd.jpg");borrowManageMenu.add(MenuActions.BORROW); / 借閱b

22、orrowManageMenu.add(MenuActions.GIVE_BACK); / 歸還borrowManageMenu.add(MenuActions.BOOK_SEARCH); / 搜索JMenu sysManageMenu = new JMenu(); / 系統(tǒng)維護sysManageMenu.setIcon(CreatecdIcon.add("jcwhcd.jpg");JMenu userManageMItem = new JMenu("用戶管理"); / 用戶管理userManageMItem.add(MenuActions.USER_A

23、DD);userManageMItem.add(MenuActions.USER_MODIFY);sysManageMenu.add(MenuActions.MODIFY_PASSWORD);sysManageMenu.add(userManageMItem);menuBar.add(baseMenu); / 添加基礎(chǔ)數(shù)據(jù)維護菜單到菜單欄menuBar.add(bookOrderMenu); / 添加新書訂購管理菜單到菜單欄menuBar.add(borrowManageMenu); / 添加借閱管理菜單到菜單欄menuBar.add(sysManageMenu); / 添加系統(tǒng)維護菜單到菜單

24、欄return menuBar;3 編寫創(chuàng)建工具欄的方法private JToolBar createToolBar() / 創(chuàng)建工具欄的方法JToolBar toolBar = new JToolBar();toolBar.setFloatable(false);toolBar.setBorder(new BevelBorder(BevelBorder.RAISED);JButton bookAddButton=new JButton(MenuActions.BOOK_ADD);ImageIcon icon = new ImageIcon(Library.class.getResource(

25、“/bookAddtb.jpg”)bookAddButton.setIcon(icon);bookAddButton.setHideActionText(true);bookAddButton.setToolTipText("fjdkjfk");/圖片上提示字toolBar.add(bookAddButton);toolBar.add(MenuActions.BOOK_MODIFY);/在工具欄中添加圖書修改與刪除圖標JButton bookModiAndDelButton=new JButton(MenuActions.BOOK_MODIFY); ImageIconboo

26、kmodi icon=CreatecdIcon.add("bookModiAndDeltb.jpg");/創(chuàng)建圖標方法bookModiAndDelButton.setIcon(bookmodiicon);bookModiAndDelButton.setHideActionText(true);toolBar.add(bookModiAndDelButton);JButton bookTypeAddButton=new JButton(MenuActions.BOOKTYPE_ADD);ImageIconbookTypeAddicon=CreatecdIcon.add(&qu

27、ot;bookTypeAddtb.jpg");/創(chuàng)建圖標方法bookTypeAddButton.setIcon(bookTypeAddicon);bookTypeAddButton.setHideActionText(true);toolBar.add(bookTypeAddButton);JButton bookBorrowButton=new JButton(MenuActions.BORROW);ImageIcon bookBorrowicon=CreatecdIcon.add("bookBorrowtb.jpg"); bookBorrowButton.se

28、tIcon(bookBorrowicon);bookBorrowButton.setHideActionText(true);toolBar.add(bookBorrowButton);JButton bookOrderButton=new JButton(MenuActions.NEWBOOK_ORDER);ImageIcon bookOrdericon=CreatecdIcon.add("bookOrdertb.jpg");/創(chuàng)建圖標方法bookOrderButton.setIcon(bookOrdericon);bookOrderButton.setHideActio

29、nText(true);toolBar.add(bookOrderButton);JButton bookCheckButton=newJButton(MenuActions.NEWBOOK_CHECK_ACCEPT);ImageIcon bookCheckicon=CreatecdIcon.add("newbookChecktb.jpg");/創(chuàng)建圖標方法bookCheckButton.setIcon(bookCheckicon);bookCheckButton.setHideActionText(true);toolBar.add(bookCheckButton);JB

30、utton readerAddButton=new JButton(MenuActions.READER_ADD);ImageIcon readerAddicon=CreatecdIcon.add("readerAddtb.jpg");/創(chuàng)建圖標方法readerAddButton.setIcon(readerAddicon);readerAddButton.setHideActionText(true);toolBar.add(readerAddButton);JButton readerModiAndDelButton=new JButton(MenuActions.RE

31、ADER_MODIFY);ImageIcon readerModiAndDelicon=CreatecdIcon.add("readerModiAndDeltb.jpg");/創(chuàng)建圖標方法readerModiAndDelButton.setIcon(readerModiAndDelicon);readerModiAndDelButton.setHideActionText(true);toolBar.add(readerModiAndDelButton);JButton ExitButton=new JButton(MenuActions.EXIT);ImageIcon E

32、xiticon=CreatecdIcon.add("exittb.jpg");/創(chuàng)建圖標方法ExitButton.setIcon(Exiticon);ExitButton.setHideActionText(true);toolBar.add(ExitButton);return toolBar;4 經(jīng)過程序運行后得到下圖: 6.3登陸模塊設(shè)計一個完整的系統(tǒng)需要一定的權(quán)限才能進行相應(yīng)的操作,圖書館管理系統(tǒng)也不例外。無論是管理員還是用戶都必須首先進入登陸界面,只有輸入正確的賬號和密碼才能進入到主窗體進行相應(yīng)的操作,否則是不能進行功能操作的。因此登陸模塊在整個系統(tǒng)中占據(jù)了很重要

33、的地位。 6.3.1登錄模塊概述登錄模塊是圖書館管理系統(tǒng)的入口,在運行本系統(tǒng)后,首先進入的便是登錄窗體。在該窗體中,系統(tǒng)管理員可以通過輸入正確的管理員名稱與密碼登錄到系統(tǒng);當沒有輸入管理員名稱或密碼時,系統(tǒng)將會彈出相應(yīng)的提示信息。 6.3.2登錄模塊的實現(xiàn)過程開發(fā)登錄模塊的具體步驟如下:1) 首先在BookLoginIFrame類構(gòu)造函數(shù)中設(shè)計登錄窗體的整體布局,包括添加窗體關(guān)閉按鈕、最小化按鈕、設(shè)置窗體大小等屬性。關(guān)鍵代碼如下:public BookLoginIFrame() super();final BorderLayout borderLayout = new BorderLayout

34、();setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);borderLayout.setVgap(10);getContentPane().setLayout(borderLayout);setTitle("圖書館管理系統(tǒng)登錄");setBounds(100, 100, 285, 194);final JPanel panel = new JPanel();panel.setLayout(new BorderLayout();panel.setBorder(new EmptyBorder(0, 0, 0, 0);getConten

35、tPane().add(panel);final JPanel panel_2 = new JPanel();final GridLayout gridLayout = new GridLayout(0, 2);gridLayout.setHgap(5);gridLayout.setVgap(20);panel_2.setLayout(gridLayout);panel.add(panel_2);final JLabel label = new JLabel();label.setHorizontalAlignment(SwingConstants.CENTER);label.setPrefe

36、rredSize(new Dimension(0, 0);label.setMinimumSize(new Dimension(0, 0);panel_2.add(label);label.setText("用 戶 名:");username = new JTextField(20);username.setPreferredSize(new Dimension(0, 0);panel_2.add(username);final JLabel label_1 = new JLabel();label_1.setHorizontalAlignment(SwingConstan

37、ts.CENTER);panel_2.add(label_1);label_1.setText("密 碼:");password = new JPasswordField(20);password.setDocument(new MyDocument(6);password.setEchoChar('*');/設(shè)置密碼框的回顯字符password.addKeyListener(new KeyAdapter() public void keyPressed(final KeyEvent e) if (e.getKeyCode() = 10)login.doCl

38、ick(););panel_2.add(password);final JPanel panel_1 = new JPanel();panel.add(panel_1, BorderLayout.SOUTH);login=new JButton();login.addActionListener(new BookLoginAction();login.setText("登錄");panel_1.add(login);reset=new JButton();reset.addActionListener(new BookResetAction();reset.setText(

39、"重置");panel_1.add(reset);final JLabel tupianLabel = new JLabel();ImageIcon loginIcon=CreatecdIcon.add("login.jpg");tupianLabel.setIcon(loginIcon);tupianLabel.setOpaque(true);tupianLabel.setBackground(Color.GREEN);tupianLabel.setPreferredSize(new Dimension(260, 60);panel.add(tupia

40、nLabel, BorderLayout.NORTH);setVisible(true);setResizable(false);程序運行圖如下:圖5-1 圖書館管理系統(tǒng)登錄運行圖2) 為了方便在登錄驗證時取值傳遞,需要創(chuàng)建一個對應(yīng)于tb_operator表字段的JavaBean。這個類除了以數(shù)據(jù)表字段命名的成員變量之外,還創(chuàng)建了與成員變量相對應(yīng)的setXXX()getXXX()方法。關(guān)鍵代碼如下:public class Operater private String id;private String name;private String grade;private String pas

41、sword;public String getGrade() return grade;public void setGrade(String grade) this.grade = grade;public String getId() return id;public void setId(String id) this.id = id;public String getName() return name;public void setName(String name) = name;public String getPassword() return passwor

42、d;public void setPassword(String password) this.password = password;3) 分別為“登錄”按鈕與“重置”按鈕設(shè)置監(jiān)聽事件。class BookLoginAction implements ActionListener public void actionPerformed(final ActionEvent e) user = Dao.check(username.getText(), password.getText();if (user.getName() != null) try Library frame = new L

43、ibrary();frame.setVisible(true);BookLoginIFrame.this.setVisible(false); catch (Exception ex) ex.printStackTrace(); else JOptionPane.showMessageDialog(null, "只有管理員才可以登錄!");username.setText("");password.setText("");4) 在Dao類中創(chuàng)建登錄驗證方法,在此方法中查詢文本框中輸入的字符串是否與操作員數(shù)據(jù)表中的數(shù)據(jù)相匹配,并是否為管

44、理員登錄,以上條件都滿足,登錄驗證才能成功。關(guān)鍵代碼如下:public static Operater check(String name, String password) int i = 0;Operater operater=new Operater();String sql = "select * from tb_operator where name='" + name+ "' and password='" + password + "'and admin=1"ResultSet rs =

45、Dao.executeQuery(sql);try while (rs.next() String names = rs.getString(1);operater.setId(rs.getString("id");operater.setName(rs.getString("name");operater.setGrade(rs.getString("admin");operater.setPassword(rs.getString("password");if (names != null) i = 1; ca

46、tch (Exception e) e.printStackTrace();Dao.close();return operater;6.4圖書管理模塊設(shè)計 圖書管理系統(tǒng)的最主要功能當然要進行圖書的管理,其中包括圖書的添加,圖書信息的修改,圖書的借還和圖書的查詢。圖書管理模塊是圖書管理系統(tǒng)的核心模塊。它包含了系統(tǒng)中最重要的功能。管理員和用戶平時使用的大部分功能都將在這一模塊中實現(xiàn)。 6.4.1圖書信息管理模塊概述圖書信息管理模塊主要包括圖書添加、圖書信息修改、圖書借還、圖書查詢等功能。在圖書添加窗體中,管理員可以錄入圖書相關(guān)信息,進入圖書信息修改窗體后,首先在表格中顯示所有圖書的相關(guān)信息,管理員

47、可以選擇表格中需要修改的某一行數(shù)據(jù),這時在窗體下方的文本框中將顯示相應(yīng)的內(nèi)容。圖書借閱模塊主要用于管理讀者借閱圖書的信息。管理員輸入讀者條形碼、圖書條形碼后,在讀者相關(guān)信息文本框以及圖書相關(guān)信息文本框中將相應(yīng)地顯示此讀者和書籍的相關(guān)信息。 6.4.2圖書信息管理模塊實現(xiàn)過程 圖書添加模塊的開發(fā)步驟如下:首先創(chuàng)建圖書信息添加窗體,然后在圖書信息添加窗體中添加按鈕監(jiān)聽事件,關(guān)鍵代碼如下:public BookAddIFrame() super();final BorderLayout borderLayout = new BorderLayout();getContentPane().setLay

48、out(borderLayout);setIconifiable(true);/ 設(shè)置窗體可最小化setClosable(true);/ 設(shè)置窗體可關(guān)閉setTitle("圖書信息添加");/ 設(shè)置窗體標題setBounds(100, 100, 396, 260);final JPanel panel = new JPanel();panel.setBorder(new EmptyBorder(5, 10, 5, 10);final GridLayout gridLayout = new GridLayout(0, 4);gridLayout.setVgap(5);grid

49、Layout.setHgap(5);panel.setLayout(gridLayout);getContentPane().add(panel);final JLabel label_2 = new JLabel();label_2.setText("圖書編號:");panel.add(label_2);ISBN = new JTextField("請輸入13位書號",13);ISBN.setDocument(new MyDocument(13); /設(shè)置書號文本框最大輸入值為13ISBN.setColumns(13);ISBN.addKeyListe

50、ner(new ISBNkeyListener();ISBN.addFocusListener(new ISBNFocusListener();panel.add(ISBN);final JLabel label = new JLabel();label.setHorizontalAlignment(SwingConstants.CENTER);label.setText("類別:");panel.add(label);bookType = new JComboBox();bookTypeModel= (DefaultComboBoxModel)bookType.getMo

51、del();/從數(shù)據(jù)庫中取出圖書類別List list=Dao.selectBookCategory();for(int i=0;i<list.size();i+)BookType booktype=(BookType)list.get(i);Item item=new Item();item.setId(String)booktype.getId();item.setName(String)booktype.getTypeName();bookTypeModel.addElement(item);panel.add(bookType);final JLabel label_1 = ne

52、w JLabel();label_1.setText("書名:");panel.add(label_1);bookName = new JTextField();panel.add(bookName);final JLabel label_3 = new JLabel();label_3.setHorizontalAlignment(SwingConstants.CENTER);label_3.setText("作者:");panel.add(label_3);writer = new JTextField();writer.setDocument(ne

53、w MyDocument(10);panel.add(writer);final JLabel label_2_1 = new JLabel();label_2_1.setText("出版社:");panel.add(label_2_1);publisher = new JComboBox();Stringarray=new String"*出版社","*信息出版社","*大型出版社","*小型出版社"publisher.setModel(new DefaultComboBoxModel(arr

54、ay);panel.add(publisher);final JLabel label_4 = new JLabel();label_4.setHorizontalAlignment(SwingConstants.CENTER);label_4.setText("譯者:");panel.add(label_4);translator = new JTextField();translator.setDocument(new MyDocument(10);panel.add(translator);final JLabel label_1_1 = new JLabel();label_1_1.setText("出版日期:");panel.add(label_1_1);SimpleDateFormat myfmt=new SimpleDateFormat("yy

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論