版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上目錄一 項(xiàng)目開(kāi)發(fā)背景當(dāng)今時(shí)代是飛速發(fā)展的信息時(shí)代。在各行各業(yè)中離不開(kāi)信息處理,這正是計(jì)算機(jī)被廣泛應(yīng)用于信息管理系統(tǒng)的環(huán)境。計(jì)算機(jī)的最大好處在于利用它能夠進(jìn)行信息管理。使用計(jì)算機(jī)進(jìn)行信息控制,不僅提高了工作效率,而且大大的提高了其安全性。尤其對(duì)于復(fù)雜的信息管理,計(jì)算機(jī)能夠充分發(fā)揮它的優(yōu)越性。計(jì)算機(jī)進(jìn)行信息管理與信息管理系統(tǒng)的開(kāi)發(fā)密切相關(guān),系統(tǒng)的開(kāi)發(fā)是系統(tǒng)管理的前提。本系統(tǒng)就是為了管理好圖書(shū)館信息而設(shè)計(jì)的。圖書(shū)館作為一種信息資源的集散地,圖書(shū)和用戶(hù)借閱資料繁多,包含很多的信息數(shù)據(jù)的管理,現(xiàn)今,有很多的圖書(shū)館都是初步開(kāi)始使用,甚至尚未使用計(jì)算機(jī)進(jìn)行信息管理。根據(jù)調(diào)查得知,他
2、們以前對(duì)信息管理的主要方式是基于文本、表格等紙介質(zhì)的手工處理,對(duì)于圖書(shū)借閱情況(如借書(shū)天數(shù)、超過(guò)限定借書(shū)時(shí)間的天數(shù))的統(tǒng)計(jì)和核實(shí)等往往采用對(duì)借書(shū)卡的人工檢查進(jìn)行,對(duì)借閱者的借閱權(quán)限、以及借閱天數(shù)等用人工計(jì)算、手抄進(jìn)行。數(shù)據(jù)信息處理工作量大,容易出錯(cuò);由于數(shù)據(jù)繁多,容易丟失,且不易查找。總的來(lái)說(shuō),缺乏系統(tǒng),規(guī)范的信息管理手段。盡管有的圖書(shū)館有計(jì)算機(jī),但是尚未用于信息管理,沒(méi)有發(fā)揮它的效力,資源閑置比較突出,這就是管理信息系統(tǒng)的開(kāi)發(fā)的基本環(huán)境。數(shù)據(jù)處理手工操作,工作量大,出錯(cuò)率高,出錯(cuò)后不易更改。圖書(shū)館采取手工方式對(duì)圖書(shū)借閱情況進(jìn)行人工管理,由于信息比較多,圖書(shū)借閱信息的管理工作混亂而又復(fù)雜;一般
3、借閱情況是記錄在借書(shū)證上,圖書(shū)的數(shù)目和內(nèi)容記錄在文件中,圖書(shū)館的工作人員和管理員也只是當(dāng)時(shí)對(duì)它比較清楚,時(shí)間一長(zhǎng),如再要進(jìn)行查詢(xún),就得在眾多的資料中翻閱、查找了,造成查詢(xún)費(fèi)時(shí)、費(fèi)力。如要對(duì)很長(zhǎng)時(shí)間以前的圖書(shū)進(jìn)行更改就更加困難了?;谶@此問(wèn)題,我認(rèn)為有必要建立一個(gè)圖書(shū)管理系統(tǒng),使圖書(shū)管理工作規(guī)范化,系統(tǒng)化,程序化,避免圖書(shū)管理的隨意性,提高信息處理的速度和準(zhǔn)確性,能夠及時(shí)、準(zhǔn)確、有效的查詢(xún)和修改圖書(shū)情況。二 項(xiàng)目目的及意義我們要實(shí)現(xiàn)科學(xué)技術(shù)現(xiàn)代化,圖書(shū)情報(bào)工作的現(xiàn)代化是極其重要的,又由于科學(xué)和技術(shù)的不斷發(fā)展和進(jìn)步,現(xiàn)代技術(shù)是一個(gè)動(dòng)態(tài)的概念.第二次世界大戰(zhàn)以來(lái),以計(jì)算機(jī)技術(shù)為代表的現(xiàn)代技術(shù)有了巨大
4、的發(fā)展,而且還在迅速的變化發(fā)展之中,70年代后期,出現(xiàn)圖書(shū)情報(bào)工作的 “聯(lián)機(jī)革命”,使計(jì)算機(jī)更廣泛地,更有效的應(yīng)用到各個(gè)角落,發(fā)達(dá)國(guó)家較重視這一領(lǐng)域的發(fā)展,我國(guó)尚存在較大的差距。所以我們說(shuō),圖書(shū)情報(bào)工作計(jì)算機(jī)化是提高我國(guó)科學(xué)技術(shù)水平的一項(xiàng)帶有重大戰(zhàn)略意義的措施,它是圖書(shū)情報(bào)工作現(xiàn)代化的重要標(biāo)志。計(jì)算機(jī)技術(shù)是現(xiàn)代技術(shù)的一部分,圖書(shū)自動(dòng)化也只是圖書(shū)館現(xiàn)代化的一部分,它們之間是部分和整體的關(guān)系,但由于計(jì)算機(jī)技術(shù)是信息技術(shù)的心臟,現(xiàn)代社會(huì)的驕子,信息社會(huì)的科技主角,所以在圖書(shū)館現(xiàn)代技術(shù)中,計(jì)算機(jī)技術(shù)處于核心地位,它對(duì)于其他現(xiàn)代化設(shè)備起控制,連接和轉(zhuǎn)換的作用,而圖書(shū)館自動(dòng)化是圖書(shū)館現(xiàn)代化的核心和主導(dǎo)部分
5、。圖書(shū)情報(bào)的計(jì)算機(jī)管理系統(tǒng)能提高圖書(shū)館本身管理水平,能代替工作人員進(jìn)行圖書(shū)情報(bào)資料的某些加工處理,把工作人員從繁重的手工勞動(dòng),重復(fù)勞動(dòng)中解放出來(lái)??傊D書(shū)館的計(jì)算機(jī)自動(dòng)化管理系統(tǒng),不但可以大大提高圖書(shū)館圖書(shū)流通率,而且推動(dòng)了社會(huì)文化生活的進(jìn)步。本論文以圖書(shū)館管理信息系統(tǒng)的需求分析及概念設(shè)計(jì)為切入點(diǎn),運(yùn)用理論與實(shí)際相結(jié)合的方法,構(gòu)建一個(gè)包含讀者信息,書(shū)籍信息和借閱信息的圖書(shū)館管理系統(tǒng)。圖書(shū)館管理系統(tǒng)是典型的信息管理系統(tǒng)(MIS),其開(kāi)發(fā)主要包括后臺(tái)數(shù)據(jù)庫(kù)的建立和維護(hù)以及前端應(yīng)用程序的開(kāi)發(fā)兩個(gè)方面。對(duì)于前者要求建立起數(shù)據(jù)一致性和完整性強(qiáng)、數(shù)據(jù)安全性好的庫(kù)。而對(duì)于后者則要求應(yīng)用程序功能完備,易
6、使用等特點(diǎn)。因此本人結(jié)合開(kāi)放式圖書(shū)館的要求,對(duì)MySQL數(shù)據(jù)庫(kù)、Java程序設(shè)計(jì)進(jìn)行了較深入的學(xué)習(xí)和應(yīng)用,主要完成對(duì)圖書(shū)管理系統(tǒng)的需求分析、功能模塊劃分、數(shù)據(jù)庫(kù)模式分析,并由此設(shè)計(jì)了數(shù)據(jù)庫(kù)結(jié)構(gòu)和應(yīng)用程序。希望本文所設(shè)計(jì)的圖書(shū)館管理系統(tǒng)能夠滿(mǎn)足借閱者和圖書(shū)館管理人員的需求。三 開(kāi)發(fā)環(huán)境3.1硬件環(huán)境 PC機(jī)一臺(tái)3.2軟件環(huán)境My Eclipse開(kāi)發(fā)環(huán)境;Power Designer;Visio;Oracle 11g四 項(xiàng)目可行性分析4.1 項(xiàng)目背景 名稱(chēng):基于Oracle 11g的圖書(shū)館管理系統(tǒng)4.2 對(duì)現(xiàn)有系統(tǒng)的分析 現(xiàn)在市面上有許多的圖書(shū)館管理系統(tǒng)的軟件,但是質(zhì)量參差不齊,購(gòu)買(mǎi)花費(fèi)大,技術(shù)不
7、到位,人力花費(fèi)多,導(dǎo)致系統(tǒng)所有者的支出變多4.3 對(duì)所建議技術(shù)可行性分析 基于Oracle數(shù)據(jù)庫(kù)開(kāi)發(fā)的圖書(shū)館管理系統(tǒng),在原有系統(tǒng)的基礎(chǔ)上,進(jìn)行了改進(jìn),系統(tǒng)運(yùn)行速度大大提升,并且節(jié)約成本,安全可靠,操作方便,不要要太多的人力。4.4 經(jīng)濟(jì)可行性分析 由于對(duì)該系統(tǒng)進(jìn)行了改進(jìn),所以成本費(fèi)用不高,最主要的是,由于操作簡(jiǎn)單易上手,不需要大量的人力來(lái)運(yùn)行,大大節(jié)約了成本4.5 社會(huì)因素可行性分析 本系統(tǒng)的研發(fā),完全符合相關(guān)規(guī)定,委托方和被委托方簽訂合同,完全合法,并且,自主研發(fā)改進(jìn),不會(huì)侵犯其他類(lèi)似軟件的專(zhuān)利權(quán)等。4.6 結(jié)論意見(jiàn) 通過(guò)以上分析,我認(rèn)為該方案可行。 五 項(xiàng)目需求分析5.1 目的 項(xiàng)目需求分
8、析的目的是明確本系統(tǒng)的詳細(xì)需求,供使用單位確定本系統(tǒng)的功能和性能,并作為軟件設(shè)計(jì)人員的設(shè)計(jì)依據(jù)和使用單位的驗(yàn)收依據(jù)。5.2 用戶(hù)特點(diǎn)本系統(tǒng)面向的最終用戶(hù)是管理員(圖書(shū)館管理員和其他管理員),讀者(老師和同學(xué)等)。 5.3 系統(tǒng)需求分析 5.3.1 主要功能 1,能夠輸入圖書(shū)的綜合情況和進(jìn)行新書(shū)的入庫(kù),現(xiàn)有圖書(shū)的信 息修改等。 2,能夠?qū)崿F(xiàn)對(duì)讀者信息的增,刪,查,改。 3,能夠進(jìn)行圖書(shū)的借閱和管理功能。 5.3.2 系統(tǒng)性能要求 1,系統(tǒng)安全,可靠 2,功能齊全 3,操作方便,界面整潔,友好 4,易于維護(hù)和擴(kuò)充 5.3.3 系統(tǒng)功能劃分 圖書(shū)館管理系統(tǒng)分為4大功能模塊,分別為“基礎(chǔ)數(shù)據(jù)維護(hù)”、“
9、圖書(shū)借閱管理”、“新書(shū)訂購(gòu)管理”和“系統(tǒng)維護(hù)”。本系統(tǒng)各個(gè)部分及其包括的具體功能模塊如下圖所示:圖書(shū)借書(shū)管理圖書(shū)還書(shū)管理圖書(shū)查詢(xún)圖書(shū)類(lèi)別管理圖書(shū)信息管理更改密碼用戶(hù)管理驗(yàn)收訂書(shū)新書(shū)訂購(gòu)讀者信息管理系統(tǒng)維護(hù)新書(shū)訂購(gòu)管理圖書(shū)借閱管理基礎(chǔ)數(shù)據(jù)維護(hù)圖書(shū)館管理系統(tǒng) 5.3.4 數(shù)據(jù)流程圖六 系統(tǒng)模塊設(shè)計(jì) 6.1數(shù)據(jù)庫(kù)設(shè)計(jì) 通常作為一個(gè)管理軟件,它的數(shù)據(jù)部分都是由數(shù)據(jù)庫(kù)來(lái)存儲(chǔ)和管理的。在本設(shè)計(jì)中數(shù)據(jù)庫(kù)承擔(dān)了圖書(shū)信息和讀者信息。在如今的數(shù)據(jù)庫(kù)產(chǎn)品中,有很多成熟的產(chǎn)品,如Oracle,DB2,SQL Server,MySQL等,圖書(shū)館管理系統(tǒng)應(yīng)用于高校的圖書(shū)館中,用戶(hù)數(shù)據(jù)以及圖書(shū)的信息數(shù)據(jù)并不是很大??紤]到成
10、本,選用了Oracle數(shù)據(jù)庫(kù)。下面將詳細(xì)的為您介紹本設(shè)計(jì)中數(shù)據(jù)庫(kù)的選擇以及數(shù)據(jù)庫(kù)的概念設(shè)計(jì)等。 6.1.1數(shù)據(jù)庫(kù)分析Oracle具有與其他數(shù)據(jù)庫(kù)相比具有以下優(yōu)點(diǎn):1、處理速度快,非常快2、安全級(jí)別高。支持快閃以及完美的恢復(fù),即使硬件壞了 也可以恢復(fù)到故障發(fā)前的1s3、幾臺(tái)數(shù)據(jù)庫(kù)做負(fù)載數(shù)據(jù)庫(kù),可以做到30s以?xún)?nèi)故障轉(zhuǎn)移,4、網(wǎng)格控制,以及 數(shù)據(jù)倉(cāng)庫(kù)方面 也非常強(qiáng)大 6.1.2數(shù)據(jù)庫(kù)概念設(shè)計(jì) 根據(jù)以上對(duì)系統(tǒng)所作的需求分析、系統(tǒng)設(shè)計(jì),規(guī)劃出本系統(tǒng)中使用的數(shù)據(jù)庫(kù)實(shí)體分別為圖書(shū)信息實(shí)體、圖書(shū)分類(lèi)實(shí)體、圖書(shū)訂購(gòu)實(shí)體、讀者信息實(shí)體、圖書(shū)借閱信息實(shí)體、庫(kù)存信息實(shí)體。以下為幾個(gè)關(guān)鍵實(shí)體的E-R圖。1. 圖書(shū)信息
11、實(shí)體圖書(shū)信息實(shí)體包括圖書(shū)編號(hào)、圖書(shū)類(lèi)別編號(hào)、書(shū)名、作者、出版社、價(jià)格、出版時(shí)間等屬性。其中圖書(shū)編號(hào)為圖書(shū)信息實(shí)體的主鍵,圖書(shū)類(lèi)別編號(hào)為圖書(shū)信息實(shí)體的外鍵,與圖書(shū)分類(lèi)實(shí)體具有外鍵關(guān)系。作者書(shū)名類(lèi)別編號(hào)編號(hào)圖書(shū)出版時(shí)間價(jià)格出版社圖3-1 圖書(shū)信息實(shí)體E-R圖2. 讀者信息實(shí)體讀者信息實(shí)體包括條形碼、姓名、性別、年齡、電話(huà)、辦證日期、證件號(hào)碼等屬性。其中條形碼作為本實(shí)體的唯一標(biāo)識(shí)。 年齡性別 姓名條形碼讀者電話(huà)辦證日期證件號(hào)碼 圖3-2 讀者信息實(shí)體E-R圖3. 圖書(shū)借閱信息實(shí)體圖書(shū)借閱信息實(shí)體包括編號(hào)、圖書(shū)編號(hào)、讀者編號(hào)、是否歸還、借閱日期、歸還日期等屬性。編號(hào)作為圖書(shū)借閱信息實(shí)體的唯一標(biāo)識(shí),包括
12、兩個(gè)外鍵,分別為圖書(shū)編號(hào)與讀者編號(hào)。編號(hào)圖書(shū)編號(hào)讀者編號(hào)圖書(shū)借閱借閱日期歸還日期是否歸還圖3-3 圖書(shū)借閱信息實(shí)體E-R圖4. 圖書(shū)訂購(gòu)實(shí)體圖書(shū)訂購(gòu)實(shí)體主要包括圖書(shū)編號(hào),訂購(gòu)日期、訂購(gòu)數(shù)量、是否驗(yàn)收等屬性。圖書(shū)訂購(gòu)實(shí)體以圖書(shū)編號(hào)與圖書(shū)信息實(shí)體建立了關(guān)系。訂購(gòu)日期圖書(shū)編號(hào)訂購(gòu)數(shù)量圖書(shū)訂購(gòu)操作員折扣是否驗(yàn)收6.2主窗體設(shè)計(jì) 在整個(gè)系統(tǒng)中,主窗體部分顯示了本系統(tǒng)的所有功能。在主窗體的設(shè)計(jì)中運(yùn)用了Swing技術(shù),完成了對(duì)菜單欄以及工具欄的設(shè)計(jì)。管理員通過(guò)主窗體可以進(jìn)行相應(yīng)的操作,實(shí)現(xiàn)系統(tǒng)的功能。普通用戶(hù)也可以利用主窗體中的工具欄進(jìn)行常用的功能操作。下面將詳細(xì)的展現(xiàn)主窗體的設(shè)計(jì)細(xì)節(jié)部分。 6.2.1主窗
13、體概述管理員通過(guò)“系統(tǒng)登錄”模塊的驗(yàn)證后,可以登錄到圖書(shū)館管理系統(tǒng)的主窗體。系統(tǒng)主窗體主要包括菜單欄、工具欄。用戶(hù)在菜單欄中單擊任一菜單項(xiàng),即可執(zhí)行相應(yīng)的功能;工具欄為用戶(hù)提供了經(jīng)常使用的功能按鈕。 6.2.2主窗體的實(shí)現(xiàn)過(guò)程 主窗體的實(shí)現(xiàn)過(guò)程如下:1 創(chuàng)建Library類(lèi),在其構(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("圖書(shū)館管理系統(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、 編寫(xiě)創(chuàng)建菜單欄的方法private JMenuBar createMenu() JMenuBar menuBar = new JMenuBar();JMenu bookOrderMenu = new JMenu(); / 初始化新書(shū)訂購(gòu)管理菜單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("圖書(shū)類(lèi)別管理");bookT
19、ypeManageMItem.add(MenuActions.BOOKTYPE_ADD);bookTypeManageMItem.add(MenuActions.BOOKTYPE_MODIFY);JMenu menu = new JMenu("圖書(shū)信息管理");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("用戶(hù)管理"); / 用戶(hù)管理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); / 添加新書(shū)訂購(gòu)管理菜單到菜單欄menuBar.add(borrowManageMenu); / 添加借閱管理菜單到菜單欄menuBar.add(sysManageMenu); / 添加系統(tǒng)維護(hù)菜單到菜單欄return menuBar;3 編寫(xiě)創(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);/在工具欄中添加圖書(shū)修改與刪除圖標(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)過(guò)程序運(yùn)行后得到下圖: 6.3登陸模塊設(shè)計(jì)一個(gè)完整的系統(tǒng)需要一定的權(quán)限才能進(jìn)行相應(yīng)的操作,圖書(shū)館管理系統(tǒng)也不例外。無(wú)論是管理員還是用戶(hù)都必須首先進(jìn)入登陸界面,只有輸入正確的賬號(hào)和密碼才能進(jìn)入到主窗體進(jìn)行相應(yīng)的操作,否則是不能進(jìn)行功能操作的。因此登陸模塊在整個(gè)系統(tǒng)中占據(jù)了很重要的地位。 6.3.1登錄模塊概述登錄模塊是圖書(shū)館管理系統(tǒng)的入口,在運(yùn)行本系統(tǒng)后,首先進(jìn)入的便是登錄窗體。在該窗體中,系統(tǒng)管理員可以通過(guò)輸入正確的管理員名稱(chēng)與密碼登錄到系統(tǒng);當(dāng)沒(méi)有輸入管理員名稱(chēng)
32、或密碼時(shí),系統(tǒng)將會(huì)彈出相應(yīng)的提示信息。 6.3.2登錄模塊的實(shí)現(xiàn)過(guò)程開(kāi)發(fā)登錄模塊的具體步驟如下:1) 首先在BookLoginIFrame類(lèi)構(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("圖書(shū)館管理系統(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("用 戶(hù) 名:");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 圖書(shū)館管理系統(tǒng)登錄運(yùn)行圖2) 為了方
39、便在登錄驗(yàn)證時(shí)取值傳遞,需要?jiǎng)?chuàng)建一個(gè)對(duì)應(yīng)于tb_operator表字段的JavaBean。這個(gè)類(lèi)除了以數(shù)據(jù)表字段命名的成員變量之外,還創(chuàng)建了與成員變量相對(duì)應(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)聽(tīng)事件。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類(lèi)中創(chuàng)建登錄驗(yàn)證方法,在此方法中查詢(xún)文本框中輸入的字符串是否與操作員數(shù)據(jù)表中的數(shù)據(jù)相匹配,并是否為管理員登錄,以上條件都滿(mǎn)足,登錄驗(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ū)管理模塊設(shè)計(jì) 圖書(shū)管理系統(tǒng)的最主要功能當(dāng)然要進(jìn)行圖
45、書(shū)的管理,其中包括圖書(shū)的添加,圖書(shū)信息的修改,圖書(shū)的借還和圖書(shū)的查詢(xún)。圖書(shū)管理模塊是圖書(shū)管理系統(tǒng)的核心模塊。它包含了系統(tǒng)中最重要的功能。管理員和用戶(hù)平時(shí)使用的大部分功能都將在這一模塊中實(shí)現(xiàn)。 6.4.1圖書(shū)信息管理模塊概述圖書(shū)信息管理模塊主要包括圖書(shū)添加、圖書(shū)信息修改、圖書(shū)借還、圖書(shū)查詢(xún)等功能。在圖書(shū)添加窗體中,管理員可以錄入圖書(shū)相關(guān)信息,進(jìn)入圖書(shū)信息修改窗體后,首先在表格中顯示所有圖書(shū)的相關(guān)信息,管理員可以選擇表格中需要修改的某一行數(shù)據(jù),這時(shí)在窗體下方的文本框中將顯示相應(yīng)的內(nèi)容。圖書(shū)借閱模塊主要用于管理讀者借閱圖書(shū)的信息。管理員輸入讀者條形碼、圖書(shū)條形碼后,在讀者相關(guān)信息文本框以及圖書(shū)相關(guān)信
46、息文本框中將相應(yīng)地顯示此讀者和書(shū)籍的相關(guān)信息。 6.4.2圖書(shū)信息管理模塊實(shí)現(xiàn)過(guò)程 圖書(shū)添加模塊的開(kāi)發(fā)步驟如下:首先創(chuàng)建圖書(shū)信息添加窗體,然后在圖書(shū)信息添加窗體中添加按鈕監(jiān)聽(tīng)事件,關(guān)鍵代碼如下:public BookAddIFrame() super();final BorderLayout borderLayout = new BorderLayout();getContentPane().setLayout(borderLayout);setIconifiable(true);/ 設(shè)置窗體可最小化setClosable(true);/ 設(shè)置窗體可關(guān)閉setTitle("圖書(shū)信息添
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("圖書(shū)編號(hào):");panel.add(label_2);ISBN = new JTextField("請(qǐng)輸入13位書(shū)號(hào)",13);ISBN.setDocument(new MyDocument(13); /設(shè)置書(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("類(lèi)別:");panel.add(label);bookType = new JComboBox();bookTypeModel= (DefaultComboBoxModel)bookType.getModel();/從數(shù)據(jù)庫(kù)中取出圖書(shū)類(lèi)別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("書(shū)名:");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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026貴州省康復(fù)醫(yī)院面向社會(huì)引聘高層次人才筆試模擬試題及答案解析
- 精良軟件項(xiàng)目開(kāi)發(fā)責(zé)任承諾函9篇
- 2026年阜陽(yáng)市臨泉縣直水務(wù)和順幼兒園招聘保育員筆試備考題庫(kù)及答案解析
- 2026河南安陽(yáng)市國(guó)控集團(tuán)有限公司招聘12人筆試參考題庫(kù)及答案解析
- 2026中國(guó)金幣集團(tuán)有限公司及所屬單位春季校園招聘22人筆試備考試題及答案解析
- 2026山東臨沂市榮軍優(yōu)撫醫(yī)院(臨沂市心理醫(yī)院)招聘綜合類(lèi)崗位2人筆試備考試題及答案解析
- 2026河北承德市教育局選聘急需緊缺學(xué)科教師39人筆試備考試題及答案解析
- 2026云南省玉溪實(shí)驗(yàn)中學(xué)教師招聘18人筆試參考題庫(kù)及答案解析
- 企業(yè)發(fā)展策略分享討論活動(dòng)方案
- 2026國(guó)家中規(guī)院分支機(jī)構(gòu)招聘高校畢業(yè)生30人筆試備考題庫(kù)及答案解析
- GB/T 19436.2-2025機(jī)械電氣安全電敏保護(hù)設(shè)備第2部分:使用有源光電保護(hù)裝置(AOPDs)設(shè)備的特殊要求
- 凈菜加工工藝流程與質(zhì)量控制要點(diǎn)
- 2025年新能源電力系統(tǒng)仿真技術(shù)及應(yīng)用研究報(bào)告
- 第02講排列組合(復(fù)習(xí)講義)
- 大型商業(yè)綜合體消防安全應(yīng)急預(yù)案
- 《砂漿、混凝土用低碳劑》
- 2025年社區(qū)工作總結(jié)及2026年工作計(jì)劃
- 無(wú)人機(jī)性能評(píng)估與測(cè)試計(jì)劃
- 2025年保安員(初級(jí))考試模擬100題及答案(一)
- 湖北省新八校協(xié)作體2025-2026學(xué)年度上學(xué)期高三10月月考 英語(yǔ)試卷(含答案詳解)
- 酒駕滿(mǎn)分考試題庫(kù)及答案2025
評(píng)論
0/150
提交評(píng)論