實(shí)驗題目:
圖書(shū)館管理系統
實(shí)驗目的:
1、掌握面向對象分析與設計的思想與方法。
2、使用UML進(jìn)行系統的面向對象分析與設計:用例圖,類(lèi)圖,順序圖,狀態(tài)圖,活動(dòng)圖,組件圖等。
3.系統功能用Java或C++語(yǔ)言實(shí)現,并與后臺數據庫連接,實(shí)現系統的基本功能。
實(shí)驗設備及環(huán)境:
硬件:多媒體計算機
軟件:Windows7操作系統、Rational Rose建模工具
實(shí)驗內容及要求:
工資管理:在取得授權的情況下,有關(guān)人員要進(jìn)行如下工作。
(1)書(shū)籍信息錄入
圖書(shū)管理員錄入書(shū)籍的書(shū)號、名稱(chēng),修改錄入的出錯(維護),形成圖書(shū)表。
(2)讀者信息錄入
系統管理員錄入讀者的個(gè)人信息,修改錄入的出錯(維護),形成讀者表。
(3)借閱情況的錄入
圖書(shū)管理員在讀者借閱圖書(shū)時(shí)錄入信息,修改錄入的出錯(維護),形成借閱表和歷史借閱表。
(4)計算扣款金額
圖書(shū)管理員按讀者借書(shū)時(shí)間、還書(shū)時(shí)間和借閱時(shí)長(cháng)判斷讀者是否需要扣費,然后生成信息到歷史借閱表中。
(5)讀者、圖書(shū)管理員及圖書(shū)信息的查詢(xún)
讀者可以根據自己的讀者號查詢(xún)自己的個(gè)人信息;圖書(shū)管理員可以根據自己的管理員號查詢(xún)自己的個(gè)人信息(包括工資);所有人都可以登錄之后無(wú)條件查詢(xún)圖書(shū)的信息包括館藏冊數。
完成步驟和要求:
完成用戶(hù)需求的分析,找出系統的執行者、用況,畫(huà)出用況模型圖(包括用例描述)。
找出系統的概念類(lèi),建立基本模型。
建立系統順序/通信圖,找出系統與外界交互的消息。
建立系統活動(dòng)圖,找出系統的主要業(yè)務(wù)流程與關(guān)鍵操作流程。
建立系統中主要對象的狀態(tài)機圖,找出對象在其生存期內因響應事件所經(jīng)歷的狀態(tài)序列。
給出系統的問(wèn)題域部分設計的思路,結合2建立類(lèi)設計模型圖。
給出系統的關(guān)鍵界面設計圖,并予以說(shuō)明。
給出數據管理部分的設計結果。
給出控制驅動(dòng)部分的設計思路。(可選)
設計系統的構件圖和部署圖。(可選)
四、實(shí)驗結果及分析
1. 根據用戶(hù)的需求畫(huà)出用況圖:
在本系統中一共包含了三個(gè)參與者:
其中讀者的主要用例包括查詢(xún)讀者賬戶(hù)(即查詢(xún)自己的個(gè)人信息以及查詢(xún)自己的賬戶(hù)和借閱情況)、借書(shū)、還書(shū)和查詢(xún)圖書(shū)信息。
圖書(shū)管理員的主要用例是查看讀者的賬戶(hù),包括讀者的個(gè)人信息以及讀者的賬戶(hù)和借閱情況。在對書(shū)籍的信息進(jìn)行管理的時(shí)候能夠查看并添加添加圖書(shū)的各種信息,修改圖書(shū)的信息,以及刪除圖書(shū)的信息。在對借書(shū)記錄和還書(shū)記錄進(jìn)行管理時(shí)圖書(shū)管理員可以判斷讀者的借書(shū)情況是否超期,根據超期的情況決定是否需要罰款。
系統管理員有五個(gè)用例,管理借閱者信息,包括添加新生信息和刪除畢業(yè)生信息。在對圖書(shū)的信息進(jìn)行管理的時(shí)候,也能夠添加新書(shū)的信息和刪除已損壞圖書(shū)的信息。同時(shí),系統管理員也可以查詢(xún)現有所有圖書(shū)的信息,來(lái)決定是否需要引進(jìn)新書(shū)。系統管理員也可以管理借書(shū)記錄和還書(shū)記錄,主要是當圖書(shū)管理員遇到問(wèn)題時(shí),系統管理員也可以實(shí)現借還書(shū)的功能。
另外,圖書(shū)管理員和系統管理員都繼承于圖書(shū)館內部人員這個(gè)父類(lèi)。
2.根據用況圖建立本系統的類(lèi)圖:
本系統一共設計了七個(gè)類(lèi): 。
讀者類(lèi):屬性包含(1)讀者證號 (2)密碼 (3)最大借書(shū)數量
方法包括(1)借書(shū) (2)還書(shū) (3)查看用戶(hù)賬戶(hù) (4)查看借書(shū)數量 (5)登錄系統
(5)查詢(xún)圖書(shū)信息 (6)交罰款
圖書(shū)管理員類(lèi):屬性包含(1)管理員賬號 (2)密碼
方法包括(1)查詢(xún)圖書(shū)信息(2)修改圖書(shū)信息
書(shū)架類(lèi):屬性包含(1)書(shū)架號 (2)類(lèi)型(3)位置(4)存放數量
方法只有 存放圖書(shū)
圖書(shū)類(lèi):屬性包含(1)書(shū)號(2)書(shū)名(3)數量(4)價(jià)格(5)出版社
(6)館藏冊數(7)在館冊數
系統管理員類(lèi):屬性包含 值班時(shí)間
方法包括(1)查看用戶(hù)個(gè)人信息(2)修改用戶(hù)個(gè)人信息
后臺系統類(lèi):屬性包含(1)級別(2)配置
方法包括(1)存儲用戶(hù)個(gè)人信息(2)存儲圖書(shū)信息(3)存儲借閱信息
Item類(lèi):屬性包含 id
方法包括(1)創(chuàng )建(2)銷(xiāo)毀(3)更新(4)顯示圖書(shū)信息(5)顯示借閱次數
其中,圖書(shū)管理員類(lèi)和系統管理員類(lèi)是工作人員類(lèi)的子類(lèi),圖書(shū)管理員在繼承了其父類(lèi)的屬性和操作以外還自己添加了管理員賬號和密碼這兩個(gè)屬性,添加了查詢(xún)圖書(shū)信息和修改圖書(shū)信息這兩個(gè)操作。系統管理員在繼承了父類(lèi)的基礎以外還添加了值班時(shí)間這個(gè)屬性,以及查看用戶(hù)個(gè)人信息和修改用戶(hù)個(gè)人信息這兩個(gè)操作。
另外,讀者類(lèi)和工作人員類(lèi)是Person類(lèi)的子類(lèi),讀者在繼承了其父類(lèi)的屬性和操作以外還自己添加了讀者證號、密碼和最大借書(shū)數量這幾個(gè)屬性,添加了借書(shū)、還書(shū)、查看用戶(hù)賬戶(hù)、查看借書(shū)數量、登錄系統、查詢(xún)圖書(shū)信息和交罰款這些操作。工作人員在繼承了其父類(lèi)的屬性和操作以外還自己添加了工資和管理范圍這兩個(gè)屬性,添加了登錄賬戶(hù)、查詢(xún)用戶(hù)借閱信息、管理借書(shū)記錄、管理還書(shū)記錄、查看用戶(hù)賬戶(hù)這些操作。
Person類(lèi)是讀者類(lèi)和工作人員類(lèi)的父類(lèi),它包含了所有人都有的三個(gè)屬性:姓名、性別和年齡。讀者類(lèi)和工作人員類(lèi)繼承于Person類(lèi),這就簡(jiǎn)化了這兩個(gè)子類(lèi)的屬性。
類(lèi)之間的關(guān)系先從圖書(shū)管理員講起,圖書(shū)管理員能夠為讀者提供服務(wù),因此,二者之間應該是服務(wù)與被服務(wù)的關(guān)系。另外,圖書(shū)管理員能夠管理書(shū)架和圖書(shū),而且書(shū)架與圖書(shū)之間是存放與被存放的關(guān)系,所有的圖書(shū)都被存放于圖書(shū)館的書(shū)架中。最后,圖書(shū)管理員還能夠查看Item,Item類(lèi)有點(diǎn)類(lèi)似于超市中在購物后產(chǎn)生的小票,當讀者在完成整個(gè)借閱的操作之后,后臺系統會(huì )自動(dòng)生成一個(gè)Item,因此,在類(lèi)圖中Item與后臺系統之間是一種聚合的關(guān)系,而讀者也可以查看Item,因為當讀者在完成借閱之后,Item便可以證明借書(shū)是否成功以及后臺系統是否發(fā)生故障。
除了圖書(shū)管理員之外,同樣繼承于工作人員的系統管理員類(lèi)也與其他類(lèi)有著(zhù)很多聯(lián)系,比如說(shuō)系統管理員同樣與圖書(shū)類(lèi)有著(zhù)維護與被維護這樣的關(guān)系,但與圖書(shū)管理員不同的是,系統管理員只負責通過(guò)從后臺系統中的添加、修改或者刪除來(lái)管理圖書(shū),而不是像圖書(shū)管理員一樣去管理實(shí)體的圖書(shū)。另外,系統管理員可以管理后臺系統,控制后臺系統中所存儲的信息以及當后臺系統在發(fā)生一些故障時(shí),系統管理員能夠提供及時(shí)的維修。
3.用戶(hù)登錄的時(shí)候的時(shí)序圖:
借書(shū)過(guò)程的時(shí)序圖:
上圖表示了讀者在進(jìn)行借閱操作時(shí)的一系列變化,讀者在進(jìn)行借書(shū)操作之前,首先需要輸入自己的信息包括賬號和密碼,顯示器將這些信息發(fā)送給數據庫,在數據庫中將讀者的賬號和密碼進(jìn)行比對,進(jìn)行身份驗證,并將驗證的結果返回給讀者。如果身份驗證成功則用戶(hù)登錄成功,反之讀者登錄失敗。
然后,讀者可以向圖書(shū)管理員發(fā)送借閱請求,圖書(shū)管理員在收到消息后可以向后臺系統輸入借閱信息,后臺系統查看對應圖書(shū)的館藏冊數,并根據館藏信息,返回該圖書(shū)是否可借閱。若可借閱,則圖書(shū)管理員可在此時(shí)修改后臺系統的借閱信息,將需要借閱圖書(shū)的讀者信息添加到后臺數據庫的借閱表中,并且后臺系統自動(dòng)計算當前對應的借閱時(shí)間。
此時(shí),后臺系統調用其Item功能,當圖書(shū)管理員修改完借閱表之后,后臺系統生成一張紙質(zhì)書(shū)單,即類(lèi)似于超市購物時(shí)的小票,圖書(shū)管理員得到小票確認無(wú)誤后將紙質(zhì)小票返回給借閱者,借閱者可以得到實(shí)體的圖書(shū),整個(gè)借閱過(guò)程結束。
還書(shū)過(guò)程的時(shí)序圖:
用戶(hù)在還書(shū)的時(shí)候也需要登錄,在登錄的時(shí)候,首先需要輸入自己的信息包括賬號和密碼,顯示器講這些信息發(fā)送給數據庫,在數據庫中將用戶(hù)的賬號和密碼進(jìn)行比對,進(jìn)行身份驗證,并將驗證的結果返回給用戶(hù)。如果身份驗證成功則用戶(hù)登錄成功,反之用戶(hù)登錄失敗。
借閱者在登錄成功之后,可以向圖書(shū)管理員發(fā)送還書(shū)請求,圖書(shū)管理員在接收到還書(shū)請求之后,需要進(jìn)入后臺系統查看該借閱者是否超期借閱,后臺系統返回超期的信息,若借閱者還書(shū)的時(shí)間超過(guò)了應還的時(shí)間,后臺系統則自動(dòng)生成一張扣款賬單,由圖書(shū)管理員返回給借閱者。
之后借閱者需要支付扣款的金額,支付完畢后,圖書(shū)管理員需要修改借閱信息,即進(jìn)入后臺數據庫的借閱表刪除這條借閱信息,后臺系統自動(dòng)將刪除的借閱信息添加到后臺數據庫的歷史借閱表中。另外,后臺系統還需要修改圖書(shū)的館藏冊數,將所還圖書(shū)的館藏冊數加一,并返回館藏信息。
最后,借閱者可以歸還實(shí)體的圖書(shū),圖書(shū)管理員將會(huì )請求生成一張還書(shū)書(shū)單,后臺系統啟用其Item功能生成一張還書(shū)書(shū)單并返回給讀者,整個(gè)還書(shū)操作結束。
4.進(jìn)行還書(shū)操作時(shí)的活動(dòng)圖:
讀者在進(jìn)行借書(shū)操作時(shí),可以向圖書(shū)管理員發(fā)送借閱請求,圖書(shū)管理員在收到消息后可以向后臺系統輸入借閱信息,并查看對應圖書(shū)的館藏信息,并根據館藏信息,產(chǎn)生一個(gè)分支判斷。若館藏冊數為0,則不可借閱,返回錯誤信息并拒絕讀者的借閱,之后結束整個(gè)借書(shū)操作。若館藏冊數不為0,則可借閱,后臺系統返回可借閱信息。
圖書(shū)管理員在后臺系統返回可借閱信息之后修改后臺系統的借閱信息,將需要借閱圖書(shū)的讀者信息添加到后臺數據庫的借閱表中,并且后臺系統自動(dòng)計算當前對應的借閱時(shí)間,與此同時(shí),后臺系統調用其Item功能,當圖書(shū)管理員修改完借閱信息之后,后臺系統生成一張紙質(zhì)書(shū)單。
完成這兩個(gè)操作之后,借閱者可以得到實(shí)體的圖書(shū),整個(gè)借閱過(guò)程結束。
5.讀者從未登記到還書(shū)成功時(shí)的狀態(tài)圖:

