JAVA圖書館管理系統(tǒng)課程設(shè)計_第1頁
JAVA圖書館管理系統(tǒng)課程設(shè)計_第2頁
JAVA圖書館管理系統(tǒng)課程設(shè)計_第3頁
JAVA圖書館管理系統(tǒng)課程設(shè)計_第4頁
JAVA圖書館管理系統(tǒng)課程設(shè)計_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、圖書館管理系統(tǒng)1課程設(shè)計的目的目前,隨著網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,各行各業(yè)都在追求信息化,以防在信息時代落伍,而普通高校也如此,圖書館是高校師生獲得知識的一個重要渠道。因此一個健全的圖書管理系統(tǒng)就必不可少,圖書管理系統(tǒng)的使用大大的提高了圖書館的工作效率,很好的節(jié)省了大量的人力、物力和財力資源。管理信息系統(tǒng)的開發(fā)是一個開發(fā)周期長、技術(shù)要求高、影響因素多的復(fù)雜系統(tǒng)工程,因此制定一個完善、可行、合理的開發(fā)計劃,不僅是系統(tǒng)開發(fā)成功的保證,而且可以提高效率、節(jié)省時間、降低成本。由于在過去人們對信息管理的主要方式是基于文本、表格等紙質(zhì)的手工處理之上的,而用手工進(jìn)行圖書借閱管理存在多種弊端,其中包括圖書過于繁多,

2、包含很多的信息數(shù)據(jù)的管理對于圖書借閱情況如:借閱天數(shù)、超過限定借閱時間等等的統(tǒng)計和核實,往往采用對借閱卡的人工查詢進(jìn)行,對借閱天數(shù)等用人工計算、手抄進(jìn)行。信息處理工作量大,容易出錯;由于數(shù)據(jù)繁多,容易丟失,且不易查找??偟膩碚f缺乏系統(tǒng)、規(guī)范的管理手段人們操控起來是很困難的;因此,使用電子化的管理手段將是大勢所趨,建立一個圖書管理系統(tǒng)也是圖書管理部門提高工作效益的有效手段。系統(tǒng)能夠合理高效地利用圖書資源,使得圖書借閱更加的科學(xué)合理。2設(shè)計方案論證2.1需求分析對于一個圖書管理系統(tǒng)來說,圖書的查詢及數(shù)據(jù)的維護管理是其中的核心環(huán)節(jié)。在現(xiàn)現(xiàn)行的圖書管理中存在幾個共同的問題:(1)圖書種類過多,數(shù)據(jù)龐大

3、;這是幾乎所有圖書館都會遇到的共同問題,各種不同種類的圖書館為這些圖書入庫,進(jìn)行添加于維護增加了很多的難題,對這些數(shù)據(jù)的反復(fù)輸入,往往造成龐大的工作量和較低的效率。(2)查詢圖書困難,每天的借閱情況,讀者借閱的到期、還書情況,各項數(shù)據(jù)的匯總和統(tǒng)計情況必須由管理員統(tǒng)計上報,圖書庫總管理員才能考慮對圖書館的硬件如某類書的需求數(shù)量進(jìn)行改變已向上級申報。(3)圖書毀壞及圖書破損;在借閱過程中難免此類現(xiàn)象的發(fā)生,如何及時發(fā)現(xiàn)及事后對毀壞圖書進(jìn)行淘汰和更新也是個需要解決的問題。(4)不能及時歸還圖書;經(jīng)常有讀者超過借閱期的情況發(fā)生,對此類讀者的超期信息提示也是圖書借閱管理工作中必須解決的問題之一。本軟件主

4、要有以下幾方面的功能(1)系統(tǒng)部分:主要完成本系統(tǒng)工程的維護工作(包括:添加用戶、添加員工、修改密碼)(2)圖書管理部分:要完成圖書基本信息的管理(包括:添加、修改、查詢、刪除圖書基本信息)(3)借閱管理部分:主要完成圖書借閱的管理(包括:圖書借閱、歸還、查詢等)2.2系統(tǒng)包含的類及類之間的關(guān)系本系統(tǒng)共包括15個Java源文件和1個輔助文件。類之間的關(guān)系如圖1所示。圖1 類關(guān)系圖(1)AppBook.java該文件包含主函數(shù)入口,旨在創(chuàng)建登錄界面對象并在屏幕中居中顯示。(2)FrLogin.java該文件是登錄界面的封裝類,定義并設(shè)置了登錄界面相關(guān)組件及顯示效果,還定義了登錄、退出按鈕的事件監(jiān)

