版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 畢業(yè)設(shè)計(jì)說(shuō)明書(shū)(論文)</p><p> 作 者: 學(xué) 號(hào): </p><p> 系 : 計(jì)算機(jī) </p><p> 專 業(yè): 計(jì)算機(jī) </p><p> 題 目: 基于Java的圖書(shū)館管理系
2、統(tǒng)的設(shè)計(jì) </p><p> 指導(dǎo)者: </p><p> (姓 名) (專業(yè)技術(shù)職務(wù))</p><p> 評(píng)閱者: </p><p> (姓 名) (專業(yè)技術(shù)職務(wù))&l
3、t;/p><p><b> 2012年6月6日</b></p><p> 畢業(yè)設(shè)計(jì)(論文)中文摘要</p><p> 畢業(yè)設(shè)計(jì)(論文)外文摘要</p><p><b> 目次</b></p><p><b> 1 引言1</b></p>
4、;<p> 1.1 課題背景1</p><p> 1.2 目前圖書(shū)管理系統(tǒng)存在的問(wèn)題1</p><p> 1.3 課題意義2</p><p> 1.4 課題內(nèi)容2</p><p><b> 2 需求分析2</b></p><p> 2.1 可行性分析2<
5、/p><p> 2.2 功能分析3</p><p> 2.3 性能分析3</p><p> 3. 相關(guān)技術(shù)介紹4</p><p> 3.1 Swing介紹4</p><p> 3.2 C/S介紹5</p><p> 3.3 Socket介紹6</p><p
6、><b> 4 系統(tǒng)設(shè)計(jì)6</b></p><p> 4.1 模塊設(shè)計(jì)6</p><p> 4.2 數(shù)據(jù)庫(kù)設(shè)計(jì)7</p><p><b> 5 程序?qū)崿F(xiàn)10</b></p><p> 5.1客戶端與服務(wù)器端的連接10</p><p> 5.2登錄模
7、塊程序?qū)崿F(xiàn)11</p><p> 5.3 管理員功能模塊的實(shí)現(xiàn)12</p><p> 5.4 讀者功能模塊的實(shí)現(xiàn)18</p><p> 6. 軟件測(cè)試19</p><p> 6.1 軟件測(cè)試的方法與步驟19</p><p> 6.2 測(cè)試用例設(shè)計(jì)與測(cè)試用例的運(yùn)行過(guò)程及測(cè)試結(jié)果分析20</p&
8、gt;<p><b> 6.3 分析21</b></p><p><b> 結(jié)論22</b></p><p><b> 參考文獻(xiàn)23</b></p><p><b> 致 謝24</b></p><p><b>
9、 1 引言</b></p><p><b> 1.1 課題背景</b></p><p> 在我國(guó)信息化管理系統(tǒng)近年來(lái)日趨成熟,在采用計(jì)算機(jī)技術(shù)進(jìn)行管理之前,圖書(shū)的圖書(shū)借閱工作是非常繁瑣和復(fù)雜的。圖書(shū)的借閱工作完全依賴于手工操作,不但費(fèi)時(shí)費(fèi)力而且經(jīng)常容易出錯(cuò)。讀者在借書(shū)的時(shí)候首先要有一個(gè)借閱證,工作人員把讀者要借閱的信息卡與讀者的借閱證放到一起,并且在
10、借閱證上填寫借閱信息,這就是手工操作時(shí)代的借閱過(guò)程。這樣的借閱工作顯而易見(jiàn),效率非常低,因?yàn)楣ぷ髁看蟛粌H容易丟失,而且還容易出錯(cuò)??偟膩?lái)說(shuō),缺乏系統(tǒng)、規(guī)范的信息管理手段。利用計(jì)算機(jī)來(lái)處理這些流程無(wú)疑會(huì)極大程度地提高效率和處理能力。讀者排隊(duì)的時(shí)間會(huì)明顯縮短,讀者可以花更多的時(shí)間在選書(shū)和看書(shū)上面。而且近年來(lái),隨著圖書(shū)館規(guī)模的逐漸擴(kuò)大,圖書(shū)數(shù)量也相應(yīng)的大量增加,有關(guān)的圖書(shū)的各種信息成倍增長(zhǎng),總是面對(duì)大量的讀者信息、書(shū)籍信息、以及兩者相互作用而
11、產(chǎn)生的借書(shū)信息、還書(shū)信息等等面對(duì)如此龐大的信息量,需要一套合理、有效、規(guī)范的圖書(shū)館管理系統(tǒng)。對(duì)圖書(shū)資料進(jìn)行統(tǒng)一、集中的管理。使用本軟件之后,工作人員可以查詢某位讀者、某種圖書(shū)的借閱情況,以及借書(shū)還書(shū),讀者的信息增加修改等變得都非常方便和快捷,效率也提高了。</p><p> 1.2 目前圖書(shū)管理系統(tǒng)存在的問(wèn)題</p><p> 1.檢索速度慢、效率低</p><p&
12、gt; 因?yàn)閳D書(shū)館的藏書(shū)種類多、數(shù)量多,將藏書(shū)準(zhǔn)確地分門別類,快速檢索,手工進(jìn)行非常困難,有時(shí)會(huì)出現(xiàn)一些錯(cuò)誤信息,例如館中沒(méi)有此書(shū)或已被別人借走且沒(méi)有記錄。圖書(shū)館的規(guī)模越大,這個(gè)問(wèn)題越突出。</p><p> 2.借書(shū)、還書(shū)工作量大</p><p> 借書(shū)、還書(shū)頻率越大,說(shuō)明圖書(shū)館的作用越大,然而隨之而來(lái)的大量的借書(shū)、還書(shū)登記、實(shí)存圖書(shū)的更新以及借出圖書(shū)超期、遺失等的處理,其工作量之
13、大,往往是人工操作所難以勝任的。而且經(jīng)常會(huì)出現(xiàn)這樣那樣的差錯(cuò)。</p><p> 3.圖書(shū)統(tǒng)計(jì)工作難、藏書(shū)更新不能及時(shí)完成。</p><p> 圖書(shū)館的圖書(shū)應(yīng)根據(jù)科學(xué)技術(shù)的發(fā)展和教學(xué)工作的需要及時(shí)添加和更新,然而由于藏書(shū)數(shù)量及圖書(shū)種類越來(lái)越多,加上自然損耗,人為破壞,使圖書(shū)的統(tǒng)計(jì)工作難以及時(shí)完成,藏書(shū)的更新也就很難有針對(duì)性地進(jìn)行,藏書(shū)的知識(shí)結(jié)構(gòu)得不到良好地控制。</p>
14、<p><b> 1.3 課題意義</b></p><p> 隨著計(jì)算機(jī)的廣泛應(yīng)用,其逐步成為現(xiàn)代化的標(biāo)志。圖書(shū)館的信息量也會(huì)越來(lái)越大,因此需要對(duì)讀者資源、書(shū)籍資源、借書(shū)信息、還書(shū)信息進(jìn)行管理,及時(shí)了解各個(gè)環(huán)節(jié)中信息的變更,要對(duì)因此而產(chǎn)生的單據(jù)進(jìn)行及時(shí)的處理,為了提高圖書(shū)館或者企業(yè)內(nèi)部對(duì)圖書(shū)存銷的自動(dòng)化的管理,能夠更快速的滿足讀者的要求,提高各種工作的效率,現(xiàn)對(duì)其設(shè)計(jì)相應(yīng)的系統(tǒng)
15、,以達(dá)到上述的目的。</p><p> 圖書(shū)管理系統(tǒng)的主要功能是實(shí)現(xiàn)圖書(shū)館圖書(shū)借閱和歸還的管理的自動(dòng)化。圍繞這一主要功能,本系統(tǒng)涉及到以下核心功能:借閱管理,歸還管理。除了這些核心功能外,還包括一些基本和輔助功能,它們是:用戶管理、圖書(shū)館參數(shù)、管理員管理。</p><p><b> 1.4 課題內(nèi)容</b></p><p> 1.實(shí)現(xiàn)圖書(shū)
16、館對(duì)所藏圖書(shū)的按類別、書(shū)名等多方面的查詢,最大的方便讀者和圖書(shū)館工作人員對(duì)所需圖書(shū)的查詢;</p><p> 2.建立圖書(shū)館外借讀者數(shù)據(jù)庫(kù),方便工作人員對(duì)讀者進(jìn)行有效管理;</p><p> 3.建立圖書(shū)館工作人員數(shù)據(jù)庫(kù),限定每個(gè)工作人員對(duì)軟件操作的權(quán)限,最大限度的保護(hù)數(shù)據(jù)庫(kù);</p><p> 4. 建立讀者數(shù)據(jù)庫(kù),限定每個(gè)讀者對(duì)圖書(shū)借閱的操作的權(quán)限,最大限
17、度的保護(hù)數(shù)據(jù)庫(kù);</p><p> 5.實(shí)現(xiàn)圖書(shū)館對(duì)新書(shū)入庫(kù),舊書(shū)注銷的簡(jiǎn)單處理,方便進(jìn)貨;實(shí)現(xiàn)圖書(shū)館的有效管理。</p><p><b> 2 需求分析</b></p><p><b> 2.1 可行性分析</b></p><p> 采用現(xiàn)代化統(tǒng)一的計(jì)算機(jī)系統(tǒng),能夠有效優(yōu)化圖書(shū)館管理系統(tǒng),
18、使其高效的發(fā)揮最大作用,能夠迅捷的為讀者提供相應(yīng)的服務(wù),也同時(shí)能為管理人員減輕負(fù)擔(dān)。開(kāi)發(fā)本系統(tǒng)的可行性研究如下:</p><p> 2.1.1 技術(shù)可行性</p><p> 技術(shù)上的可行性分析主要分析技術(shù)條件能否順利完成開(kāi)發(fā)工作,軟、硬件能否滿足需要。本系統(tǒng)采用java開(kāi)發(fā)出友好美觀的人機(jī)界面,便于用戶理解、操作。使用Eclipse作為開(kāi)發(fā)工具,使用方面規(guī)范性強(qiáng)。數(shù)據(jù)庫(kù)管理系統(tǒng)采用Ac
19、cess,它能夠處理大量數(shù)據(jù),同時(shí)保持?jǐn)?shù)據(jù)的完整性、安全性。因此本系統(tǒng)的開(kāi)發(fā)平臺(tái)已成熟可行。硬件方面,在科技飛速發(fā)展的今天,硬件更新速度越來(lái)越快,容量越來(lái)越大,可靠性越來(lái)越高,價(jià)格越來(lái)越便宜,因此硬件平臺(tái)也能夠滿足本系統(tǒng)所需[1]。</p><p> 2.1.2 經(jīng)濟(jì)可行性</p><p> 鑒于計(jì)算機(jī)技術(shù)發(fā)展異常迅猛, ,在硬件軟件配置以及開(kāi)發(fā)技術(shù)均以可行的情況下開(kāi)發(fā)這樣一個(gè)管理系統(tǒng)
20、成本不會(huì)很高,但其可以大大提高圖書(shū)館的工作效率,也是圖書(shū)館管理發(fā)展的必然趨勢(shì),其必將有比較寬闊的市場(chǎng), ,加上目標(biāo)系統(tǒng)并不是十分復(fù)雜和開(kāi)發(fā)周期較短,人員經(jīng)濟(jì)支出有限。開(kāi)發(fā)完成運(yùn)行后,為使用者帶來(lái)便利,為系統(tǒng)的進(jìn)一步推廣創(chuàng)造了條件,經(jīng)濟(jì)收益將遠(yuǎn)超過(guò)投資。從經(jīng)濟(jì)角度考慮,此系統(tǒng)開(kāi)發(fā)可行。</p><p><b> 2.2 功能分析</b></p><p> 該系統(tǒng)主要
21、建立一個(gè)基于C/S模式的圖書(shū)管理系統(tǒng),面對(duì)當(dāng)今很多小型圖書(shū)管理仍是人工管理帶來(lái)的檢索速度慢,效率低,借閱歸還圖書(shū)量大,圖書(shū)統(tǒng)計(jì)工作量大,藏書(shū)不能完成及時(shí)更新的問(wèn)題,該系統(tǒng)可以對(duì)兩個(gè)不同的用戶類型實(shí)現(xiàn)不同的功能:</p><p> 1.對(duì)于圖書(shū)館工作人員能夠方便的對(duì)圖書(shū)信息的管理,可以增加、修改、刪除圖書(shū),豐富具體圖書(shū)的信息,對(duì)不同圖書(shū)進(jìn)行分類操作;可以根據(jù)圖書(shū)證號(hào)和圖書(shū)的條形碼的進(jìn)行借書(shū)和還書(shū)的操作;對(duì)讀者的信
22、息進(jìn)行增加、修改、刪除,以及讀者的的信息統(tǒng)計(jì)來(lái)實(shí)現(xiàn)對(duì)讀者的管理;對(duì)管理員的一些信息進(jìn)行添加、刪除和管理權(quán)限的設(shè)置來(lái)實(shí)現(xiàn)對(duì)管理員的管理;可以查詢圖書(shū)相關(guān)資料、當(dāng)前借閱情況和歷史借閱情況;以及對(duì)一些參數(shù)的</p><p><b> 管理。</b></p><p> 2.對(duì)于讀者在本系統(tǒng)的應(yīng)用下可實(shí)現(xiàn)按照各種方式(如:書(shū)名,作者,ISBN號(hào),出版)查詢圖書(shū)館的藏書(shū)情況;
23、能夠查詢自己的借閱圖書(shū)情況,也能查詢自己的信息 (如學(xué)號(hào)、姓名、密碼、電話、地址等)和更新自己的信息以便對(duì)自己的信息進(jìn)行管理。</p><p><b> 2.3 性能分析</b></p><p> 1.打開(kāi)軟件后任意的瀏覽切換不同的界面(隨意操作),包括“圖形登陸界面”,“圖書(shū)查詢界面”,“借書(shū)還書(shū)界面”,“讀者管理界面”,“管理員界面”,“圖書(shū)管理界面 ”及各個(gè)
24、菜單項(xiàng)和按鈕均有反應(yīng)且反應(yīng)正確無(wú)誤。</p><p> 2.不可用的按鈕,全部置灰,減少用戶無(wú)謂的操作,提高可操作性。</p><p> 3.具有較高的可靠性和容錯(cuò)能力,無(wú)溢出問(wèn)題和數(shù)據(jù)丟失。</p><p> 4.界面設(shè)計(jì)合理。面板內(nèi)文字為當(dāng)前語(yǔ)言,并且語(yǔ)意明確。各個(gè)組件無(wú)交錯(cuò)覆蓋。輸入框內(nèi)文字字?jǐn)?shù)以及類型任意輸入,無(wú)越界以及提示違規(guī)現(xiàn)象。</p>
25、;<p><b> 3. 相關(guān)技術(shù)介紹</b></p><p> 3.1 Swing介紹</p><p> Swing是一個(gè)用于開(kāi)發(fā)Java應(yīng)用程序用戶界面的開(kāi)發(fā)工具包。它以抽象窗口工具包(AWT)為基礎(chǔ)使跨平臺(tái)應(yīng)用程序可以使用任何可插拔的外觀風(fēng)格。Swing開(kāi)發(fā)人員只用很少的代碼就可以利用Swing豐富、靈活的功能和模塊化組件來(lái)創(chuàng)建優(yōu)雅的用戶界面
26、。 工具包中所有的包都是以swing作為名稱,例如javax.swing,javax.swing.event。[2、3]</p><p> 在創(chuàng)建圖形界面時(shí),一般要遵循以下步驟:</p><p> ?。?)導(dǎo)入Swing包。用以下語(yǔ)句導(dǎo)入Swing包 import javax.swing.*; 大部分Swing程序用到了AWT的基礎(chǔ)底層結(jié)構(gòu)和事件模型,因此需要導(dǎo)入兩個(gè)包: import
27、java.awt.*; import java.awt.event.*; 如果圖形界面中包括了事件處理,那么還需要導(dǎo)入事件處理包: import javax.swing.event.*;。</p><p> ?。?)選擇界面風(fēng)格 Swing允許選擇程序的圖形界面風(fēng)格常用的有java風(fēng)格,windows風(fēng)格等 下面的代碼用于選擇圖形界面風(fēng)格,這里選擇的是跨平臺(tái)的Java界面風(fēng)格[8、14]。 </p>
28、<p> try { UIManager.setLookAndFeel( UIManager.getCrossPlatformLookAndFeelClassName( )); } catch (Exception e) { }</p><p> ?。?)設(shè)置頂層容器。圖形界面至少要有一個(gè)頂級(jí)Swing容器。頂級(jí)Swing容器為其它Swing組件在屏幕上的繪制和處理事件提供支持 常用的頂級(jí)容器: J
29、Frame(框架):表示主程序窗口; JDialog(對(duì)話框):每個(gè)JDialog對(duì)象表示一個(gè)對(duì)話框,對(duì)話框?qū)儆诙?jí)窗口;JApplet(小程序)在瀏覽器內(nèi)顯示一個(gè)小程序界面。 一個(gè)框架包括邊界、菜單欄、工具欄、狀態(tài)欄,以及中間占主要部分的窗格。窗格也可以看作是一種面板,但它是框架的一個(gè)組成部分,組件不會(huì)直接放到框架上,而是放在若干個(gè)面板上,這些面板再放到窗格上,用框架對(duì)象的getContentPane()函數(shù)來(lái)獲得窗格,再調(diào)用窗格的a
30、dd()函數(shù)放置面板[9、4]。 </p><p> (4)設(shè)置按鈕和標(biāo)簽 按鈕(JButton)是常用組件,按鈕上允許有圖標(biāo)或字符串,也可以兩者兼容。標(biāo)簽(JLabel)可以顯示文本、圖像或者同時(shí)顯示。標(biāo)簽一般用來(lái)顯示提示信息,它不對(duì)輸入事件作出反應(yīng)[16]。</p><p> ?。?)將組件放到容器上。用add()函數(shù)來(lái)添加組件。</p><p> ?。?
31、)為組件增加邊框。用add()函數(shù)來(lái)添加。</p><p> ?。?)處理事件 。通過(guò)添加不同的監(jiān)聽(tīng)器來(lái)監(jiān)聽(tīng)并作出相應(yīng)的反應(yīng)[13]。</p><p> ?。?)輔助技術(shù)支持。根據(jù)自己的需求來(lái)進(jìn)行選擇。</p><p><b> 3.2 C/S介紹</b></p><p> C/S結(jié)構(gòu)軟件(即客戶機(jī)/服務(wù)器模式)分為
32、客戶機(jī)和服務(wù)器兩層,客戶機(jī)不是毫無(wú)運(yùn)算能力的輸入、輸出設(shè)備,而是具有了一定的數(shù)據(jù)處理和數(shù)據(jù)存儲(chǔ)能力,通過(guò)把應(yīng)用軟件的計(jì)算和數(shù)據(jù)合理地分配在客戶機(jī)和服務(wù)器兩端,可以有效地降低網(wǎng)絡(luò)通信量和服務(wù)器運(yùn)算量。由于服務(wù)器連接個(gè)數(shù)和數(shù)據(jù)通信量的限制,這種結(jié)構(gòu)的軟件適于在用戶數(shù)目不多的局域網(wǎng)內(nèi)使用[7]。</p><p> 簡(jiǎn)單的C/S體系結(jié)構(gòu)的數(shù)據(jù)庫(kù)應(yīng)用由兩部分組成,即客戶應(yīng)用程序和數(shù)據(jù)庫(kù)服務(wù)程序。二者可分別稱為前臺(tái)程序與后
33、臺(tái)程序。運(yùn)行數(shù)據(jù)庫(kù)服務(wù)器程序的機(jī)器,也稱為應(yīng)用服務(wù)器。一旦服務(wù)器程序被啟動(dòng),就隨時(shí)等待響應(yīng)客戶程序發(fā)來(lái)的請(qǐng)求;客戶應(yīng)用程序運(yùn)行在用戶自己的電腦上,對(duì)應(yīng)于數(shù)據(jù)庫(kù)服務(wù)器,可稱為客戶電腦,當(dāng)需要對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行任何操作時(shí),客戶程序就自動(dòng)地尋找服務(wù)器程序,并向其發(fā)出請(qǐng)求,服務(wù)器程序根據(jù)預(yù)定的規(guī)則作出應(yīng)答,送回結(jié)果,應(yīng)用服務(wù)器運(yùn)行數(shù)據(jù)負(fù)荷較輕。數(shù)據(jù)的儲(chǔ)存管理功能較為透明。在數(shù)據(jù)庫(kù)應(yīng)用中,數(shù)據(jù)的儲(chǔ)存管理功能,是由服務(wù)器程序和客戶應(yīng)用程序分別獨(dú)立
34、進(jìn)行的,前臺(tái)應(yīng)用可以違反的規(guī)則,并且通常把那些不同的(不管是已知還是未知的)運(yùn)行數(shù)據(jù),在服務(wù)器程序中不集中實(shí)現(xiàn),例如訪問(wèn)者的權(quán)限,編號(hào)可以重復(fù)、必須有客戶才能建立定單這樣的規(guī)則。所有這些,對(duì)于工作在前臺(tái)程序上的最終用戶,是“透明”的,他們無(wú)須過(guò)問(wèn)(通常也無(wú)法干涉)背后的過(guò)程,就可以完成自己的一切工作。在客戶服務(wù)器架構(gòu)的應(yīng)用中,前臺(tái)程序不是非?!笆菪 ?,麻煩的事情都交給了服務(wù)器和網(wǎng)絡(luò)。在C/S體系的下,數(shù)據(jù)庫(kù)不能真正成為公共、專業(yè)化的倉(cāng)庫(kù)
35、,它受到獨(dú)立的專</p><p> 3.3 Socket介紹</p><p> 所謂socket通常也稱作"套接字",應(yīng)用程序通常通過(guò)"套接字"向網(wǎng)絡(luò)發(fā)出請(qǐng)求或者應(yīng)答網(wǎng)絡(luò)請(qǐng)求。以J2SDK-1.3為例,Socket和ServerSocket類庫(kù)位于java .net包中。ServerSocket用于服務(wù)器端,Socket是建立網(wǎng)絡(luò)連接時(shí)使用的。在
36、連接成功時(shí),應(yīng)用程序兩端都會(huì)產(chǎn)生一個(gè)Socket實(shí)例,操作這個(gè)實(shí)例,完成所需的會(huì)話。socket 是面向客戶/服務(wù)器模型而設(shè)計(jì)的,針對(duì)客戶和服務(wù)器程序提供不同的socket系統(tǒng)調(diào)用??蛻綦S機(jī)申請(qǐng)一個(gè)socket (相當(dāng)于一個(gè)想打電話的人可以在任何一臺(tái)入網(wǎng)電話上撥號(hào)呼叫),系統(tǒng)為之分配一個(gè)socket號(hào);服務(wù)器擁有全局公認(rèn)的 socket ,任何客戶都可以向它發(fā)出連接請(qǐng)求和信息請(qǐng)求(相當(dāng)于一個(gè)被呼叫的電話擁有一個(gè)呼叫方知道的電話號(hào)碼)。&
37、lt;/p><p> 根據(jù)連接啟動(dòng)的方式以及本地套接字要連接的目標(biāo),套接字之間的連接過(guò)程可以分為三個(gè)步驟:服務(wù)器監(jiān)聽(tīng),客戶端請(qǐng)求,連接確認(rèn)[6]。 </p><p> 服務(wù)器監(jiān)聽(tīng):是服務(wù)器端套接字并不定位具體的客戶端套接字,而是處于等待連接的狀態(tài),實(shí)時(shí)監(jiān)控網(wǎng)絡(luò)狀態(tài)。 </p><p> 客戶端請(qǐng)求:是指由客戶端的套接字提出連接請(qǐng)求,要連接的目標(biāo)是服務(wù)器端的套接字。
38、為此,客戶端的套接字必須首先描述它要連接的服務(wù)器的套接字,指出服務(wù)器端套接字的地址和端口號(hào),然后就向服務(wù)器端套接字提出連接請(qǐng)求。 </p><p> 連接確認(rèn):是指當(dāng)服務(wù)器端套接字監(jiān)聽(tīng)到或者說(shuō)接收到客戶端套接字的連接請(qǐng)求,它就響應(yīng)客戶端套接字的請(qǐng)求,建立一個(gè)新的線程,把服務(wù)器端套接字的描述發(fā)給客戶端,一旦客戶端確認(rèn)了此描述,連接就建立好了。而服務(wù)器端套接字繼續(xù)處于監(jiān)聽(tīng)狀態(tài),繼續(xù)接收其他客戶端套接字的連接請(qǐng)求[1
39、5]。</p><p><b> 4 系統(tǒng)設(shè)計(jì)</b></p><p><b> 4.1 模塊設(shè)計(jì)</b></p><p> 系統(tǒng)可以對(duì)兩個(gè)不同的用戶類型實(shí)現(xiàn)不同的功能。</p><p> 1.圖書(shū)館管理人員功能模塊,它包括1)館藏檢索模塊:根據(jù)圖書(shū)的書(shū)名、isbn、出版社、作者來(lái)查圖書(shū)信息
40、;再根據(jù)讀者的圖書(shū)證號(hào)來(lái)查詢讀者的借閱信息。2)借書(shū)還書(shū)模塊:根據(jù)圖書(shū)證號(hào)和圖書(shū)條形碼進(jìn)行圖書(shū)借閱操作;通過(guò)圖書(shū)條形碼來(lái)進(jìn)行還書(shū)操作。3)系統(tǒng)維護(hù):圖書(shū)維護(hù)可以增加、修改、刪除圖書(shū),豐富具體圖書(shū)的信息;讀者維護(hù)可對(duì)讀者的信息進(jìn)行增加、修改、刪除,以及讀者的信息統(tǒng)計(jì)來(lái)實(shí)現(xiàn)對(duì)讀者的管理;管理</p><p> 員維護(hù)讀管理員的一些信息進(jìn)行添加、刪除和管理權(quán)限的設(shè)置來(lái)實(shí)現(xiàn)對(duì)管理員的管理;參數(shù)維護(hù)圖書(shū)館管理的一些參數(shù)的
41、進(jìn)行管理。</p><p> 2.讀者管理模塊,各種它包括1)書(shū)目檢索模塊可以根據(jù)書(shū)名、作者、ISBN號(hào)、出版社查詢圖書(shū)館的藏書(shū)情況。2)我的借閱模塊能夠查詢自己的借閱圖書(shū)情況,及時(shí)根據(jù)圖書(shū)信息進(jìn)行還書(shū)或是續(xù)借,以免超期。3)個(gè)人信息模塊可以對(duì)自己的學(xué)號(hào)、姓名、密碼、電話、地址等進(jìn)行更新以便對(duì)自己的信息進(jìn)行管理。功能模塊圖如圖4.1所示。</p><p> 圖4.1 功能模塊圖<
42、;/p><p><b> 4.2 數(shù)據(jù)庫(kù)設(shè)計(jì)</b></p><p> 數(shù)據(jù)庫(kù)是整個(gè)系統(tǒng)的基石,數(shù)據(jù)庫(kù)的設(shè)計(jì)優(yōu)劣直接影響到整個(gè)系統(tǒng)的設(shè)計(jì)成敗,本節(jié)對(duì)數(shù)據(jù)庫(kù)的設(shè)計(jì)進(jìn)行專門闡述。</p><p> 數(shù)據(jù)庫(kù)設(shè)計(jì)是把現(xiàn)實(shí)世界的實(shí)體模型與需求轉(zhuǎn)換成數(shù)據(jù)庫(kù)的模型的過(guò)程,它是建立數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的核心問(wèn)題。數(shù)據(jù)庫(kù)及其應(yīng)用的性能都建立在良好的數(shù)據(jù)庫(kù)設(shè)計(jì)的基礎(chǔ)之
43、上,數(shù)據(jù)庫(kù)的數(shù)據(jù)是一切操作的基礎(chǔ),如果數(shù)據(jù)庫(kù)設(shè)計(jì)不好,那么其它一切用于提高數(shù)據(jù)庫(kù)性能的方法收效都是有限的。數(shù)據(jù)庫(kù)設(shè)計(jì)的關(guān)鍵是如何使設(shè)計(jì)的數(shù)據(jù)庫(kù)能合理地存儲(chǔ)用戶的數(shù)據(jù),方便用戶進(jìn)行數(shù)據(jù)處理[10]。</p><p> 設(shè)計(jì)數(shù)據(jù)庫(kù)必須遵循一定的規(guī)則,在關(guān)系型數(shù)據(jù)庫(kù)中,這種規(guī)則就是范式,范式是符合某一種級(jí)別的關(guān)系模式的集合。一般人們?cè)O(shè)計(jì)數(shù)據(jù)庫(kù)遵循第三范式。即:數(shù)據(jù)庫(kù)表中不包含已在其他表中包含的非主關(guān)鍵字信息。采用范式
44、減少了數(shù)據(jù)冗余,節(jié)約了存儲(chǔ)空間,同時(shí)加快了增、刪、改的速度[11]。</p><p> 4.2.1 圖書(shū)信息表結(jié)構(gòu)設(shè)計(jì)</p><p> 圖書(shū)信息表主要用于存儲(chǔ)圖書(shū)館中所藏圖書(shū)的相關(guān)信息,其中的相關(guān)信息是在圖書(shū)入庫(kù)時(shí)由操作員進(jìn)行添加完善,此表主要用于讀者和圖書(shū)管理員對(duì)館中圖書(shū)的查詢,系統(tǒng)用戶根據(jù)圖書(shū)的某個(gè)屬性進(jìn)行查詢,便可得知圖書(shū)的其他相關(guān)信息,其中圖書(shū)所在書(shū)架屬性是便于讀者借閱時(shí)對(duì)圖
45、書(shū)的尋找,圖書(shū)價(jià)格是在讀者不慎將圖書(shū)遺失時(shí)對(duì)遺失圖書(shū)進(jìn)行賠償?shù)囊罁?jù)。表的具體結(jié)果如表4.1所示。</p><p> 表4.1 圖書(shū)信息表bookdata</p><p> 4.2.2 圖書(shū)管理參數(shù)信息表結(jié)構(gòu)設(shè)計(jì)</p><p> 該表的設(shè)計(jì)主要是方便對(duì)圖書(shū)管理參數(shù)的管理,和對(duì)圖書(shū)的查詢,在實(shí)際應(yīng)用中圖書(shū)管理員就是根據(jù)圖書(shū)類型的不同將之分列在不同的書(shū)架,以方便
46、讀者的借閱尋找,其中可借閱天數(shù)項(xiàng)設(shè)置了不同類型圖書(shū)的借閱期限,可根據(jù)圖書(shū)的具體情況進(jìn)行不同的維護(hù)管理,表的具體結(jié)構(gòu)設(shè)計(jì)如表4.2所示。</p><p> 表4.2 圖書(shū)管理參數(shù)信息表parameter</p><p> 4.2.3 讀者信息表結(jié)構(gòu)設(shè)計(jì)</p><p> 讀者信息表的設(shè)計(jì)是為了圖書(shū)館管理員對(duì)讀者進(jìn)行管理,其中讀者ID,不同類型證件的號(hào)碼都是唯一
47、的,是讀者在借閱圖書(shū)時(shí)需要輸入對(duì)讀者身份進(jìn)行識(shí)別的信息,讀者電話等信息是為了與讀者進(jìn)行聯(lián)系,讀者類型信息決定了讀者一次性可借閱的圖書(shū)的數(shù)量,注冊(cè)時(shí)間可用于查詢計(jì)算讀者身份有效的期限,操作員是為了便于對(duì)信息才操作的查詢。表的具體結(jié)構(gòu)設(shè)計(jì)如圖4.3所示。</p><p> 表4.3 讀者信息表reader</p><p> 4.2.4 管理員類型信息表結(jié)構(gòu)設(shè)計(jì)</p>&l
48、t;p> 此表的設(shè)計(jì)是為了對(duì)不同身份的讀者進(jìn)行分類方便讀者的管理,其中可借閱圖書(shū)數(shù)量的屬性設(shè)定,是根據(jù)讀者需求的不同對(duì)起權(quán)限進(jìn)行的設(shè)置,用于規(guī)定不同類型讀者一次可借閱的圖書(shū)數(shù)量,表的具體結(jié)構(gòu)設(shè)計(jì)如圖4.4所示。</p><p> 表4.4 管理員信息表librarian</p><p> 4.2.5 圖書(shū)借閱信息表結(jié)構(gòu)設(shè)計(jì)</p><p> 該表的
49、設(shè)計(jì)是用于對(duì)讀者借閱圖書(shū)進(jìn)行管理,表中圖書(shū)條碼屬性是對(duì)借閱圖書(shū)的唯一性識(shí)別標(biāo)識(shí),讀者ID號(hào)記錄借閱的相應(yīng)讀者,借書(shū)時(shí)間記錄了相應(yīng)的歸還時(shí)間,以及歸還時(shí)是否超時(shí),以及超期天數(shù) ,根據(jù)讀者的類型以及天數(shù)進(jìn)行罰款,是否歸還標(biāo)識(shí)可查詢讀書(shū)是否被歸還,表的具體結(jié)構(gòu)設(shè)計(jì)如圖4.5所示。</p><p> 表 4.5 圖書(shū)借閱信息表 lendinfo</p><p> 4.2.6 圖書(shū)現(xiàn)在信息表
50、結(jié)構(gòu)設(shè)計(jì)</p><p> 與圖書(shū)借閱信息表形成對(duì)照的是圖書(shū)歸還信息表,該表的設(shè)計(jì)除了像上表一樣把借閱的圖書(shū)與相應(yīng)的借閱者進(jìn)行對(duì)應(yīng)的聯(lián)系以外還記錄了讀者應(yīng)歸還圖書(shū)的時(shí)間,以此判斷讀者的借閱是否超時(shí),表的具體結(jié)構(gòu)設(shè)計(jì)如圖4.6所示。</p><p> 表 4.6 圖書(shū)現(xiàn)在信息表bookinfo</p><p><b> 5 程序?qū)崿F(xiàn)</b>
51、;</p><p> 5.1客戶端與服務(wù)器端的連接</p><p><b> 1. 客戶端</b></p><p> 在客戶端設(shè)置socket來(lái)獲得服務(wù)器端的用戶名和端口號(hào)以便和服務(wù)器進(jìn)行連接。</p><p> public class LibClient implements LibProtocals {&l
52、t;/p><p> protected Socket hostSocket;</p><p> protected ObjectOutputStream outputToServer;</p><p> protected ObjectInputStream inputFromServer;</p><p> public LibClie
53、nt(String host, int port) throws IOException {</p><p> hostSocket = new Socket(host, port);</p><p> outputToServer = new ObjectOutputStream(hostSocket.getOutputStream());</p><p>
54、 inputFromServer = new ObjectInputStream(hostSocket.getInputStream());</p><p> log("連接成功.");}</p><p><b> 2. 服務(wù)器端</b></p><p> 服務(wù)器端驗(yàn)證客戶端發(fā)來(lái)的用戶名和端口號(hào),如果符合就接受客戶端的
55、請(qǐng)求,進(jìn)行連接,然后啟動(dòng)服務(wù)器隨時(shí)和客戶端進(jìn)行通信。</p><p> public class LibServer implements LibProtocals {</p><p> protected ServerSocket serverSocket;</p><p> protected LibDataAccessor libDataAccessor
56、;protected boolean done;</p><p> protected Socket clientSocket = null;protected LibOpHandler libOpHandler = null;</p><p> public LibServer(int thePort) {</p><p> done = false;<
57、;/p><p> serverSocket = new ServerSocket(thePort);</p><p> libDataAccessor = new LibDataAccessor();</p><p> while (!done) {</p><p><b> try {</b></p>
58、<p> clientSocket = serverSocket.accept();</p><p> String clientHostName = clientSocket.getInetAddress().getHostName();</p><p> libOpHandler = new LibOpHandler(clientSocket, libDataAcce
59、ssor);</p><p> libOpHandler.start();</p><p> } catch (IOException e2) {</p><p><b> log(e2)}}</b></p><p> public static void main(String[] args) {</p&
60、gt;<p> LibServer theLibServer;int port = 6666; // 設(shè)置默認(rèn)啟動(dòng)端口號(hào)</p><p> if (args.length == 1) {</p><p> port = Integer.parseInt(args[0]);}</p><p> theLibServer = new LibServ
61、er(port);</p><p><b> }}</b></p><p> 5.2登錄模塊程序?qū)崿F(xiàn)</p><p> 本模塊主要是用戶通過(guò)圖書(shū)管理系統(tǒng)的首頁(yè)登錄進(jìn)入該系統(tǒng)。用戶輸入正確的用戶名和密碼,系統(tǒng)會(huì)根據(jù)用戶的身份進(jìn)行相應(yīng)權(quán)限劃分;如果登錄信息有錯(cuò)誤,則系統(tǒng)提示登錄錯(cuò)誤的信息,并且禁止系統(tǒng)用戶進(jìn)行任何操作。圖書(shū)管理系統(tǒng)的登錄主頁(yè)面
62、如圖5.1所示。</p><p> 圖5.1 系統(tǒng)登錄頁(yè)面圖 圖5.2 用戶登錄流程圖</p><p> 用戶在登錄頁(yè)面寫好用戶名和密碼,選擇登錄,登錄成功則跳轉(zhuǎn)到系統(tǒng)的首頁(yè),否則提示錯(cuò)誤信息。在服務(wù)器端進(jìn)行用戶身份驗(yàn)證的程序流程圖如圖5.2程序流程圖所示</p><p><b> 代碼如下:
63、</b></p><p> String userid = tf1.getText();</p><p> String password = new String(tf2.getPassword());</p><p> adminForm.setUserid(userid);adminForm.setPasswd(password);</
64、p><p> readerForm.setReaderid(userid);readerForm.setPasswd(password);</p><p> if ((lib.adminLogin(adminForm) || lib.readerLogin(readerForm))</p><p> {dispose();</p><p>
65、 MainFrame myFrame = new MainFrame(userid, password, flag);</p><p> myFrame.setVisible(true);System.out.println("ok");</p><p><b> } else {</b></p><p> Syst
66、em.out.println("error");</p><p> JOptionPane.showMessageDialog(null, "錯(cuò)誤的用戶名或密碼!", "警告",</p><p> JOptionPane.WARNING_MESSAGE);</p><p><b> }<
67、;/b></p><p> 5.3 管理員功能模塊的實(shí)現(xiàn)</p><p> 本模塊中最主要的是館藏檢索模塊、借書(shū)還書(shū)模塊、系統(tǒng)維護(hù)模塊。</p><p> 5.3.1 館藏檢索模塊的實(shí)現(xiàn)</p><p> 館藏檢索模塊主要是書(shū)目檢索和讀者借閱信息的查詢。書(shū)目檢索是根據(jù)圖書(shū)的書(shū) 名、isbn、出版社、作者來(lái)查詢圖書(shū)信息,主要針
68、對(duì)的表是圖書(shū)信息表bookdata;而讀者借閱信息的查詢則是跟據(jù)讀者的圖書(shū)證號(hào)來(lái)查詢讀者的借閱信息。主要用到的是圖書(shū) 借閱信息表lendinfo,書(shū)目檢索界面如圖5.3所示,讀者借閱信息查詢效果如圖5.4所示。</p><p> 圖5.3 書(shū)目檢索界面圖</p><p> 圖5.4 讀者借閱信息查詢圖</p><p> 5.3.2借書(shū)還書(shū)模塊的實(shí)
69、現(xiàn) </p><p> 1.圖書(shū)借閱子模塊實(shí)現(xiàn)系統(tǒng)的借閱功能,讀者向圖書(shū)管理員提供自己的圖書(shū)證號(hào)和要借閱的圖書(shū)條形碼,并且還要根據(jù)借閱者的身份來(lái)規(guī)定最多借閱的數(shù)量,還要將被借出的圖書(shū)的狀態(tài)設(shè)置為0,以免下個(gè)人再借。如果借閱成功則彈出借書(shū)成功的對(duì)話框,以方便管理員的管理。圖書(shū)管理員將讀者的借閱信息記錄在圖書(shū)借閱表lendinfo中。以保證數(shù)據(jù)庫(kù)的信息和借閱操作保持一致。借閱圖書(shū)的界面如圖5.5所示。</p&
70、gt;<p> 圖5.5 借閱圖書(shū)的操作界面</p><p><b> 代碼如下:</b></p><p> if (judge.judgeBookBorrow(book) && judge.judgeReaderBorrow(book)</p><p> && judge.judgeBo
71、okYesOrNot(book) && judge.endDate(book) == true) {</p><p> if (judge.readerType(readerForm) == 1</p><p> && judge.bookCount(readerForm) >=judge.bookMaxNumber(readerForm)) {&
72、lt;/p><p> JOptionPane.showMessageDialog(null, "大學(xué)生最多只能借"+judge.bookMaxNumber(readerForm)+"本!", "警告",JOptionPane.WARNING_MESSAGE);</p><p> }//下面用同樣的方法來(lái)判斷老師和研究生最多可借閱的
73、圖書(shū)數(shù)量,故省略了</p><p> if (i == JOptionPane.YES_OPTION) {</p><p> LibDataAccessor b = new LibDataAccessor();</p><p> b.borrowBookInfo(book,judge.dayMaxNumber(readerForm));// 將被借圖書(shū)可借狀態(tài)
74、置0</p><p> int n = b.readerBorrowBook(book,judge.dayMaxNumber(readerForm));</p><p> if (n > 0) {</p><p> int j = JOptionPane.showConfirmDialog(null,"借書(shū)成功!再借一本?", &qu
75、ot;借書(shū)成功",</p><p> JOptionPane.WARNING_MESSAGE);</p><p> if (j == JOptionPane.YES_OPTION) {</p><p> bookFieldText.setText("");</p><p><b> } else
76、 {</b></p><p> dispose();}</p><p> 2.圖書(shū)歸還子模塊實(shí)現(xiàn)系統(tǒng)的圖書(shū)歸還功能,讀者向圖書(shū)管理員提供自要?dú)w還的圖書(shū)條形碼,圖書(shū)管理員將信息記錄在系統(tǒng)中,歸還成功,其操作界面如圖5.6所示。</p><p> 圖5.6 圖書(shū)歸還界面</p><p><b> 代碼如下:<
77、/b></p><p> 先判斷圖書(shū)館是否有此書(shū)judgeBookBorrow(),再判斷此書(shū)是否被借出。judgeBookYesOrNot()。并且查看是否續(xù)借,還要看是否超期,如果超期就要進(jìn)行罰款</p><p> if (b.judgeBookBorrow(book) && b.judgeBookYesOrNot(book) == false) {</
78、p><p> int overduedays = b.overDueDays(book);// 得到超期天數(shù)。</p><p> int renew = b.renew(book);// 查看是否續(xù)借。0:未續(xù)借,1:續(xù)借。</p><p> float money1 = b.moneyUpdate(book,moneyNumber);// 如果超期且沒(méi)有續(xù)借,得
79、到罰款數(shù)額。</p><p> String money = b.numberFormatter(money1);</p><p> int i = JOptionPane.showConfirmDialog(null, "確認(rèn)還圖書(shū)嗎?", "確認(rèn)",</p><p> JOptionPane.YES_NO_OPTIO
80、N);</p><p> if (i == JOptionPane.YES_OPTION) {</p><p> if (overduedays < 0) {</p><p> b.returnBookInfo(book); b.returnBookLendInfo(book); int j = JOptionPane.showConfirmDialog
81、(null, "還書(shū)成功!繼續(xù)還書(shū)?","還書(shū)成功", JOptionPane.WARNING_MESSAGE);</p><p> if (j == JOptionPane.YES_OPTION) {</p><p> bookFieldText.setText("");} else {</p><p&g
82、t; dispose();}}</p><p> 正好到期??磮D書(shū)是否要續(xù)借,如要續(xù)借則修改還書(shū)日期將bookinfo中書(shū)的狀態(tài)碼status的值設(shè)為1,使之可借。將lendinfo表中的實(shí)際還書(shū)日期字段returndate的值設(shè)為還書(shū)的日期。</p><p> else if (overduedays == 0) {</p><p> System.out
83、.println("圖書(shū)到期,需要續(xù)借。");</p><p> int a = JOptionPane.showConfirmDialog(null, "圖書(shū)到期,續(xù)借10天?","圖書(shū)到期", JOptionPane.WARNING_MESSAGE);</p><p> if (a == JOptionPane.YES_O
84、PTION) {</p><p> boolean flag = b.renewBook(book);// 續(xù)借圖書(shū)。</p><p> b.returnBookInfo(book);b.returnBookLendInfo(book); if (m == JOptionPane.YES_OPTION) {</p><p> bookFieldText.set
85、Text("");</p><p> } else {dispose();}</p><p> //超期續(xù)借和超期沒(méi)續(xù)借的情況就不一一說(shuō)明了。</p><p> 5.3.3 系統(tǒng)維護(hù)模塊的實(shí)現(xiàn)</p><p> 1.管理員管理模塊是實(shí)現(xiàn)管理員的添加、刪除和更新,首先定義了一個(gè)AdminForm()類用get()方法
86、和set()方法來(lái)設(shè)置管理員的一些信息,用類AdminAll()來(lái)設(shè)置管理員模塊的界面,在管理員添加時(shí)還可以設(shè)置管理員的權(quán)限并將這些操作保存在管理員信息表librarian中,根據(jù)用戶名來(lái)進(jìn)行刪除和更新。管理員添加界面如圖5.7所示,管理員刪除更新界面如圖5.8所示。</p><p> 圖5.7 管理員添加界面</p><p> 圖5.8 管理員刪除更新界面</p>
87、<p> 2.讀者維護(hù)功能模塊的實(shí)現(xiàn)</p><p> 讀者維護(hù)實(shí)現(xiàn)對(duì)信息的管理功能,讀者信息管理則主要管理維護(hù)讀者的基本信息,主要是添加,刪除,修改等。主要用ReaderAddPanel()類,ReaderDelPanel()類, ReaderUpdPanel()類, ReaderRetrievalPanel()類來(lái)進(jìn)行讀者的信息管理,同時(shí)來(lái)修改讀者信息表reader。讀者增加界面如圖5.9所示。
88、</p><p> 圖5.9 讀者增加界面</p><p> 3.圖書(shū)維護(hù)功能模塊的實(shí)現(xiàn)主要是對(duì)圖書(shū)的isbn號(hào)、書(shū)名、作者等一些信息的增加刪除和更新,并將這些信息添加到數(shù)據(jù)庫(kù)圖書(shū)信息表bookdata中。圖書(shū)添加界面如圖5.10所示,圖書(shū)刪除界面如圖5.11所示。</p><p> 圖5.10 圖書(shū)添加界面</p><p> 圖
89、5.11 圖書(shū)刪除界面</p><p> 4.參數(shù)維護(hù)功能模塊</p><p> 用ParaDialogPanel()類來(lái),根據(jù)讀者類別來(lái)設(shè)置讀者可以最多借閱圖書(shū)的數(shù)量和天數(shù),以及每日的罰金數(shù),并且設(shè)置不同的監(jiān)聽(tīng)器來(lái)監(jiān)聽(tīng)各個(gè)事件的發(fā)生,以便做出相應(yīng)的反應(yīng)。界面如圖5.12所示。</p><p> 圖5.12 參數(shù)維護(hù)界面</p><p&
90、gt; 5.4 讀者功能模塊的實(shí)現(xiàn)</p><p> 5.4.1 書(shū)目檢索</p><p> 書(shū)目檢索是根據(jù)圖書(shū)的書(shū)名、isbn、出版社、作者來(lái)查詢圖書(shū)信息,通過(guò)BookRetrievalpanel()類來(lái)實(shí)現(xiàn),主要針對(duì)的表是圖書(shū)信息表bookdata。書(shū)目檢索界面如圖5.13所示。</p><p> 圖5.13 書(shū)目檢索界面</p><
91、;p> 5.4.2 我的借閱模塊 </p><p> 主要用MyBorrowPanel()類來(lái)實(shí)現(xiàn)借閱信息的查詢,先連接服務(wù)器的socket,得到服務(wù)器端傳來(lái)的讀者的借閱信息,然后用JTablel來(lái)把借閱信息顯示在表格里。我的借閱信息界面如圖5.14所示。</p><p> 圖5.14 我的借閱信息界面</p><p> 代碼如下;public
92、MyBorrowPanel(MainFrame parentFrame, String readerID) {</p><p> numberFormatter.setMaximumFractionDigits(1);</p><p> this.parentFrame = parentFrame;</p><p> this.readerID = reade
93、rID;</p><p> this.setLayout(new BorderLayout());</p><p> getBorrowInfo();// 獲取借閱信息</p><p> buildGUI();// 建立主界面</p><p><b> }</b></p><p> pr
94、otected void getBorrowInfo() {// 連接服務(wù)器,取得讀者的借閱信息</p><p><b> try {</b></p><p> ServerInfo serverInfo = new ServerInfo();</p><p> libClient = new LibClient(serverInfo.g
95、etHost(), serverInfo</p><p> .getPort());</p><p> borrowInfoList = libClient.getReaderBorrowInfo(readerID);</p><p> } catch (IOException e) {</p><p> e.printStackTr
96、ace();</p><p><b> }}</b></p><p> 5.4.3 個(gè)人信息</p><p> 主要是更該自己的一些信息如密碼、電話、地址等主要修改的表是讀者信息表reader。個(gè)人信息界面如圖5.15所示。</p><p> 圖5.15 個(gè)人信息界面</p><p>
97、<b> 6. 軟件測(cè)試</b></p><p> 6.1 軟件測(cè)試的方法與步驟</p><p> 在開(kāi)發(fā)軟件系統(tǒng)的過(guò)程中,需要面對(duì)錯(cuò)綜復(fù)雜的問(wèn)題,因此,在軟件生存周期的每個(gè)階段都不可避免地會(huì)產(chǎn)生錯(cuò)誤。測(cè)試目的在于:發(fā)現(xiàn)錯(cuò)誤而執(zhí)行一個(gè)程序的過(guò)程,測(cè)試重要發(fā)現(xiàn)一個(gè)發(fā)現(xiàn)其中尚未發(fā)現(xiàn)的錯(cuò)誤[12]。</p><p> 為了設(shè)計(jì)出有效地測(cè)試方案
98、按照下面準(zhǔn)則進(jìn)行測(cè)試:所有測(cè)試都應(yīng)追溯到用戶需求;在完成了需求模型就要著手制定測(cè)試計(jì)劃,在編碼之前最所有測(cè)試工作進(jìn)行計(jì)劃和設(shè)計(jì);運(yùn)用Pareto原理著重對(duì)占出現(xiàn)錯(cuò)誤80%的容易出錯(cuò)的20%的模塊進(jìn)行測(cè)試,從小規(guī)模開(kāi)始逐步進(jìn)行大規(guī)模測(cè)試,通常先重點(diǎn)測(cè)試單個(gè)程序模塊再轉(zhuǎn)向集成的模塊簇;精心設(shè)計(jì)測(cè)試方案,盡可能充分覆蓋程序邏輯使之達(dá)到要求的可靠性。</p><p> 按照軟件工程的觀點(diǎn),軟件測(cè)試(主要是指多模塊程序的
99、測(cè)試)共包括4個(gè)層次。</p><p> 1)單元測(cè)試。單元測(cè)試的用例從單元詳細(xì)設(shè)計(jì)中導(dǎo)出。在單元測(cè)試中可以采用功能性測(cè)試和結(jié)構(gòu)性測(cè)試兩種。</p><p> 2)集成測(cè)試和確認(rèn)測(cè)試。這一階段的任務(wù),是通過(guò)了單元測(cè)試的模塊逐步組裝起來(lái),通過(guò)測(cè)試與糾錯(cuò),最終得到一個(gè)滿足需求的目標(biāo)軟件。</p><p> 3)驗(yàn)證測(cè)試。在這個(gè)測(cè)試步驟中所發(fā)現(xiàn)的往往是需求規(guī)格說(shuō)明的
100、錯(cuò)誤。一般來(lái)說(shuō),系統(tǒng)測(cè)試是功能性測(cè)試,不是結(jié)構(gòu)性測(cè)試。</p><p> 6.2 測(cè)試用例設(shè)計(jì)與測(cè)試用例的運(yùn)行過(guò)程及測(cè)試結(jié)果分析</p><p> 6.2.1 模塊測(cè)試</p><p> 選取了借閱模塊進(jìn)行測(cè)試</p><p> 表6.1 借閱模塊用例測(cè)試</p><p> 當(dāng)輸入的圖書(shū)證號(hào)和圖書(shū)條形碼是錯(cuò)
101、誤的時(shí),系統(tǒng)會(huì)跳轉(zhuǎn)到出錯(cuò)頁(yè)面,用戶點(diǎn)擊確定,系統(tǒng)會(huì)重新返回登陸頁(yè)面,其中錯(cuò)誤信息提示頁(yè)面如圖6.1所示:</p><p> 圖6.1 系統(tǒng)出錯(cuò)提示頁(yè)面 </p><p> 6.2.2 集成測(cè)試</p><p> 把經(jīng)過(guò)單元測(cè)試的模塊放在一起形成一個(gè)子系統(tǒng)并對(duì)它進(jìn)行測(cè)試用于檢驗(yàn)?zāi)K相互間的協(xié)調(diào)和通信,這里主要對(duì)圖書(shū)管理員功能系統(tǒng)進(jìn)行了測(cè)試,經(jīng)過(guò)檢驗(yàn)其功能均得以順
102、利實(shí)現(xiàn),下圖為管理員操作的讀者借閱情況的成功運(yùn)行界面。</p><p> 圖6.2 圖書(shū)借閱信息查詢功能測(cè)試圖</p><p> 把經(jīng)過(guò)測(cè)試的子系統(tǒng)裝配成一個(gè)完整的系統(tǒng)進(jìn)行測(cè)試,經(jīng)過(guò)黑盒測(cè)試于白盒測(cè)試相結(jié)合的方式,對(duì)整個(gè)系統(tǒng)的各個(gè)功能模塊進(jìn)行了測(cè)試,并調(diào)試改正其中的設(shè)計(jì)和編碼錯(cuò)誤,經(jīng)過(guò)這個(gè)環(huán)節(jié)的操作整個(gè)系統(tǒng)的功能基本實(shí)現(xiàn)成功運(yùn)行。</p><p> 6.2.
103、3 驗(yàn)收測(cè)試</p><p> 在進(jìn)行了以上的測(cè)試工作后,將整個(gè)軟件系統(tǒng)作為單一的實(shí)體進(jìn)行測(cè)試,測(cè)試內(nèi)容與系統(tǒng)測(cè)試基本類似,但它是在用戶積極參與下進(jìn)行的,此測(cè)試過(guò)程主要使用實(shí)際數(shù)據(jù),進(jìn)行測(cè)試,驗(yàn)證測(cè)試的目的是驗(yàn)證系統(tǒng)確實(shí)能夠滿足用戶的需求,經(jīng)過(guò)這個(gè)環(huán)節(jié)的實(shí)際數(shù)據(jù)測(cè)試,系統(tǒng)的各個(gè)功能實(shí)現(xiàn)都達(dá)到了系統(tǒng)需求設(shè)計(jì)的要求[7]。</p><p><b> 6.3 分析</b>
104、;</p><p> 測(cè)試過(guò)程嚴(yán)格按照測(cè)試的流程,經(jīng)過(guò)單元測(cè)試、子系統(tǒng)測(cè)試和系統(tǒng)測(cè)試。通過(guò)單元測(cè)試,查找出了系統(tǒng)各模塊內(nèi)部的錯(cuò)誤;通過(guò)子系統(tǒng)測(cè)試,發(fā)現(xiàn)了模塊間相互協(xié)調(diào)和通信上的錯(cuò)誤;通過(guò)系統(tǒng)的集成測(cè)試,發(fā)現(xiàn)了軟件設(shè)計(jì)過(guò)程中存在的錯(cuò)誤。通過(guò)改正錯(cuò)誤的設(shè)計(jì)和實(shí)現(xiàn)部分,保證了圖書(shū)管理系統(tǒng)可以完成需求分析中制定的需求。</p><p> 通過(guò)以上測(cè)試步驟對(duì)每個(gè)功能模塊進(jìn)行了測(cè)試,并進(jìn)行了系統(tǒng)聯(lián)
105、調(diào),系統(tǒng)的功能較為穩(wěn)定:</p><p> 1、打開(kāi)軟件后任意的切換不同的界面(隨意操作),均有反應(yīng)且反應(yīng)正確無(wú)誤。</p><p> 2、具有較高的可靠性和容錯(cuò)能力。</p><p> 3、界面設(shè)計(jì)合理。面板內(nèi)文字為當(dāng)前語(yǔ)言,并且語(yǔ)意明確。各個(gè)組件無(wú)交錯(cuò)覆蓋。輸入框內(nèi)文字字?jǐn)?shù)以及類型任意輸入,無(wú)越界以及提示違規(guī)現(xiàn)象。</p><p>
106、 最終圖書(shū)管理的功能實(shí)現(xiàn)能符合預(yù)期的設(shè)計(jì)目標(biāo)。</p><p><b> 結(jié) 論</b></p><p> 圖書(shū)管理系統(tǒng)采用的是Java語(yǔ)言編寫的,運(yùn)用其中的Swing包來(lái)創(chuàng)建和管理圖形界面,并且運(yùn)用Socket套接字來(lái)進(jìn)行客戶端和服務(wù)器的連接,運(yùn)用Eclipse作為開(kāi)發(fā)平臺(tái),它具有完備的編碼、調(diào)試、測(cè)試和發(fā)布功能,本系統(tǒng)采用的是Access數(shù)據(jù)庫(kù),完成了圖書(shū)管
107、理系統(tǒng)的基本功能的實(shí)現(xiàn)。系統(tǒng)中有服務(wù)器端和客戶端兩個(gè)程序。服務(wù)器端程序負(fù)責(zé)開(kāi)啟數(shù)據(jù)庫(kù),建立與客戶端的連接,客戶端程序可以實(shí)現(xiàn)讀者用戶和管理員用戶的登錄及內(nèi)部操作。讀者用戶可以進(jìn)行圖書(shū)的查詢、借閱信息的查詢及個(gè)人信息的修改的操作。管理員用戶可以進(jìn)行圖書(shū)的查詢、借書(shū)還書(shū)、圖書(shū)及管理員的添加和刪除、系統(tǒng)參數(shù)的維護(hù)等操作。通過(guò)不斷地修改完善,使得軟件的功能更強(qiáng)大,性能更穩(wěn)定,界面更加美觀,使用起來(lái)更方便。</p><p>
108、; 當(dāng)然系統(tǒng)還是有一些不足之處的,由于時(shí)間關(guān)系,沒(méi)有使界面和功能更加合理與完美;代碼還有一些不合理之處,時(shí)間效率,空間效率還有很多提高的空間。</p><p><b> 參考文獻(xiàn)</b></p><p> 1 王立福. 軟件工程(第二版). 北京:北京大學(xué)出版社.2009:20~30.</p><p> 2 昊斯特曼 (Horstman
109、n Gay S.)、Gary Cornell、葉乃文、 鄺勁筠. Java核心技術(shù):基礎(chǔ)知識(shí)(第八版). 機(jī)械工業(yè)出版社,2008:100~110.</p><p> 3 俞琰、 鄭阿奇.J2EE應(yīng)用實(shí)踐教程. 電子工業(yè)出版社.2009:40~45. </p><p> 4 趙真. Eclipse開(kāi)發(fā)技術(shù)詳解. 化學(xué)工業(yè)出版社,2010:22~60.</p><p&
110、gt; 5 仵博、池瑞楠、 張麗涓. Java高級(jí)編程實(shí)用教程. 清華大學(xué)出版社,2008:43~89.</p><p> 6 蔡建平. 軟件綜合開(kāi)發(fā)案例教程:Linux、GCC、MySQL、Socket、Gtk+與開(kāi)源案例. 清華大學(xué)出版社.2008:23~29.</p><p> 7 C/S模式. http://baike.baidu.com/view/292856.htm. &
111、lt;/p><p> 8 克萊伯格(Eric Clayberg)、魯貝(Dan Rubel)、陳沛. Eclipse插件開(kāi)發(fā)(原書(shū)第3版). 機(jī)械工業(yè)出版社,2010:70~80.</p><p> 9 Barry Feigenbaum. SWT、Swing 或 AWT:哪個(gè)更適合您.http://www.ibm.com/ developerworks/cn/opensource/os-s
112、wingswt/#N10055.html</p><p> 10 陳桂林. Access數(shù)據(jù)庫(kù)程序設(shè)計(jì)(第2版). 中國(guó)水利水電出版社,2010:90~98.</p><p> 11 戚曉明、姚保峰、周會(huì)平. Access數(shù)據(jù)庫(kù)程序設(shè)計(jì). 清華大學(xué)出版社,2012:12~30.</p><p> 12 趙斌. 軟件測(cè)試技術(shù)經(jīng)典教程(第2版). 科學(xué)出版社,20
113、11:10.</p><p> 13 陳天河. Eclipse,Struts,Hibernate,Spring集成開(kāi)發(fā)寶典. 電子工業(yè)出版社,2008</p><p> 14 孫瀏. Java寶典. 電子工業(yè)出版社.2009:12~60.</p><p> 15 Java socket. http://wenku.baidu.com/view/b7ef3b19
114、227916888486d732.html.</p><p> 16 awt與swing的討論. http://wenku.baidu.com/view/ 366d88f8700abb68a982fb71.html.</p><p><b> 致 謝</b></p><p> 能順利完成這次畢業(yè)設(shè)計(jì),要感謝很多人對(duì)我的幫助。首先是我的導(dǎo)
115、師,她一直在關(guān)心我的進(jìn)度,使我可以跟上任務(wù)書(shū)所要求的步調(diào),并且對(duì)我進(jìn)行了無(wú)私的指導(dǎo)和幫助,不厭其煩的幫助我進(jìn)行論文的修改和改進(jìn),并且能讓我及時(shí)得到學(xué)校的通知,保持與學(xué)校的聯(lián)系。另外,在校圖書(shū)館查找資料的時(shí)候,圖書(shū)館的老師也給我提供了很多方面的支持與幫助。再就是我的老師,謝謝他對(duì)我長(zhǎng)期以來(lái)的諄諄教導(dǎo),教授我編程的知識(shí)和技巧,指出我作品的不足之處,不斷提出更高的要求,使我可以不斷突破自己,不斷提高作品的質(zhì)量。還有我宿舍的同學(xué),遇到不懂的小問(wèn)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于java的圖書(shū)館管理系統(tǒng)的設(shè)計(jì)畢業(yè)論文
- 基于java的圖書(shū)館管理系統(tǒng)畢業(yè)設(shè)計(jì)(論文)
- 基于java的圖書(shū)館管理系統(tǒng)畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)----基于java的圖書(shū)館管理系統(tǒng)
- 基于java的圖書(shū)館管理系統(tǒng)畢業(yè)設(shè)計(jì)
- 基于java的圖書(shū)館管理系統(tǒng)設(shè)計(jì)
- 基于-java的圖書(shū)館管理系統(tǒng)設(shè)計(jì)
- 基于java的圖書(shū)館管理系統(tǒng).畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)----基于java的圖書(shū)館管理系統(tǒng)
- 畢業(yè)論文-----基于web的圖書(shū)館管理系統(tǒng)
- 基于jsp的圖書(shū)館管理系統(tǒng)畢業(yè)論文
- 基于jsp的圖書(shū)館管理系統(tǒng) 畢業(yè)論文
- 基于JAVA的圖書(shū)館管理系統(tǒng).畢業(yè)設(shè)計(jì).doc
- 圖書(shū)館管理系統(tǒng)的開(kāi)發(fā)設(shè)計(jì)畢業(yè)論文
- 圖書(shū)館管理系統(tǒng)畢業(yè)論文
- 畢業(yè)論文--圖書(shū)館管理系統(tǒng)
- 圖書(shū)館管理系統(tǒng)畢業(yè)論文
- 圖書(shū)館管理系統(tǒng)的開(kāi)發(fā)設(shè)計(jì)畢業(yè)論文
- 圖書(shū)館管理系統(tǒng)畢業(yè)論文
- 圖書(shū)館管理系統(tǒng)畢業(yè)論文
評(píng)論
0/150
提交評(píng)論