![基于Oracle數(shù)據(jù)庫的圖書管理系統(tǒng)開發(fā)_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/16/da5d50e2-7e74-4444-8b17-ae28361e9121/da5d50e2-7e74-4444-8b17-ae28361e91211.gif)
![基于Oracle數(shù)據(jù)庫的圖書管理系統(tǒng)開發(fā)_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/16/da5d50e2-7e74-4444-8b17-ae28361e9121/da5d50e2-7e74-4444-8b17-ae28361e91212.gif)
![基于Oracle數(shù)據(jù)庫的圖書管理系統(tǒng)開發(fā)_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/16/da5d50e2-7e74-4444-8b17-ae28361e9121/da5d50e2-7e74-4444-8b17-ae28361e91213.gif)
![基于Oracle數(shù)據(jù)庫的圖書管理系統(tǒng)開發(fā)_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/16/da5d50e2-7e74-4444-8b17-ae28361e9121/da5d50e2-7e74-4444-8b17-ae28361e91214.gif)
![基于Oracle數(shù)據(jù)庫的圖書管理系統(tǒng)開發(fā)_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/16/da5d50e2-7e74-4444-8b17-ae28361e9121/da5d50e2-7e74-4444-8b17-ae28361e91215.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上目錄一 項(xiàng)目開發(fā)背景當(dāng)今時(shí)代是飛速發(fā)展的信息時(shí)代。在各行各業(yè)中離不開信息處理,這正是計(jì)算機(jī)被廣泛應(yīng)用于信息管理系統(tǒng)的環(huán)境。計(jì)算機(jī)的最大好處在于利用它能夠進(jìn)行信息管理。使用計(jì)算機(jī)進(jìn)行信息控制,不僅提高了工作效率,而且大大的提高了其安全性。尤其對于復(fù)雜的信息管理,計(jì)算機(jī)能夠充分發(fā)揮它的優(yōu)越性。計(jì)算機(jī)進(jìn)行信息管理與信息管理系統(tǒng)的開發(fā)密切相關(guān),系統(tǒng)的開發(fā)是系統(tǒng)管理的前提。本系統(tǒng)就是為了管理好圖書館信息而設(shè)計(jì)的。圖書館作為一種信息資源的集散地,圖書和用戶借閱資料繁多,包含很多的信息數(shù)據(jù)的管理,現(xiàn)今,有很多的圖書館都是初步開始使用,甚至尚未使用計(jì)算機(jī)進(jìn)行信息管理。根據(jù)調(diào)查得知,他
2、們以前對信息管理的主要方式是基于文本、表格等紙介質(zhì)的手工處理,對于圖書借閱情況(如借書天數(shù)、超過限定借書時(shí)間的天數(shù))的統(tǒng)計(jì)和核實(shí)等往往采用對借書卡的人工檢查進(jìn)行,對借閱者的借閱權(quán)限、以及借閱天數(shù)等用人工計(jì)算、手抄進(jìn)行。數(shù)據(jù)信息處理工作量大,容易出錯(cuò);由于數(shù)據(jù)繁多,容易丟失,且不易查找??偟膩碚f,缺乏系統(tǒng),規(guī)范的信息管理手段。盡管有的圖書館有計(jì)算機(jī),但是尚未用于信息管理,沒有發(fā)揮它的效力,資源閑置比較突出,這就是管理信息系統(tǒng)的開發(fā)的基本環(huán)境。數(shù)據(jù)處理手工操作,工作量大,出錯(cuò)率高,出錯(cuò)后不易更改。圖書館采取手工方式對圖書借閱情況進(jìn)行人工管理,由于信息比較多,圖書借閱信息的管理工作混亂而又復(fù)雜;一般
3、借閱情況是記錄在借書證上,圖書的數(shù)目和內(nèi)容記錄在文件中,圖書館的工作人員和管理員也只是當(dāng)時(shí)對它比較清楚,時(shí)間一長,如再要進(jìn)行查詢,就得在眾多的資料中翻閱、查找了,造成查詢費(fèi)時(shí)、費(fèi)力。如要對很長時(shí)間以前的圖書進(jìn)行更改就更加困難了?;谶@此問題,我認(rèn)為有必要建立一個(gè)圖書管理系統(tǒng),使圖書管理工作規(guī)范化,系統(tǒng)化,程序化,避免圖書管理的隨意性,提高信息處理的速度和準(zhǔn)確性,能夠及時(shí)、準(zhǔn)確、有效的查詢和修改圖書情況。二 項(xiàng)目目的及意義我們要實(shí)現(xiàn)科學(xué)技術(shù)現(xiàn)代化,圖書情報(bào)工作的現(xiàn)代化是極其重要的,又由于科學(xué)和技術(shù)的不斷發(fā)展和進(jìn)步,現(xiàn)代技術(shù)是一個(gè)動(dòng)態(tài)的概念.第二次世界大戰(zhàn)以來,以計(jì)算機(jī)技術(shù)為代表的現(xiàn)代技術(shù)有了巨大
4、的發(fā)展,而且還在迅速的變化發(fā)展之中,70年代后期,出現(xiàn)圖書情報(bào)工作的 “聯(lián)機(jī)革命”,使計(jì)算機(jī)更廣泛地,更有效的應(yīng)用到各個(gè)角落,發(fā)達(dá)國家較重視這一領(lǐng)域的發(fā)展,我國尚存在較大的差距。所以我們說,圖書情報(bào)工作計(jì)算機(jī)化是提高我國科學(xué)技術(shù)水平的一項(xiàng)帶有重大戰(zhàn)略意義的措施,它是圖書情報(bào)工作現(xiàn)代化的重要標(biāo)志。計(jì)算機(jī)技術(shù)是現(xiàn)代技術(shù)的一部分,圖書自動(dòng)化也只是圖書館現(xiàn)代化的一部分,它們之間是部分和整體的關(guān)系,但由于計(jì)算機(jī)技術(shù)是信息技術(shù)的心臟,現(xiàn)代社會(huì)的驕子,信息社會(huì)的科技主角,所以在圖書館現(xiàn)代技術(shù)中,計(jì)算機(jī)技術(shù)處于核心地位,它對于其他現(xiàn)代化設(shè)備起控制,連接和轉(zhuǎn)換的作用,而圖書館自動(dòng)化是圖書館現(xiàn)代化的核心和主導(dǎo)部分
5、。圖書情報(bào)的計(jì)算機(jī)管理系統(tǒng)能提高圖書館本身管理水平,能代替工作人員進(jìn)行圖書情報(bào)資料的某些加工處理,把工作人員從繁重的手工勞動(dòng),重復(fù)勞動(dòng)中解放出來??傊?,建立圖書館的計(jì)算機(jī)自動(dòng)化管理系統(tǒng),不但可以大大提高圖書館圖書流通率,而且推動(dòng)了社會(huì)文化生活的進(jìn)步。本論文以圖書館管理信息系統(tǒng)的需求分析及概念設(shè)計(jì)為切入點(diǎn),運(yùn)用理論與實(shí)際相結(jié)合的方法,構(gòu)建一個(gè)包含讀者信息,書籍信息和借閱信息的圖書館管理系統(tǒng)。圖書館管理系統(tǒng)是典型的信息管理系統(tǒng)(MIS),其開發(fā)主要包括后臺(tái)數(shù)據(jù)庫的建立和維護(hù)以及前端應(yīng)用程序的開發(fā)兩個(gè)方面。對于前者要求建立起數(shù)據(jù)一致性和完整性強(qiáng)、數(shù)據(jù)安全性好的庫。而對于后者則要求應(yīng)用程序功能完備,易
6、使用等特點(diǎn)。因此本人結(jié)合開放式圖書館的要求,對MySQL數(shù)據(jù)庫、Java程序設(shè)計(jì)進(jìn)行了較深入的學(xué)習(xí)和應(yīng)用,主要完成對圖書管理系統(tǒng)的需求分析、功能模塊劃分、數(shù)據(jù)庫模式分析,并由此設(shè)計(jì)了數(shù)據(jù)庫結(jié)構(gòu)和應(yīng)用程序。希望本文所設(shè)計(jì)的圖書館管理系統(tǒng)能夠滿足借閱者和圖書館管理人員的需求。三 開發(fā)環(huán)境3.1硬件環(huán)境 PC機(jī)一臺(tái)3.2軟件環(huán)境My Eclipse開發(fā)環(huán)境;Power Designer;Visio;Oracle 11g四 項(xiàng)目可行性分析4.1 項(xiàng)目背景 名稱:基于Oracle 11g的圖書館管理系統(tǒng)4.2 對現(xiàn)有系統(tǒng)的分析 現(xiàn)在市面上有許多的圖書館管理系統(tǒng)的軟件,但是質(zhì)量參差不齊,購買花費(fèi)大,技術(shù)不
7、到位,人力花費(fèi)多,導(dǎo)致系統(tǒng)所有者的支出變多4.3 對所建議技術(shù)可行性分析 基于Oracle數(shù)據(jù)庫開發(fā)的圖書館管理系統(tǒng),在原有系統(tǒng)的基礎(chǔ)上,進(jìn)行了改進(jìn),系統(tǒng)運(yùn)行速度大大提升,并且節(jié)約成本,安全可靠,操作方便,不要要太多的人力。4.4 經(jīng)濟(jì)可行性分析 由于對該系統(tǒng)進(jìn)行了改進(jìn),所以成本費(fèi)用不高,最主要的是,由于操作簡單易上手,不需要大量的人力來運(yùn)行,大大節(jié)約了成本4.5 社會(huì)因素可行性分析 本系統(tǒng)的研發(fā),完全符合相關(guān)規(guī)定,委托方和被委托方簽訂合同,完全合法,并且,自主研發(fā)改進(jìn),不會(huì)侵犯其他類似軟件的專利權(quán)等。4.6 結(jié)論意見 通過以上分析,我認(rèn)為該方案可行。 五 項(xiàng)目需求分析5.1 目的 項(xiàng)目需求分
8、析的目的是明確本系統(tǒng)的詳細(xì)需求,供使用單位確定本系統(tǒng)的功能和性能,并作為軟件設(shè)計(jì)人員的設(shè)計(jì)依據(jù)和使用單位的驗(yàn)收依據(jù)。5.2 用戶特點(diǎn)本系統(tǒng)面向的最終用戶是管理員(圖書館管理員和其他管理員),讀者(老師和同學(xué)等)。 5.3 系統(tǒng)需求分析 5.3.1 主要功能 1,能夠輸入圖書的綜合情況和進(jìn)行新書的入庫,現(xiàn)有圖書的信 息修改等。 2,能夠?qū)崿F(xiàn)對讀者信息的增,刪,查,改。 3,能夠進(jìn)行圖書的借閱和管理功能。 5.3.2 系統(tǒng)性能要求 1,系統(tǒng)安全,可靠 2,功能齊全 3,操作方便,界面整潔,友好 4,易于維護(hù)和擴(kuò)充 5.3.3 系統(tǒng)功能劃分 圖書館管理系統(tǒng)分為4大功能模塊,分別為“基礎(chǔ)數(shù)據(jù)維護(hù)”、“
9、圖書借閱管理”、“新書訂購管理”和“系統(tǒng)維護(hù)”。本系統(tǒng)各個(gè)部分及其包括的具體功能模塊如下圖所示:圖書借書管理圖書還書管理圖書查詢圖書類別管理圖書信息管理更改密碼用戶管理驗(yàn)收訂書新書訂購讀者信息管理系統(tǒng)維護(hù)新書訂購管理圖書借閱管理基礎(chǔ)數(shù)據(jù)維護(hù)圖書館管理系統(tǒng) 5.3.4 數(shù)據(jù)流程圖六 系統(tǒng)模塊設(shè)計(jì) 6.1數(shù)據(jù)庫設(shè)計(jì) 通常作為一個(gè)管理軟件,它的數(shù)據(jù)部分都是由數(shù)據(jù)庫來存儲(chǔ)和管理的。在本設(shè)計(jì)中數(shù)據(jù)庫承擔(dān)了圖書信息和讀者信息。在如今的數(shù)據(jù)庫產(chǎn)品中,有很多成熟的產(chǎn)品,如Oracle,DB2,SQL Server,MySQL等,圖書館管理系統(tǒng)應(yīng)用于高校的圖書館中,用戶數(shù)據(jù)以及圖書的信息數(shù)據(jù)并不是很大。考慮到成
10、本,選用了Oracle數(shù)據(jù)庫。下面將詳細(xì)的為您介紹本設(shè)計(jì)中數(shù)據(jù)庫的選擇以及數(shù)據(jù)庫的概念設(shè)計(jì)等。 6.1.1數(shù)據(jù)庫分析Oracle具有與其他數(shù)據(jù)庫相比具有以下優(yōu)點(diǎn):1、處理速度快,非???、安全級(jí)別高。支持快閃以及完美的恢復(fù),即使硬件壞了 也可以恢復(fù)到故障發(fā)前的1s3、幾臺(tái)數(shù)據(jù)庫做負(fù)載數(shù)據(jù)庫,可以做到30s以內(nèi)故障轉(zhuǎn)移,4、網(wǎng)格控制,以及 數(shù)據(jù)倉庫方面 也非常強(qiáng)大 6.1.2數(shù)據(jù)庫概念設(shè)計(jì) 根據(jù)以上對系統(tǒng)所作的需求分析、系統(tǒng)設(shè)計(jì),規(guī)劃出本系統(tǒng)中使用的數(shù)據(jù)庫實(shí)體分別為圖書信息實(shí)體、圖書分類實(shí)體、圖書訂購實(shí)體、讀者信息實(shí)體、圖書借閱信息實(shí)體、庫存信息實(shí)體。以下為幾個(gè)關(guān)鍵實(shí)體的E-R圖。1. 圖書信息
11、實(shí)體圖書信息實(shí)體包括圖書編號(hào)、圖書類別編號(hào)、書名、作者、出版社、價(jià)格、出版時(shí)間等屬性。其中圖書編號(hào)為圖書信息實(shí)體的主鍵,圖書類別編號(hào)為圖書信息實(shí)體的外鍵,與圖書分類實(shí)體具有外鍵關(guān)系。作者書名類別編號(hào)編號(hào)圖書出版時(shí)間價(jià)格出版社圖3-1 圖書信息實(shí)體E-R圖2. 讀者信息實(shí)體讀者信息實(shí)體包括條形碼、姓名、性別、年齡、電話、辦證日期、證件號(hào)碼等屬性。其中條形碼作為本實(shí)體的唯一標(biāo)識(shí)。 年齡性別 姓名條形碼讀者電話辦證日期證件號(hào)碼 圖3-2 讀者信息實(shí)體E-R圖3. 圖書借閱信息實(shí)體圖書借閱信息實(shí)體包括編號(hào)、圖書編號(hào)、讀者編號(hào)、是否歸還、借閱日期、歸還日期等屬性。編號(hào)作為圖書借閱信息實(shí)體的唯一標(biāo)識(shí),包括
12、兩個(gè)外鍵,分別為圖書編號(hào)與讀者編號(hào)。編號(hào)圖書編號(hào)讀者編號(hào)圖書借閱借閱日期歸還日期是否歸還圖3-3 圖書借閱信息實(shí)體E-R圖4. 圖書訂購實(shí)體圖書訂購實(shí)體主要包括圖書編號(hào),訂購日期、訂購數(shù)量、是否驗(yàn)收等屬性。圖書訂購實(shí)體以圖書編號(hào)與圖書信息實(shí)體建立了關(guān)系。訂購日期圖書編號(hào)訂購數(shù)量圖書訂購操作員折扣是否驗(yàn)收6.2主窗體設(shè)計(jì) 在整個(gè)系統(tǒng)中,主窗體部分顯示了本系統(tǒng)的所有功能。在主窗體的設(shè)計(jì)中運(yùn)用了Swing技術(shù),完成了對菜單欄以及工具欄的設(shè)計(jì)。管理員通過主窗體可以進(jìn)行相應(yīng)的操作,實(shí)現(xiàn)系統(tǒng)的功能。普通用戶也可以利用主窗體中的工具欄進(jìn)行常用的功能操作。下面將詳細(xì)的展現(xiàn)主窗體的設(shè)計(jì)細(xì)節(jié)部分。 6.2.1主窗
13、體概述管理員通過“系統(tǒng)登錄”模塊的驗(yàn)證后,可以登錄到圖書館管理系統(tǒng)的主窗體。系統(tǒng)主窗體主要包括菜單欄、工具欄。用戶在菜單欄中單擊任一菜單項(xiàng),即可執(zhí)行相應(yīng)的功能;工具欄為用戶提供了經(jīng)常使用的功能按鈕。 6.2.2主窗體的實(shí)現(xiàn)過程 主窗體的實(shí)現(xiàn)過程如下:1 創(chuàng)建Library類,在其構(gòu)造函數(shù)中設(shè)置主窗體相關(guān)屬性,如窗體大小、窗體標(biāo)題等相關(guān)屬性,還可以為窗體設(shè)置背景圖片,并調(diào)用創(chuàng)建菜單欄與工具欄的方法,在主窗體中創(chuàng)建菜單欄與工具欄。關(guān)鍵代碼如下:public Library() super();setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOS
14、E);setModalExclusionType(ModalExclusionType.APPLICATION_EXCLUDE);setLocationByPlatform(true);setSize(800, 600);setTitle("圖書館管理系統(tǒng)");JMenuBar menuBar = createMenu(); / 調(diào)用創(chuàng)建菜單欄的方法setJMenuBar(menuBar);JToolBar toolBar = createToolBar(); / 調(diào)用創(chuàng)建工具欄的方法getContentPane().add(toolBar, BorderLayout.NO
15、RTH);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) Dimension size = e.getComponent().getSize();label.setSize(e.getComponent().getSize();label.setTe
16、xt("<html><img width=" + size.width + " height="+ size.height + " src='"+ this.getClass().getResource("/backImg.jpg")+ "'></html>"););DESKTOP_PANE.add(label,new Integer(Integer.MIN_VALUE);getContentPane().add(DESKTOP_PANE);2
17、 編寫創(chuàng)建菜單欄的方法private JMenuBar createMenu() JMenuBar menuBar = new JMenuBar();JMenu bookOrderMenu = new JMenu(); / 初始化新書訂購管理菜單bookOrderMenu.setIcon(CreatecdIcon.add("xsdgcd.jpg");bookOrderMenu.add(MenuActions.NEWBOOK_ORDER);bookOrderMenu.add(MenuActions.NEWBOOK_CHECK_ACCEPT);JMenu baseMenu =
18、new JMenu();/ 初始化基礎(chǔ)數(shù)據(jù)維護(hù)菜單baseMenu.setIcon(CreatecdIcon.add("jcsjcd.jpg");JMenu readerManagerMItem = new JMenu("讀者信息管理");readerManagerMItem.add(MenuActions.READER_ADD);readerManagerMItem.add(MenuActions.READER_MODIFY);JMenu bookTypeManageMItem = new JMenu("圖書類別管理");bookT
19、ypeManageMItem.add(MenuActions.BOOKTYPE_ADD);bookTypeManageMItem.add(MenuActions.BOOKTYPE_MODIFY);JMenu menu = new JMenu("圖書信息管理");menu.add(MenuActions.BOOK_ADD);menu.add(MenuActions.BOOK_MODIFY);baseMenu.add(readerManagerMItem);baseMenu.add(bookTypeManageMItem);baseMenu.add(menu);baseMenu
20、.addSeparator();baseMenu.add(MenuActions.EXIT);JMenu borrowManageMenu = new JMenu(); / 借閱管理borrowManageMenu.setIcon(CreatecdIcon.add("jyglcd.jpg");borrowManageMenu.add(MenuActions.BORROW); / 借閱borrowManageMenu.add(MenuActions.GIVE_BACK); / 歸還borrowManageMenu.add(MenuActions.BOOK_SEARCH); /
21、 搜索JMenu sysManageMenu = new JMenu(); / 系統(tǒng)維護(hù)sysManageMenu.setIcon(CreatecdIcon.add("jcwhcd.jpg");JMenu userManageMItem = new JMenu("用戶管理"); / 用戶管理userManageMItem.add(MenuActions.USER_ADD);userManageMItem.add(MenuActions.USER_MODIFY);sysManageMenu.add(MenuActions.MODIFY_PASSWORD);
22、sysManageMenu.add(userManageMItem);menuBar.add(baseMenu); / 添加基礎(chǔ)數(shù)據(jù)維護(hù)菜單到菜單欄menuBar.add(bookOrderMenu); / 添加新書訂購管理菜單到菜單欄menuBar.add(borrowManageMenu); / 添加借閱管理菜單到菜單欄menuBar.add(sysManageMenu); / 添加系統(tǒng)維護(hù)菜單到菜單欄return menuBar;3 編寫創(chuàng)建工具欄的方法private JToolBar createToolBar() / 創(chuàng)建工具欄的方法JToolBar toolBar = new JT
23、oolBar();toolBar.setFloatable(false);toolBar.setBorder(new BevelBorder(BevelBorder.RAISED);JButton bookAddButton=new JButton(MenuActions.BOOK_ADD);ImageIcon icon = new ImageIcon(Library.class.getResource(“/bookAddtb.jpg”)bookAddButton.setIcon(icon);bookAddButton.setHideActionText(true);bookAddButton
24、.setToolTipText("fjdkjfk");/圖片上提示字toolBar.add(bookAddButton);toolBar.add(MenuActions.BOOK_MODIFY);/在工具欄中添加圖書修改與刪除圖標(biāo)JButton bookModiAndDelButton=new JButton(MenuActions.BOOK_MODIFY); ImageIconbookmodi icon=CreatecdIcon.add("bookModiAndDeltb.jpg");/創(chuàng)建圖標(biāo)方法bookModiAndDelButton.setIco
25、n(bookmodiicon);bookModiAndDelButton.setHideActionText(true);toolBar.add(bookModiAndDelButton);JButton bookTypeAddButton=new JButton(MenuActions.BOOKTYPE_ADD);ImageIconbookTypeAddicon=CreatecdIcon.add("bookTypeAddtb.jpg");/創(chuàng)建圖標(biāo)方法bookTypeAddButton.setIcon(bookTypeAddicon);bookTypeAddButton.
26、setHideActionText(true);toolBar.add(bookTypeAddButton);JButton bookBorrowButton=new JButton(MenuActions.BORROW);ImageIcon bookBorrowicon=CreatecdIcon.add("bookBorrowtb.jpg"); bookBorrowButton.setIcon(bookBorrowicon);bookBorrowButton.setHideActionText(true);toolBar.add(bookBorrowButton);JBu
27、tton bookOrderButton=new JButton(MenuActions.NEWBOOK_ORDER);ImageIcon bookOrdericon=CreatecdIcon.add("bookOrdertb.jpg");/創(chuàng)建圖標(biāo)方法bookOrderButton.setIcon(bookOrdericon);bookOrderButton.setHideActionText(true);toolBar.add(bookOrderButton);JButton bookCheckButton=newJButton(MenuActions.NEWBOOK_
28、CHECK_ACCEPT);ImageIcon bookCheckicon=CreatecdIcon.add("newbookChecktb.jpg");/創(chuàng)建圖標(biāo)方法bookCheckButton.setIcon(bookCheckicon);bookCheckButton.setHideActionText(true);toolBar.add(bookCheckButton);JButton readerAddButton=new JButton(MenuActions.READER_ADD);ImageIcon readerAddicon=CreatecdIcon.a
29、dd("readerAddtb.jpg");/創(chuàng)建圖標(biāo)方法readerAddButton.setIcon(readerAddicon);readerAddButton.setHideActionText(true);toolBar.add(readerAddButton);JButton readerModiAndDelButton=new JButton(MenuActions.READER_MODIFY);ImageIcon readerModiAndDelicon=CreatecdIcon.add("readerModiAndDeltb.jpg")
30、;/創(chuàng)建圖標(biāo)方法readerModiAndDelButton.setIcon(readerModiAndDelicon);readerModiAndDelButton.setHideActionText(true);toolBar.add(readerModiAndDelButton);JButton ExitButton=new JButton(MenuActions.EXIT);ImageIcon Exiticon=CreatecdIcon.add("exittb.jpg");/創(chuàng)建圖標(biāo)方法ExitButton.setIcon(Exiticon);ExitButton.
31、setHideActionText(true);toolBar.add(ExitButton);return toolBar;4 經(jīng)過程序運(yùn)行后得到下圖: 6.3登陸模塊設(shè)計(jì)一個(gè)完整的系統(tǒng)需要一定的權(quán)限才能進(jìn)行相應(yīng)的操作,圖書館管理系統(tǒng)也不例外。無論是管理員還是用戶都必須首先進(jìn)入登陸界面,只有輸入正確的賬號(hào)和密碼才能進(jìn)入到主窗體進(jìn)行相應(yīng)的操作,否則是不能進(jìn)行功能操作的。因此登陸模塊在整個(gè)系統(tǒng)中占據(jù)了很重要的地位。 6.3.1登錄模塊概述登錄模塊是圖書館管理系統(tǒng)的入口,在運(yùn)行本系統(tǒng)后,首先進(jìn)入的便是登錄窗體。在該窗體中,系統(tǒng)管理員可以通過輸入正確的管理員名稱與密碼登錄到系統(tǒng);當(dāng)沒有輸入管理員名稱
32、或密碼時(shí),系統(tǒng)將會(huì)彈出相應(yīng)的提示信息。 6.3.2登錄模塊的實(shí)現(xiàn)過程開發(fā)登錄模塊的具體步驟如下:1) 首先在BookLoginIFrame類構(gòu)造函數(shù)中設(shè)計(jì)登錄窗體的整體布局,包括添加窗體關(guān)閉按鈕、最小化按鈕、設(shè)置窗體大小等屬性。關(guān)鍵代碼如下:public BookLoginIFrame() super();final BorderLayout borderLayout = new BorderLayout();setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);borderLayout.setVgap(10);getContentPane().setL
33、ayout(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);getContentPane().add(panel);final JPanel panel_2 = new JPanel();final GridLayout gridLayout = new GridLay
34、out(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.setPreferredSize(new Dimension(0, 0);label.setMinimumSize(new Dimension(0, 0);panel_2.add(label);label.s
35、etText("用 戶 名:");username = new JTextField(20);username.setPreferredSize(new Dimension(0, 0);panel_2.add(username);final JLabel label_1 = new JLabel();label_1.setHorizontalAlignment(SwingConstants.CENTER);panel_2.add(label_1);label_1.setText("密 碼:");password = new JPasswordField(
36、20);password.setDocument(new MyDocument(6);password.setEchoChar('*');/設(shè)置密碼框的回顯字符password.addKeyListener(new KeyAdapter() public void keyPressed(final KeyEvent e) if (e.getKeyCode() = 10)login.doClick(););panel_2.add(password);final JPanel panel_1 = new JPanel();panel.add(panel_1, BorderLayou
37、t.SOUTH);login=new JButton();login.addActionListener(new BookLoginAction();login.setText("登錄");panel_1.add(login);reset=new JButton();reset.addActionListener(new BookResetAction();reset.setText("重置");panel_1.add(reset);final JLabel tupianLabel = new JLabel();ImageIcon loginIcon=C
38、reatecdIcon.add("login.jpg");tupianLabel.setIcon(loginIcon);tupianLabel.setOpaque(true);tupianLabel.setBackground(Color.GREEN);tupianLabel.setPreferredSize(new Dimension(260, 60);panel.add(tupianLabel, BorderLayout.NORTH);setVisible(true);setResizable(false);程序運(yùn)行圖如下:圖5-1 圖書館管理系統(tǒng)登錄運(yùn)行圖2) 為了方
39、便在登錄驗(yàn)證時(shí)取值傳遞,需要?jiǎng)?chuàng)建一個(gè)對應(yīng)于tb_operator表字段的JavaBean。這個(gè)類除了以數(shù)據(jù)表字段命名的成員變量之外,還創(chuàng)建了與成員變量相對應(yīng)的setXXX()getXXX()方法。關(guān)鍵代碼如下:public class Operater private String id;private String name;private String grade;private String password;public String getGrade() return grade;public void setGrade(String grade) this.grade = grad
40、e;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 password;public void setPassword(String password) this.password = password;3) 分別為“登錄”按鈕與“重置”按鈕設(shè)置監(jiān)聽事件。cl
41、ass BookLoginAction implements ActionListener public void actionPerformed(final ActionEvent e) user = Dao.check(username.getText(), password.getText();if (user.getName() != null) try Library frame = new Library();frame.setVisible(true);BookLoginIFrame.this.setVisible(false); catch (Exception ex) ex.
42、printStackTrace(); else JOptionPane.showMessageDialog(null, "只有管理員才可以登錄!");username.setText("");password.setText("");4) 在Dao類中創(chuàng)建登錄驗(yàn)證方法,在此方法中查詢文本框中輸入的字符串是否與操作員數(shù)據(jù)表中的數(shù)據(jù)相匹配,并是否為管理員登錄,以上條件都滿足,登錄驗(yàn)證才能成功。關(guān)鍵代碼如下:public static Operater check(String name, String password) int i =
43、0;Operater operater=new Operater();String sql = "select * from tb_operator where name='" + name+ "' and password='" + password + "'and admin=1"ResultSet rs = Dao.executeQuery(sql);try while (rs.next() String names = rs.getString(1);operater.setId(rs.getS
44、tring("id");operater.setName(rs.getString("name");operater.setGrade(rs.getString("admin");operater.setPassword(rs.getString("password");if (names != null) i = 1; catch (Exception e) e.printStackTrace();Dao.close();return operater;6.4圖書管理模塊設(shè)計(jì) 圖書管理系統(tǒng)的最主要功能當(dāng)然要進(jìn)行圖
45、書的管理,其中包括圖書的添加,圖書信息的修改,圖書的借還和圖書的查詢。圖書管理模塊是圖書管理系統(tǒng)的核心模塊。它包含了系統(tǒng)中最重要的功能。管理員和用戶平時(shí)使用的大部分功能都將在這一模塊中實(shí)現(xiàn)。 6.4.1圖書信息管理模塊概述圖書信息管理模塊主要包括圖書添加、圖書信息修改、圖書借還、圖書查詢等功能。在圖書添加窗體中,管理員可以錄入圖書相關(guān)信息,進(jìn)入圖書信息修改窗體后,首先在表格中顯示所有圖書的相關(guān)信息,管理員可以選擇表格中需要修改的某一行數(shù)據(jù),這時(shí)在窗體下方的文本框中將顯示相應(yīng)的內(nèi)容。圖書借閱模塊主要用于管理讀者借閱圖書的信息。管理員輸入讀者條形碼、圖書條形碼后,在讀者相關(guān)信息文本框以及圖書相關(guān)信
46、息文本框中將相應(yīng)地顯示此讀者和書籍的相關(guān)信息。 6.4.2圖書信息管理模塊實(shí)現(xiàn)過程 圖書添加模塊的開發(fā)步驟如下:首先創(chuàng)建圖書信息添加窗體,然后在圖書信息添加窗體中添加按鈕監(jiān)聽事件,關(guān)鍵代碼如下:public BookAddIFrame() super();final BorderLayout borderLayout = new BorderLayout();getContentPane().setLayout(borderLayout);setIconifiable(true);/ 設(shè)置窗體可最小化setClosable(true);/ 設(shè)置窗體可關(guān)閉setTitle("圖書信息添
47、加");/ 設(shè)置窗體標(biāo)題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);gridLayout.setHgap(5);panel.setLayout(gridLayout);getContentPane().add(panel);final JLabel label_2 =
48、 new JLabel();label_2.setText("圖書編號(hào):");panel.add(label_2);ISBN = new JTextField("請輸入13位書號(hào)",13);ISBN.setDocument(new MyDocument(13); /設(shè)置書號(hào)文本框最大輸入值為13ISBN.setColumns(13);ISBN.addKeyListener(new ISBNkeyListener();ISBN.addFocusListener(new ISBNFocusListener();panel.add(ISBN);final JL
49、abel label = new JLabel();label.setHorizontalAlignment(SwingConstants.CENTER);label.setText("類別:");panel.add(label);bookType = new JComboBox();bookTypeModel= (DefaultComboBoxModel)bookType.getModel();/從數(shù)據(jù)庫中取出圖書類別List list=Dao.selectBookCategory();for(int i=0;i<list.size();i+)BookType bo
50、oktype=(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 = new JLabel();label_1.setText("書名:");panel.add(label_1);bookName = new JTextField();panel
51、.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(new MyDocument(10);panel.add(writer);final JLabel label_2_1 = new JLabel();label_2_1.setText("
52、;出版社:");panel.add(label_2_1);publisher = new JComboBox();Stringarray=new String"*出版社","*信息出版社","*大型出版社","*小型出版社"publisher.setModel(new DefaultComboBoxModel(array);panel.add(publisher);final JLabel label_4 = new JLabel();label_4.setHorizontalAlignment(Swin
53、gConstants.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 SimpleDateFo
54、rmat("yyyy-MM-dd");pubDate= new JFormattedTextField(myfmt.getDateInstance();pubDate.setValue(new java.util.Date();panel.add(pubDate);final JLabel label_3_1 = new JLabel();label_3_1.setHorizontalAlignment(SwingConstants.CENTER);label_3_1.setText("單價(jià):");panel.add(label_3_1);price= new JTextField(); price.setDocument(new MyDocument(5);price.addKeyListener(new NumberListener();panel.add(price
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度大數(shù)據(jù)分析服務(wù)采購合同合作補(bǔ)充協(xié)議
- 2025年度高新技術(shù)公司股份轉(zhuǎn)讓合同示范文本
- 2025年度新型化肥綠色環(huán)保購銷合同書范本
- 2025年度環(huán)境保護(hù)技術(shù)研發(fā)與應(yīng)用合同
- 2025年度環(huán)保建材供應(yīng)合同賣方綠色協(xié)議
- 二零二四年度LED路燈批量采購與安裝合同3篇
- 2025年度與綠色環(huán)保型打印店深度合作合同
- 2025年度生態(tài)環(huán)境修復(fù)工程承包合同-@-2
- 2025年環(huán)保技術(shù)研發(fā)成果轉(zhuǎn)化合同
- 2025年國際貿(mào)易貨物售后服務(wù)合同范本
- 永磁直流(汽車)電機(jī)計(jì)算程序
- 國家電網(wǎng)招聘2025-企業(yè)文化復(fù)習(xí)試題含答案
- 醫(yī)院物業(yè)服務(wù)組織機(jī)構(gòu)及人員的配備、培訓(xùn)管理方案
- 外觀判定標(biāo)準(zhǔn)
- 江西上饒市2025屆數(shù)學(xué)高二上期末檢測試題含解析
- 腦卒中后吞咽障礙患者進(jìn)食護(hù)理團(tuán)體標(biāo)準(zhǔn)
- 工行人工智能風(fēng)控
- 2023風(fēng)電機(jī)組預(yù)應(yīng)力混凝土塔筒與基礎(chǔ)結(jié)構(gòu)設(shè)計(jì)標(biāo)準(zhǔn)
- 小學(xué)語文閱讀教學(xué)落實(shí)學(xué)生核心素養(yǎng)方法的研究-結(jié)題報(bào)告
- 2024年南京鐵道職業(yè)技術(shù)學(xué)院高職單招(英語/數(shù)學(xué)/語文)筆試歷年參考題庫含答案解析
- 正月十五元宵節(jié)介紹課件
評(píng)論
0/150
提交評(píng)論