Java圖書管理系統
設計人:wangyunpeng_bio
項目需求
隨着計算機的普及和應用水平的提高,經過考察比較,決定利用自己的Java知識開發小型的圖書管理系統,方便圖書的管理。
圖書管理系統是典型的信息管理系統。本次作業利用JAVA開發工具Eclipse和MySQL數據庫來開發這個圖書管理系統。該系統要解決的圖書管理所要解決的問題,可以滿足圖書管理基本要求,包括添加、管理等功能。該系統能根據用戶的需求,快捷方便的爲讀者提供借閱服務
圖書管理系統應有以下功能:
- 讀者庫管理
- 書庫管理
- 借閱管理
- 讀者信息查詢
圖書管理系統主要針對書庫的操作功能、所以系統應儘量滿足需求、同時亦不可有多餘或繁複的功能、令系統的操作和功能混亂。
項目地址
本項目地址:https://github.com/wangyunpengbio/Library/
免費下載方法:點那個“Clone or download”,再點“Download ZIP”就行了,感興趣的話,大家可以點個Star
如果實在太初學者,不會下載的話,就在csdn上下載吧https://download.csdn.net/download/qq_29300341/9667678
需求分析
A.業務流程:
No. | 業務流程 | 需求 |
---|---|---|
1. | 圖書管理員登入系統 | 圖書管理員需使用賬號和密碼登入。 |
2. | 新增讀者資料 | 新增讀者資料,如姓名、性別、職位等。 |
3. | 新增書籍資料 | 新增書籍資料,如書名、價格、種類等。 |
4. | 讀者庫管理 | 選中讀者庫裏的讀者信息,即可更新和刪除。 |
5. | 書庫管理 | 可以按“書編號查詢”和“書名模糊查詢”,繼而選中書籍信息,即可更新和刪除書籍分爲在庫和借出 |
6 | 借閱管理 | 輸入讀者編號,即可檢閱讀者的數據和借閱的圖書,檢閱顧客的數據和購買紀錄。 |
7. | 讀者登入系統 | 讀者需使用賬號和密碼登入。 |
8 | 借書 | 按書名模糊搜索,選中即可借閱圖書 |
9 | 還書 | 檢閱自己的讀者信息以及已經借閱的圖書,點擊歸還即可,不允許更改或刪除讀者數據,只允許查詢,更改和刪除功能由管理員負責。 |
以下是使用 實體聯繫模型-Entity Relationship來分析。
B.歸納實體和屬性
No. | 業務流程 | 對應的實體 | 實體的屬性值 |
---|---|---|---|
1. | 圖書管理員登入系統 | Librarian | nameUser password |
2. | 新增讀者資料 | Reader | idReader nameReader kind sex password |
3. | 新增書籍資料 | Book Author Publisher | idBook,nameBook,price,kind,author,publisher Author.name, Author.workplace Publisher.name, Publisher.address |
4. | 讀者庫管理 | Reader | idReader nameReader kind sex password |
5. | 書庫管理 | Book | idBook nameBook price kind autor publisher |
6. | 借閱管理 | Borrow | idReader idBook lendDate dueDate overtime |
7. | 讀者登入系統 | Reader | idReader password |
8 | 借書 | Borrow | idReader idBook lendDate dueDate overtime |
9 | 還書 | Borrow | idReader idBook lendDate dueDate overtime |
C.實體的模型
D.ER-實體關係
Author,Publisher To Book&Borrow&Reader To Librarian
設計
項目文件夾中,(代碼總計:4800+行)
doc文件夾存放着生成的文檔註釋,可點擊其中的index文件查看整個項目的註釋
Src包下面含有五個包
- Database用於存儲數據庫連接操作
- Frame用於存儲各個窗體界面
- Model用於存儲各個實體(表)對應的數據模型
- Out_of_date用於存儲初始時候寫的界面,後來捨棄,不再調用。
- SqlTools用於存儲操作數據庫的增刪改查方法
image文件夾用於存放相關的界面圖片,按鈕圖片
備註:程序不同界面的入口已經全部註釋掉了,MainFrame是程序的唯一入口
程序細節設計:
- 登陸界面的密碼回顯,伴有跳轉動畫(此處利用了多線程,控制線程存活時間)
- 表格直接選中即可修改數據,更新數據時候默認有原始數據,可按不同方式搜索圖書;
- 新增借閱信息時候,自動加入當前時間,並計算歸還時間。(SQL函數NOW())
- 界面按鈕,背景用Photoshop的重新設計,圖形用戶界面友好;
- 數據庫設計達到第三範式,去除了所有非主屬性對任何候選關鍵字的傳遞信依賴,冗餘度低。
- 變量和方法命名符合規範,可讀性強
- 不同的Model實體(表)對應不同的SqlTools操作,分開存放,程序複用性好,易擴展。
使用 - 將SQL語句導入,字符集選utf8,不然有可能顯示不了中文,數據庫名稱爲library
create database library;
- 推薦使用Mysql Front這個MySQL的前臺,支持多句sql語句一起執行,百度第一個鏈接即可下載。
http://dlsw.baidu.com/sw-search-sp/soft/6c/17997/MySQL-Front_V5.3.4.214_Setup.1435658094.exe - Java環境中加入數據庫的驅動,源程序裏
database
包裏DatabaseTools.java
文件是有關數據庫連接的操作,源程序的用戶名和密碼皆爲root,數據庫名爲:library不同電腦上運行需要稍微改一下這個代碼。 - 登陸:
圖書管理員:用戶名root密碼 root或者wangyp密碼123456
**讀者:用戶名001密碼 root **(注:數據庫內讀者的密碼初始值皆爲root) - 在不同計算機上Eclipse使用,可能需要重新建立Java類庫的路徑
本程序用1.8的jdk寫的,所以最好用1.8的jre。
代碼放在1.8下面運行,連警告都不會出現,1.7和1.6顯示效果不好。
awt 和 swing 都依賴虛擬機的具體實現。所以不同平臺表現不大一樣。如果用javafx,界面纔可以移植。
而且編寫用的筆記本電腦是高分屏,在本機上顯示大小是正好的,到別的電腦上面有可能會出現界面過大的情況。 - 具體的文檔註釋已經生成,打開doc文件夾其中的index文件查看整個項目的註釋