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