5、聽。功能:點擊登錄按鈕,對填寫的信息進(jìn)行驗證并與數(shù)據(jù)庫數(shù)據(jù)進(jìn)行比對,匹配就登錄成功進(jìn)入主界面;取消按鈕即可退出系統(tǒng)。(3)FrMain.java該文件是主界面的封裝類,定義并設(shè)置了主界面相關(guān)組件及顯示效果,還定義了菜單欄上面各菜單項的監(jiān)聽事件,有系統(tǒng)管理:修改管理員密碼、退出,基本操作:添加新讀者、新書入庫、借書、還書、續(xù)借、讀者管理、圖書管理,幫助:關(guān)于等10個事件的監(jiān)聽。功能:點擊對應(yīng)的菜單欄就會彈出對應(yīng)的對話框,并傳遞需要的參數(shù)。(4)FrChange.java該文件是修改用戶密碼界面的封裝類,定義并設(shè)置了更改密碼界面相關(guān)組件及顯示效果,還定義了確定、取消按鈕的事件監(jiān)聽。功能:點擊確定按

6、鈕,對輸入的信息進(jìn)行驗證并與數(shù)據(jù)庫數(shù)據(jù)進(jìn)行比對,匹配就更新數(shù)據(jù)庫,下次登錄使用新密碼;取消按鈕即關(guān)閉修改密碼界面。(5)FrAddreader.java該文件是添加新讀者界面的封裝類,定義并設(shè)置了添加新讀者界面相關(guān)組件及顯示效果,還定義了提交、返回按鈕的事件監(jiān)聽。功能:點擊提交按鈕,對輸入的信息進(jìn)行驗證,通過就寫入數(shù)據(jù)庫然后返回讀者的編號,不符合要求就提示重新輸入;返回按鈕即關(guān)閉添加新讀者界面。(6)FrAddBook.java該文件是新書入庫界面的封裝類,定義并設(shè)置了新書入庫界面相關(guān)組件及顯示效果,還定義了提交、退出按鈕的事件監(jiān)聽。功能:點擊提交按鈕,對輸入的信息進(jìn)行驗證,通過就寫入數(shù)據(jù)庫然

7、后返回圖書添加成功消息,不符合要求就提示重新輸入;退出按鈕即關(guān)閉新書入庫界面。(7)FrBorrow.java該文件是借書登記界面的封裝類,定義并設(shè)置了借書登記界面相關(guān)組件及顯示效果,還定義了確定、取消按鈕的事件監(jiān)聽。功能:點擊確定按鈕,對輸入的信息進(jìn)行驗證,若輸入的信息滿足要求且該讀者沒有借該圖書就提示借書成功并將數(shù)據(jù)寫入數(shù)據(jù)庫,否則提示對應(yīng)的不通過原因;取消按鈕及關(guān)閉借書登記界面。(8)FrReturn.java該文件是還書登記界面的封裝類,定義并設(shè)置了還書登記界面相關(guān)組件及顯示效果,還定義了提交、取消按鈕的事件監(jiān)聽。功能:點擊提交按鈕,對輸入的信息進(jìn)行驗證并與數(shù)據(jù)庫中數(shù)據(jù)比對,若輸入的信

8、息滿足要求且與數(shù)據(jù)庫中數(shù)據(jù)一致就提示還書成功并更新數(shù)據(jù)庫,否則提示對應(yīng)的不通過原因;取消按鈕及關(guān)閉還書登記界面。(9)FrKeep.java該文件是續(xù)借登記界面的封裝類,定義并設(shè)置了續(xù)借登記界面相關(guān)組件及顯示效果,還定義了提交、取消按鈕的事件監(jiān)聽。功能:點擊提交按鈕,對輸入的信息進(jìn)行驗證并與數(shù)據(jù)庫中數(shù)據(jù)比對,若輸入的信息滿足要求且與數(shù)據(jù)庫中數(shù)據(jù)一致就提示續(xù)借成功并更新數(shù)據(jù)庫,否則提示對應(yīng)的不通過原因;取消按鈕即關(guān)閉續(xù)借登記界面。(10)FrAbout.java該文件是關(guān)于界面的封裝類,定義并設(shè)置了續(xù)借登記界面相關(guān)組件及顯示效果,還定義了確定按鈕的事件監(jiān)聽。功能:顯示系統(tǒng)的版權(quán)及開發(fā)工具等信息,