讀者在進(jìn)行借書(shū)與還書(shū)操作之前首先需要通過(guò)注冊來(lái)驗證身份,學(xué)校中的圖書(shū)館借閱者以學(xué)生為主,學(xué)生在登記學(xué)生信息之后一直處于未注冊的狀態(tài)。通過(guò)圖書(shū)館管理員對其進(jìn)行注冊操作,讀者的狀態(tài)才由未注冊轉向已注冊。另外,讀者在已注冊的狀態(tài)下也可以修改個(gè)人信息,此時(shí)借閱者的狀態(tài)不變。
注冊完之后的讀者在身份驗證成功之后就可以進(jìn)入到系統,進(jìn)行圖書(shū)信息和自己個(gè)人信息的查詢(xún)。已注冊的讀者此時(shí)處于可借閱的狀態(tài),若讀者借書(shū)數量小于等于10本時(shí),在辦理借閱手續之后就可以對圖書(shū)館中的圖書(shū)進(jìn)行借閱。在取完實(shí)體書(shū)之后,借閱者便進(jìn)入一個(gè)未還書(shū)的狀態(tài)。
若借閱者處于未還書(shū)狀態(tài)超過(guò)2個(gè)月,則借閱者進(jìn)入欠款狀態(tài),若借閱者處于未還書(shū)狀態(tài)不超過(guò)2個(gè)月,則借閱者依舊處于未欠款狀態(tài)。當借閱者在欠款狀態(tài)時(shí),需要進(jìn)行還款,還款之后返回到未欠款狀態(tài)。通過(guò)還書(shū),借閱者進(jìn)入已還書(shū)的狀態(tài)。
此時(shí)可選擇繼續借閱或者是直接結束,若是通過(guò)繼續借閱返回,則需要進(jìn)行判斷,當讀者借書(shū)數量小于等于10本時(shí),才可以繼續借閱,若是讀者借書(shū)數量大于10本,則直接結束,無(wú)法再借。
6.系統的界面設計:
系統的頁(yè)面包括主界面、錄入界面、查詢(xún)所有學(xué)生界面和查詢(xún)單個(gè)學(xué)生界面。
主界面:是所有分界面的總和,所有的分界面都展示在主界面上。

