
圖書管理系統具有圖書信息管理、讀者信息管理和借閱信息管理三大功能模塊,本小節將從軟件功能、數據庫系統設計和項目結構幾個方面介紹該軟件系統的設計方案。
(相關資料圖)
圖書管理系統第一大功能模塊是圖書信息管理,這個模塊的軟件界面如圖25-1所示。
圖25-1圖書信息管理界面
從圖25-1可以看出:圖書信息管理模塊能夠完成圖書的新增、修改、刪除、借閱登記等常規的信息管理工作,并且還能以多種方式對圖書進行檢索。
新增圖書信息對話框如圖25-2所示。
圖25-2新增圖書信息對話框
在這個對話框中,用戶正確填寫關于圖書的各項信息,之后單擊“確定”按鈕就可以完成新增圖書的操作。從圖25-2可以看出:圖書類型和出版社這兩項信息并不是由用戶手動填寫的,而是從下拉框中選擇的。這兩個下拉框中的選項也是可以編輯和維護的,在圖25-1所示的界面中單擊“圖書類型設置”和“出版社管理”按鈕即可打開維護這兩個下拉框選項的對話框,圖書類型設置對話框如圖25-3所示。
圖25-3圖書類型設置對話框
在這個對話框中可以對圖書類型進行新增、修改、刪除的操作。用戶所設置的圖書類型都會出現在圖24-2所示窗體的圖書類型下拉框中。同樣,用戶所設置的出版社信息,這些出版社信息也都會出現在圖24-2所示窗體的出版社下拉框中。
當用戶在圖書列表中選中一條圖書信息后單擊“借閱”按鈕,即可打開借閱登記對話框,這個對話框如圖24-4所示。
圖24-4借閱登記對話框
在圖24-4所示的借閱登記對話框中會自動顯示出讀者所選定圖書的編號和書名,并且還會顯示出借書日期和最晚歸還日期。借書日期就是當前日期,而最晚歸還日期是當前日期后的第60天。操作人員只需要在這個對話框中填寫讀者編號,并單擊“確定”按鈕即可完成圖書借閱操作。當完成圖書借閱操作后,在借閱信息管理界面中就會出現一條借閱信息。
圖書管理系統的第二個模塊是讀者信息管理,該模塊的界面如圖24-5所示。
圖25-5讀者信息管理界面
在讀者信息管理界面中顯示了讀者的各項信息,其中讀者編號與他的圖書證編號是一致的,因此每條讀者信息與其圖書證上的信息也是一致的。在這個界面中可以完成讀者信息的查詢、新增、修改等操作,此外,如果有讀者出現多次逾期未還圖書、丟失圖書等情況,還可以對其進行停用操作,只需要在列表中選中一個讀者,然后單擊“停用”按鈕即可,處于停用狀態的讀者不能再次借閱本系統中的圖書,但可以進行歸還圖書的操作。被停用的讀者還可以被恢復正常狀態,只需要從列表中選定被停用的讀者后單擊“恢復”按鈕即可。讀者信息不能被刪除,這是為了在系統中保留所有注冊過的讀者信息。
圖書管理系統的第三個模塊是借閱信息管理,這個模塊的界面如圖25-6所示。
圖25-6借閱信息管理界面
在借閱信息管理模塊中顯示出了圖書的借閱信息,這些信息的最后一列顯示出了圖書的歸還狀態,每條借閱信息根據圖書是否歸還以及是否超過歸還日期分為未還、逾期未還、按時歸還和逾期歸還4種狀態。每次打開該模塊時,系統都會自動更新狀態,并且界面左下角還設置了“刷新”按鈕用來手動更新狀態,例如登錄圖書管理系統時是2022年10月5日,但一直到10月6日還沒有退出系統,在這種情況下可能某些圖書在10月5日還屬于“未還”狀態,但到了10月6日就變成了“逾期未還”狀態,而單擊“刷新”按鈕就能夠即時更新狀態。
當操作人員選定一條借閱信息并單擊“還書”按鈕后,能夠完成還書操作,但在真正還書之前系統會彈出確認對話框讓操作人員確認圖書信息和讀者信息以避免出現操作錯誤的情況,還書確認對話框如圖25-7所示。
圖25-7還書確認對話框
圖書管理系統包含多種信息,它們分別是:圖書類型、出版社、圖書、讀者、借閱記錄,因此本系統總共有5張數據表,它們分別是:
book_type:存儲圖書類型信息。publisher:存儲出版社信息。book:存儲圖書信息。reader:存儲讀者信息。record:存儲借閱信息。在以上5張表中,book_type表和publisher表的結構完全相同,它們如表25-1所示。
表25-1 book_type表和publisher表結構
字段 | 類型 | 長度 | 意義 |
id | varchar | 20 | 編號 |
name | varchar | 20 | 名稱 |
book表的結構如表25-2所示。
表25-2 book表結構
字段 | 類型 | 長度 | 意義 |
id | varchar | 20 | 圖書編號 |
book_type_id | varchar | 20 | 圖書類型編號 |
name | varchar | 60 | 書名 |
author | varchar | 20 | 作者 |
price | varchar | 20 | 價格 |
publisher_id | varchar | 20 | 出版社編號 |
position | varchar | 20 | 所在位置(書架) |
total_num | int | 圖書總數 | |
lend_num | int | 外借數量 | |
info | varchar | 100 | 圖書簡介 |
在表25-2中,表示價格的price字段被定義為varchar類型而不是decimal類型,這是因為在本系統中價格只需要記錄而不需要計算,所以使用varchar類型更加方便操作。
reader表的結構如表25-3所示。
表25-3 reader表結構
字段 | 類型 | 長度 | 意義 |
id | varchar | 20 | 讀者編號 |
name | varchar | 20 | 讀者姓名 |
sex | char | 2 | 讀者性別 |
phone | char | 11 | 讀者手機號 |
card_date | varchar | 10 | 辦卡日期 |
state | varchar | 10 | 狀態 |
record表的結構如表25-4所示。
表25-4record表結構
字段 | 類型 | 長度 | 意義 |
id | varchar | 20 | 借閱信息流水號 |
reader_id | varchar | 20 | 讀者編號 |
book_id | varchar | 20 | 所借圖書編號 |
lend_date | char | 10 | 借書日期 |
reg_return_date | char | 10 | 系統規定的最后歸還日期 |
act_return_date | char | 10 | 讀者實際歸還圖書的日期 |
state | varchar | 10 | 狀態 |
圖書管理系統的源代碼所涉及的類更多,為了代碼結構能更加清晰,本項目把類分成了多個包,這些包有以下幾個:
model:模型包,表示圖書、讀者等實體的類都在這個包下。dao:數據訪問對象包,用以訪問數據庫的類都在這個包下。view:界面包,所有窗體類和自定義對話框都在這個包下。util:工具類包,訪問數據庫的工具類、處理日期時間的工具類都放在這個包下下面的表25-5展示了各個包下類的意義和作用。
表25-5 圖書管理系統所有類
所在包 | 類名稱 | 意義 |
model | BookType | 圖書類型 |
model | Publisher | 出版社 |
model | Book | 圖書 |
model | Reader | 讀者 |
model | Record | 借閱記錄 |
dao | BookTypeDao | 操作book_type表的類 |
dao | PublisherDao | 操作publisher表的類 |
dao | BookDao | 操作book表的類 |
dao | ReaderDao | 操作reader表的類 |
dao | RecordDao | 操作record表的類 |
view | LoginFrame | 登錄窗體類 |
view | MainFrame | 主窗體類 |
view | BookPanel | 圖書信息面板 |
view | BookTypeDailog | 圖書詳情對話框 |
view | BookTypeDailog | 圖書類型管理對話框 |
view | PublisherDailog | 出版社管理對話框 |
view | ReaderPanel | 讀者信息面板 |
view | ReaderDialog | 讀者詳情對話框 |
view | RecordPanel | 借閱信息面板 |
view | LendDialog | 登記借閱對話框 |
util | DBUtil | 數據庫工具類 |
util | DateUtil | 日期處理工具類 |
util | IDGenerator | 借閱流水號生成類 |
Main | 系統啟動類,包含main()方法 |
本文字版教程還配有更詳細的視頻講解,小伙伴們可以??點擊這里??觀看。