9、點擊確定按鈕就關(guān)閉關(guān)于界面。(11)FrReadermanage.java該文件是讀者管理界面的封裝類,定義并設(shè)置了讀者管理界面相關(guān)組件及顯示效果,還定義了查找、修改、刪除、刷新、關(guān)閉按鈕的事件監(jiān)聽。功能:對讀者的信息進(jìn)行統(tǒng)一的管理,包括刪、改、查等功能,其中選中列表中的一列然后點擊修改按鈕就會打開讀者信息修改界面。(12)FrRedit.java該文件是讀者信息修改界面的封裝類,定義并設(shè)置了讀者信息修改界面相關(guān)組件及顯示效果,還定義了確定、取消按鈕的事件監(jiān)聽。功能:對可以修改的信息修改后,點擊確定按鈕就更新對應(yīng)數(shù)據(jù)庫中的讀者數(shù)據(jù),取消按鈕即關(guān)閉讀者信息修改界面。(13)FrBookmanag

10、e.java該文件是圖書管理界面的封裝類,定義并設(shè)置了圖書管理界面相關(guān)組件及顯示效果,還定義了查找、修改、刪除、刷新、關(guān)閉按鈕的事件監(jiān)聽。功能:對圖書的信息進(jìn)行統(tǒng)一的管理,包括刪、改、查等功能,其中選中列表中的一列然后點擊修改按鈕就會打開圖書信息修改界面。(14)FrBedit.java該文件是圖書信息修改界面的封裝類,定義并設(shè)置了圖書信息修改界面相關(guān)組件及顯示效果,還定義了確定、取消按鈕的事件監(jiān)聽。功能:對可以修改的信息修改后,點擊確定按鈕就更新對應(yīng)數(shù)據(jù)庫中的讀者數(shù)據(jù),取消按鈕即關(guān)閉圖書信息修改界面。(15)DBC.java該文件是數(shù)據(jù)庫接口的類,定義了數(shù)據(jù)庫的創(chuàng)建、連接、查找、更新等操作。

11、功能:對數(shù)據(jù)庫總的數(shù)據(jù)進(jìn)行增、刪、改、查等基本操作。2.3系統(tǒng)設(shè)計成員變量表1成員變量成員變量描述成員變量描述名稱主菜單條JMenuBarbarjMenuBar1系統(tǒng)管理菜單JMenumenuSysManage基本操作菜單JMenumenuBasic幫助菜單JMenumenuHelp修改密碼菜單項JMenuItemmiChangePwd退出菜單項JMenuItemmiExit添加新讀者菜單項JMenuItemmiAddReader新書入庫菜單項JMenuItemmiAddBook借書菜單項JMenuItemmiBorrowBook還書菜單項JMenuItemmiReturnBook續(xù)借菜單項J

12、MenuItemmiGoon讀者管理菜單項JMenuItemmiReaderManage圖書管理菜單項JMenuItemmiBookManage關(guān)于菜單項JMenuItemmiAbout主界面背景JLabellblMainbg主界面圖片ImageIconback3 設(shè)計結(jié)果運行AppBook.java文件,就會創(chuàng)建并顯示登陸界面,具體界面如下:圖2 系統(tǒng)登錄輸入正確的用戶名和密碼就會進(jìn)入主窗口,否則會彈出相關(guān)提示,如圖3。圖3 系統(tǒng)登錄進(jìn)入系統(tǒng)主頁面包含系統(tǒng)管理、基本操作、幫助三個選項及其對應(yīng)下拉列表圖4 圖書館管理系統(tǒng)主界面選中讀者管理界面的列表中的一項,點擊修改按鈕,就會打開讀者信息修改界

13、面,具體圖示如下圖5所示:圖5 讀者信息修改窗口選中圖書管理界面的列表中的一項,點擊修改按鈕,就會打開圖書信息修改界面,具體圖示如下所示。圖6 圖書信息修改窗口4設(shè)計體會通過為期一個星期的課程設(shè)計,將我們這學(xué)期所學(xué)的JAVA知識得到了鞏固和應(yīng)用,在設(shè)計的過程中我們也遇到了很多的問題,不過通過查閱資料及詢問老師,問題都得到了解決,這次課程設(shè)計還讓我們明白了寫程序不能閉門造車,要努力擴展知識面,開闊視野,開闊思維,也學(xué)會了更加快速的查閱到自己所需要的資料。短短的一個星期的課程設(shè)計過程使我們受益匪淺,不僅是在專業(yè)知識方面,最主要是在怎樣去解決編程中出現(xiàn)的問題。遇到問題不能亂,要有條理的設(shè)計,找到不熟