錄入界面:將新入學(xué)的學(xué)生錄入到圖書(shū)管理系統中,同時(shí)注冊自己的賬號,用賬號登錄到系統后,即可以查詢(xún)自己的借書(shū)記錄。


查詢(xún)所有學(xué)生界面:圖書(shū)管理員可以通過(guò)“查詢(xún)所有”這個(gè)界面來(lái)查詢(xún)所有借閱者的信息以及借書(shū)的數量。

查詢(xún)單個(gè)學(xué)生界面:通過(guò)輸入單個(gè)借閱者的姓名來(lái)查詢(xún)對應借閱者的借閱信息。

7、后臺數據庫管理部分的設計結果
主要設計了7個(gè)表,具體表結構如下:
圖書(shū)表
|
字段名稱(chēng) |
數據類(lèi)型 |
長(cháng)度 |
說(shuō)明 |
|
書(shū)號 |
VARCHAR2 |
15 |
主碼 |
|
書(shū)名 |
VARCHAR2 |
20 |
非空 |
|
作者 |
VARCHAR2 |
10 |
- |
|
類(lèi)型 |
VARCHAR2 |
15 |
依賴(lài)于書(shū)架類(lèi)型表中的類(lèi)型字段 |
|
價(jià)格 |
FLOAT |
- |
- |
|
出版社 |
VARCHAR2 |
40 |
- |
|
摘要 |
VARCHAR2 |
50 |
- |
|
館藏冊數 |
NUMBER |
- |
- |
|
在館冊數 |
NUMBER |
- |
小于館藏冊數 |
|
存放位置 |
VARCHAR2 |
5 |
- |
|
被借次數 |
NUMBER |
- |
判斷圖書(shū)是否受歡迎的標準 |
讀者表
|
字段名稱(chēng) |
數據類(lèi)型 |
長(cháng)度 |
說(shuō)明 |
|
卡號 |
VARCHAR2 |
15 |
主碼 |
|
姓名 |
VARCHAR2 |
20 |
- |
|
性別 |
CHAR |
2 |
為“男”或“女” |
|
單位 |
VARCHAR2 |
40 |
- |
|
類(lèi)型 |
VARCHAR2 |
10 |
依賴(lài)于讀者類(lèi)型表中的類(lèi)型字段 |
|
級別 |
NUMBER |
- |
用來(lái)記錄該學(xué)生借閱的數量 |
|
在借冊數 |
NUMBER |
- |
- |
讀者類(lèi)型表
|
字段名稱(chēng) |
數據類(lèi)型 |
長(cháng)度 |
說(shuō)明 |
|
類(lèi)型 |
VARCHAR2 |
10 |
主碼 |
|
借書(shū)時(shí)間 |
DATE |
- |
|
|
最多在借冊數 |
NUMBER |
- |
|
正借閱表
|
字段名稱(chēng) |
數據類(lèi)型 |
長(cháng)度 |
說(shuō)明 |
|
書(shū)號 |
VARCHAR2 |
15 |
主碼 |
|
卡號 |
VARCHAR2 |
15 |
|
|
借書(shū)時(shí)間 |
DATE |
- |
已還表
|
字段名稱(chēng) |
數據類(lèi)型 |
長(cháng)度 |
說(shuō)明 |
|
書(shū)號 |
VARCHAR2 |
15 |
主碼 |
|
卡號 |
VARCHAR2 |
15 |
|
|
借書(shū)時(shí)間 |
DATE |
- |
|
|
還書(shū)時(shí)間 |
DATE |
- |
書(shū)架表
|
字段名稱(chēng) |
數據類(lèi)型 |
長(cháng)度 |
說(shuō)明 |
|
書(shū)架號 |
VARCHAR2 |
15 |
主碼 |
|
類(lèi)型 |
VARCHAR2 |
15 |
NOT NULL |
工作人員表
|
字段名稱(chēng) |
數據類(lèi)型 |
長(cháng)度 |
說(shuō)明 |
|
工作號 |
VARCHAR2 |
15 |
主碼 |
|
姓名 |
VARCHAR2 |
20 |
- |
|
職務(wù) |
VARCHAR2 |
20 |
- |
|
工資 |
FLOAT |
- |
- |
聯(lián)系客服