14、的方面,再細(xì)心的收集資料,比如做這個課程設(shè)計的過程中,我們就不是很熟悉菜單欄(JMenuBarbar)、菜單(JMenu)以及菜單項(JMenuItem)之間的關(guān)系以及事件的響應(yīng),最后通過查閱資料都得到了解決,還有很多很多的問題,這里就不一一列出了。通過這次的課程設(shè)計,我們加深了對面向?qū)ο缶幊痰睦斫?,學(xué)會了JAVA中一些技術(shù)的使用,加深了對JAVA的理解。另外,本系統(tǒng)還有一些不足之處,整個系統(tǒng)的可靠性、健壯性還有待進(jìn)一步進(jìn)行測試,系統(tǒng)安全性設(shè)計還不夠完善。5參考文獻(xiàn)1仇賓.Java版井字棋的設(shè)計與實現(xiàn)J.電腦編程技巧與維護,2013,09:75-80.2明日科技.Java從入門到精通(第2版)

15、M.北京:清華大學(xué)出版社,2012.9:20-253梁勇.Java語言程序設(shè)計:基礎(chǔ)篇M,第2版.北京:機械工業(yè)出版社,2011:305-3504李興華.Java web開發(fā)實戰(zhàn)經(jīng)典基礎(chǔ)篇M.北京:清華大學(xué)出版社,2011.8:123-1305魔樂科技軟件實訓(xùn)中心.Java從入門到精通M.北京:人民郵電出版社,2012.4:10-256布洛克.Effective Java中文版(第2版)M.北京:機械工業(yè)出版社,2012,1:53-607誘明.Java技術(shù)J.程序員,2005,06:118劉瀟.基于JAVA的五子棋游戲設(shè)計與實現(xiàn)J.電腦知識與技術(shù),2011,06:1353-13549姜景根,李

16、祥.基于Java的多線程并發(fā)服務(wù)器的設(shè)計與應(yīng)用J.電腦與信息技術(shù),2012,01:15-17+4210阮彤,李京,馮東雷.基于Java的應(yīng)用服務(wù)器的設(shè)計與實現(xiàn)J.計算機研究與發(fā)展,2011,08:939-946.附錄FrMain.javapackage mybook.book;import java.awt.*;import javax.swing.*;import java.awt.Rectangle;import javax.swing.BorderFactory;import java.awt.Color;import java.awt.event.ActionEvent;import

17、java.awt.event.ActionListener;import java.awt.event.MouseEvent;import java.awt.event.MouseAdapter;import java.awt.BorderLayout;import java.util.Calendar;import java.io.IOException;import mydbc.dbc.DBC;import java.sql.ResultSet;import java.sql.SQLException;/該類為本程序主界面public class FrMain extends JFrame

18、/私有成員JMenuBar jMenuBar1=new JMenuBar();JMenu menuSysManage=new JMenu();JMenuItem miChangePwd=new JMenuItem();JMenuItem miExit=new JMenuItem();JMenu menuBasic=new JMenu();JMenuItem miAddReader=new JMenuItem();JMenuItem miAddBook=new JMenuItem();JMenuItem miBorrowBook=new JMenuItem();JMenuItem miRetur

19、nBook=new JMenuItem();JMenuItem miGoon=new JMenuItem();JMenuItem miReaderManage=new JMenuItem();JMenuItem miBookManage=new JMenuItem();JMenu menuHelp=new JMenu();JMenuItem miAbout=new JMenuItem();JPanel palState=new JPanel();JLabel lblSysName=new JLabel();JLabel lblShow=new JLabel();JLabel lblMainbg

20、=new JLabel();JLabel lblNowtime=new JLabel();JLabel lblTime=new JLabel();ImageIcon back=new ImageIcon("img/bookbg.jpg");public FrMain()tryjbInit();catch(Exception exception)exception.printStackTrace();private void jbInit()throws ExceptiongetContentPane().setLayout(null);this.setJMenuBar(jM

21、enuBar1);setSize(new Dimension(600,490);this.setTitle("圖書管理系統(tǒng)");menuSysManage.setText("【系統(tǒng)管理】");miChangePwd.setText("修改密碼");miChangePwd.addActionListener(new FrMain_miChangePwd_actionAdapter(this);miExit.setText("退出");miExit.addActionListener(new FrMain_miExit

22、_actionAdapter(this);menuBasic.setText("【基本操作】");miAddReader.setText("添加新讀者");miAddReader.addActionListener(new FrMain_miAddReader_actionAdapter(this);miAddBook.setText("新書入庫");miAddBook.addActionListener(new FrMain_miAddBook_actionAdapter(this);miBorrowBook.setText(&qu

23、ot;借書");miBorrowBook.addActionListener(new FrMain_miBorrowBook_actionAdapter(this);miReturnBook.setActionCommand("還書");miReturnBook.setText("還書");miReturnBook.addActionListener(new FrMain_miReturnBook_actionAdapter(this);miGoon.setText("續(xù)借");miGoon.addActionListene

24、r(new FrMain_miGoon_actionAdapter(this);miReaderManage.setText("讀者管理");miReaderManage.addActionListener(new FrMain_miReaderManage_actionAdapter(this);miBookManage.setText("圖書管理");miBookManage.addActionListener(new FrMain_miBookManage_actionAdapter(this);menuHelp.setText("【幫助

25、】");miAbout.setText("關(guān)于");miAbout.addActionListener(new FrMain_miAbout_actionAdapter(this);palState.setBounds(new Rectangle(0,400,700,38);palState.setLayout(null);lblSysName.setText("圖書管理系統(tǒng)");lblSysName.setBounds(new Rectangle(3,3,85,31);lblShow.setText("技術(shù)支持JAVA ECLIPS

26、E");lblShow.setBounds(new Rectangle(86,3,150,31);lblMainbg.setIcon(back);lblMainbg.setBounds(new Rectangle(0,0,699,431);lblTime.setText("當(dāng)前時間:");lblTime.setBounds(new Rectangle(350,3,63,31);lblNowtime.setBounds(new Rectangle(420,3,179,31);jMenuBar1.add(menuSysManage);jMenuBar1.add(men

27、uBasic);jMenuBar1.add(menuHelp);menuSysManage.add(miChangePwd);menuSysManage.addSeparator();menuSysManage.add(miExit);menuBasic.add(miAddReader);menuBasic.add(miAddBook);menuBasic.addSeparator();menuBasic.add(miBorrowBook);menuBasic.add(miReturnBook);menuBasic.add(miGoon);menuBasic.addSeparator();me

28、nuBasic.add(miReaderManage);menuBasic.add(miBookManage);menuHelp.add(miAbout);this.getContentPane().add(palState);this.getContentPane().add(lblMainbg);palState.add(lblSysName);palState.add(lblShow);palState.add(lblNowtime);palState.add(lblTime);Time time=new Time();time.start();/該方法用于被調(diào)用并初始化一個新Frame

29、public void NewFram(Frame x)Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize();Dimension frameSize=x.getSize();if(frameSize.height>screenSize.height)frameSize.height=screenSize.height;if(frameSize.width>screenSize.width)frameSize.width=screenSize.width;x.setLocation(screenSize.wi

30、dth-frameSize.width)/2,(screenSize.height-frameSize.height)/2);x.setVisible(true);class Time extends Threadpublic void run()/以下用于同步顯示時間Calendar cal;while(true)trycal=Calendar.getInstance();String now=cal.get(Calendar.YEAR)+"年"+(cal.get(Calendar.MONTH)+1)+"月"+cal.get(Calendar.DATE

31、)+"日"+cal.get(Calendar.HOUR)+"時"+cal.get(Calendar.MINUTE)+"分"+cal.get(Calendar.SECOND)+"秒"lblNowtime.setText(now);/每一秒鐘循環(huán)一次Thread.sleep(1000);catch(InterruptedException ex)System.out.println(ex.getMessage();/系統(tǒng)管理-修改密碼菜單下拉列表事件public void miChangePwd_actionPerfo

32、rmed(ActionEvent e)FrChange change=new FrChange();NewFram(change);/系統(tǒng)管理-退出菜單下拉列表事件public void miExit_actionPerformed(ActionEvent e)System.exit(0);/基本操作-增加新讀者菜單下拉列表事件public void miAddReader_actionPerformed(ActionEvent e)FrAddreader addreader=new FrAddreader();NewFram(addreader);/基本操作-新書入庫菜單下拉列表事件public v

溫馨提示

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

評論

0/150

提交評論