2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩34頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、<p>  倉庫管理系統(tǒng)的設(shè)計(jì)與分析</p><p><b>  摘 要</b></p><p>  隨著經(jīng)濟(jì)全球化和信息技術(shù)的迅速發(fā)展,物流業(yè)已成為經(jīng)濟(jì)領(lǐng)域中發(fā)展最快、最活躍、最具熱點(diǎn)的一個(gè)行業(yè)。作為物流業(yè)操作中比較繁瑣的一個(gè)重要環(huán)節(jié),倉儲(chǔ)運(yùn)作的好壞將直接影響整個(gè)物流系統(tǒng)的成本與效率。而開發(fā)一個(gè)好的倉庫管理系統(tǒng),使用計(jì)算機(jī)進(jìn)行倉儲(chǔ)管理,可以提高物流管

2、理的現(xiàn)代化程序,加強(qiáng)管理的信息化手段,提高工作效率,增加企業(yè)效益;還可以實(shí)時(shí)掌握庫存最新動(dòng)態(tài),方便查詢。</p><p>  本文在深入了解物流系統(tǒng)倉儲(chǔ)管理的各種方法和對(duì)倉庫管理工作流程進(jìn)行分析的基礎(chǔ)上,抽象出倉庫管理系統(tǒng)的一般模式,設(shè)計(jì)并實(shí)現(xiàn)了倉庫管理系統(tǒng)。該系統(tǒng)采用C/S架構(gòu),以Borland公司的JBuilder 2006軟件為開發(fā)平臺(tái),用微軟公司的SQL Server2000作為后臺(tái)數(shù)據(jù)庫,以貨物查詢、

3、貨物入庫、貨物出庫、貨物移庫等操作為核心,實(shí)現(xiàn)倉庫管理的信息化和自動(dòng)化。本文著重介紹了倉庫管理系統(tǒng)的需求分析、實(shí)現(xiàn)的功能、業(yè)務(wù)流程、數(shù)據(jù)庫設(shè)計(jì)、系統(tǒng)功能模塊設(shè)計(jì)、設(shè)計(jì)等一系列開發(fā)流程。</p><p>  關(guān)鍵字 C/S模式 倉庫管理系統(tǒng) SQL Server 2000 Jbuilder 2006</p><p><b>  目 錄</b>

4、;</p><p><b>  1 前言1</b></p><p>  1.1 設(shè)計(jì)背景與意義1</p><p>  1.2 設(shè)計(jì)目標(biāo)2</p><p>  1.3 系統(tǒng)開發(fā)環(huán)境3</p><p>  1.3.1 系統(tǒng)配置3</p><p>  1.3.2 開發(fā)工

5、具3</p><p>  1.3.3 準(zhǔn)備工作4</p><p><b>  2 系統(tǒng)分析5</b></p><p>  2.1 系統(tǒng)需求分析5</p><p>  2.2 系統(tǒng)功能分析5</p><p>  2.3 數(shù)據(jù)庫需求分析6</p><p>  3 系

6、統(tǒng)總體設(shè)計(jì)7</p><p>  3.1 數(shù)據(jù)庫設(shè)計(jì)7</p><p>  3.1.1實(shí)體關(guān)系圖(E-R圖)設(shè)計(jì)7</p><p>  3.1.2 數(shù)據(jù)流圖10</p><p>  3.1.3 創(chuàng)建數(shù)據(jù)庫11</p><p>  3.2 系統(tǒng)設(shè)計(jì)15</p><p>  3.2.1系

7、統(tǒng)功能結(jié)構(gòu)圖15</p><p>  3.2.2 業(yè)務(wù)流程圖16</p><p>  4 系統(tǒng)功能模塊設(shè)計(jì)16</p><p>  4.1 登陸模塊16</p><p>  4.2 倉庫管理系統(tǒng)模塊17</p><p>  4.2.1 倉庫管理系統(tǒng)主界面模塊17</p><p>  

8、4.2.2 入庫登記模塊18</p><p>  4.2.3 出庫登記模塊19</p><p>  4.2.4 移庫登記模塊19</p><p>  4.2.5 業(yè)務(wù)單位信息模塊20</p><p>  4.2.6 業(yè)務(wù)查看模塊21</p><p><b>  5 系統(tǒng)實(shí)現(xiàn)21</b>

9、</p><p>  5.1 建立與數(shù)據(jù)庫連接的類22</p><p>  5.2 建立把彈出窗口置屏幕中央的類23</p><p>  5.3 登錄系統(tǒng)的實(shí)現(xiàn)23</p><p>  5.4 系統(tǒng)主界面的實(shí)現(xiàn)24</p><p>  5.4.1 貨物數(shù)據(jù)查詢25</p><p>  

10、5.4.2 入庫登記實(shí)現(xiàn)26</p><p>  5.4.3 出庫登記實(shí)現(xiàn)26</p><p>  5.4.4 移庫登記實(shí)現(xiàn)26</p><p>  5.4.5 業(yè)務(wù)信息實(shí)現(xiàn)27</p><p>  6 總結(jié)與展望27</p><p><b>  6.1 總結(jié)27</b></p&

11、gt;<p><b>  6.2 展望27</b></p><p><b>  致謝29</b></p><p><b>  參考文獻(xiàn)30</b></p><p>  Abstract:31</p><p>  畢業(yè)設(shè)計(jì)成績?cè)u(píng)定表錯(cuò)誤!未定義書簽。<

12、;/p><p><b>  1 前言</b></p><p>  1.1 設(shè)計(jì)背景與意義</p><p>  隨著經(jīng)濟(jì)全球化和信息技術(shù)的迅速發(fā)展,作為企業(yè)降低生產(chǎn)成本、提高核心競(jìng)爭(zhēng)力、增加經(jīng)濟(jì)效益的“第三利潤源”——現(xiàn)代物流業(yè)正在世界范圍內(nèi)廣泛流行。</p><p>  現(xiàn)代物流業(yè)泛指原材料、產(chǎn)成品從起點(diǎn)至終點(diǎn)以及相關(guān)信息有

13、效流動(dòng)的全過程。它將運(yùn)輸、倉儲(chǔ)、裝卸、加工、整理、配送、信息等方面有機(jī)結(jié)合,形成完整的供應(yīng)鏈,為用戶提供多功能、一體化的綜合性服務(wù)。</p><p>  我國自20世紀(jì)80年代初系統(tǒng)引進(jìn)現(xiàn)代物流理論以來,科學(xué)技術(shù)的迅速發(fā)展以及加入世貿(mào)組織,我國的物流業(yè)得到了快速發(fā)展,全社會(huì)物流貨物總值大幅度增長。資料表明,物流業(yè)已成為我國經(jīng)濟(jì)領(lǐng)域中發(fā)展最快、最活躍、最具熱點(diǎn)的一個(gè)行業(yè)[4]。</p><p&g

14、t;  物流信息化建設(shè)隨著物流行業(yè)的發(fā)展而受到重視,物流信息化通過對(duì)現(xiàn)有生產(chǎn)資源、人力資源、物流資源的管理,實(shí)現(xiàn)資金流、物流與信息流的“三流”統(tǒng)一。通過使用現(xiàn)代管理方法,實(shí)現(xiàn)物流作業(yè)的自動(dòng)化,達(dá)到提高物流服務(wù)水平和質(zhì)量的目的,大大提高了勞動(dòng)生產(chǎn)效率。</p><p>  現(xiàn)代物流系統(tǒng)應(yīng)在新的經(jīng)營信息系統(tǒng)思想的指導(dǎo)下來設(shè)計(jì)物流信息系統(tǒng),依靠現(xiàn)代科學(xué)技術(shù),在計(jì)劃、管理和控制以及作業(yè)環(huán)節(jié)等方面充分利用信息、快速反饋信息

15、,為決策提供依據(jù)并輔助決策,提高物流效率和優(yōu)化供應(yīng)鏈的信息系統(tǒng)。</p><p>  現(xiàn)代物流信息系統(tǒng)的目的是在提高物流行業(yè)的效率并降低成本的同時(shí),提高對(duì)顧客的服務(wù)水平[7]。</p><p>  在實(shí)際物流系統(tǒng)運(yùn)作中,倉儲(chǔ)是比較繁瑣也比較重要的一個(gè)環(huán)節(jié),它聯(lián)結(jié)了生產(chǎn)者與客戶,其運(yùn)作的好壞將直接影響整個(gè)物流系統(tǒng)的成本與效率。使用人工式管理各項(xiàng)貨品信息不僅效率低下,而且容易出錯(cuò),安全性很差。

16、并且在實(shí)際操作中,數(shù)據(jù)的查找和維護(hù)都不容易實(shí)現(xiàn),容易發(fā)生差錯(cuò),導(dǎo)致管理費(fèi)用的增加,服務(wù)質(zhì)量難以得到保證,從而影響企業(yè)的競(jìng)爭(zhēng)力。隨著物流業(yè)的發(fā)展,其規(guī)模的擴(kuò)大,倉儲(chǔ)將發(fā)揮越來越重要的作用。</p><p>  在物流信息管理系統(tǒng)中,高效方便的倉庫管理系統(tǒng),可以為生產(chǎn)經(jīng)營提供堅(jiān)強(qiáng)的后盾和有力的支持。</p><p>  因而倉庫管理系統(tǒng)成為物流信息管理系統(tǒng)的一個(gè)必不可少的重要環(huán)節(jié),倉庫管理的信

17、息化、計(jì)算機(jī)化已迫在眉捷。開發(fā)一個(gè)倉庫物流管理系統(tǒng)可以提高物流管理的現(xiàn)代化程序,加強(qiáng)管理的信息化手段,提高工作效率,增加企業(yè)效益;還可以實(shí)時(shí)掌握庫存最新動(dòng)態(tài),方便查詢。</p><p><b>  1.2 設(shè)計(jì)目標(biāo)</b></p><p>  本倉庫管理系統(tǒng)的設(shè)計(jì)目標(biāo)主要是提供一個(gè)倉儲(chǔ)業(yè)務(wù)及其作業(yè)管理的信息存儲(chǔ)和檢索平臺(tái),通過系統(tǒng)管理、倉庫管理和業(yè)務(wù)信息管理等功能模塊

18、來實(shí)現(xiàn)倉庫的綜合管理,旨在從倉庫的普遍特點(diǎn)出發(fā),有針對(duì)性地解決倉庫的日常管理等方面的問題,創(chuàng)建一套能夠通用于各物流企業(yè)中的倉庫管理系統(tǒng)[5]。</p><p>  本系統(tǒng)主要用的是模塊化設(shè)計(jì),主要包含系統(tǒng)、倉庫管理、業(yè)務(wù)信息這幾個(gè)功能模塊。系統(tǒng)操作簡單, 有計(jì)算機(jī)基礎(chǔ)的人無需培訓(xùn)即可使用, 即使是沒有計(jì)算機(jī)基礎(chǔ)的人只需經(jīng)過簡單的培訓(xùn)就可以很熟練的使用本系統(tǒng)。系統(tǒng)運(yùn)行后,用戶使用本系統(tǒng)時(shí),不會(huì)也不必關(guān)心系統(tǒng)內(nèi)部的結(jié)

19、構(gòu)及實(shí)現(xiàn)方法,即對(duì)用戶來說是透明的,所以本系統(tǒng)是定位在界面友好、操作方便、功能齊全的原則上的,用戶只需簡單的用鼠標(biāo)點(diǎn)擊各界面上的選項(xiàng)卡或按鈕就能執(zhí)行相應(yīng)的功能。</p><p>  通過開發(fā)倉庫管理系統(tǒng),至少可以實(shí)現(xiàn)以下的“六個(gè)有利” :</p><p>  1、有利于減少用在倉庫管理系統(tǒng)上的人力資源。</p><p>  2、有利于提高倉庫管理的效率。</p

20、><p>  3、有利于用戶對(duì)倉庫貨物存儲(chǔ)的查詢、更新、修改等操作。</p><p>  4、有利于倉庫管理的保密性和安全性。</p><p>  5、有利于決策者從各種查詢表里獲得倉庫的總體情況。</p><p>  目標(biāo)系統(tǒng)應(yīng)該達(dá)到以下要求: </p><p>  1、時(shí)間經(jīng)濟(jì)性。優(yōu)化邏輯設(shè)計(jì)與物理設(shè)計(jì),使系統(tǒng)運(yùn)行效率

21、高,反應(yīng)速度快。</p><p>  2、可靠性。能連續(xù)準(zhǔn)確的處理業(yè)務(wù),有較強(qiáng)的容錯(cuò)能力。</p><p>  3、可理解性。用戶容易理解和使用該系統(tǒng)。</p><p>  4、可維護(hù)性和適應(yīng)性。系統(tǒng)應(yīng)易于修改、易于擴(kuò)充、易于維護(hù),能夠適應(yīng)業(yè)務(wù)不斷發(fā)展變化的需要。</p><p>  5、可用性。目標(biāo)系統(tǒng)功能齊全,能夠完全滿足業(yè)務(wù)需求。<

22、;/p><p>  6、安全保密性。保證系統(tǒng)的物理安全、數(shù)據(jù)存儲(chǔ)和存取的安全與保密、數(shù)據(jù)傳輸?shù)陌踩c保密,做好使用人員的授權(quán)管理。</p><p>  倉庫管理系統(tǒng)的建設(shè)目標(biāo)是:按照倉庫管理信息的特點(diǎn),利用倉庫管理系統(tǒng)平臺(tái),圍繞著“數(shù)據(jù)庫、信息管理、應(yīng)用”進(jìn)行整體規(guī)劃,實(shí)現(xiàn)對(duì)倉庫信息的管理,實(shí)現(xiàn)對(duì)貨物信息的管理和對(duì)整體的倉庫存儲(chǔ)和業(yè)務(wù)信息進(jìn)行統(tǒng)計(jì),從而極大的提高了倉庫管理的效率。</p&

23、gt;<p>  數(shù)據(jù)庫:創(chuàng)建在倉庫管理系統(tǒng)平臺(tái)使用的數(shù)據(jù)庫,管理員可以查詢倉庫管理的各項(xiàng)信息數(shù)據(jù)。</p><p>  信息管理:管理員可以對(duì)倉庫進(jìn)行分類查詢,可以對(duì)倉庫貨物數(shù)據(jù)進(jìn)行增加、修改、刪除等,方便管理員對(duì)倉庫的貨物進(jìn)行管理。</p><p>  應(yīng)用:倉庫管理系統(tǒng)的匯總表可以讓我們了解整個(gè)倉庫的運(yùn)作,從而為物流管理提供各種信息,有利于提高物流系統(tǒng)的總體水平。<

24、;/p><p>  1.3 系統(tǒng)開發(fā)環(huán)境</p><p>  1.3.1 系統(tǒng)配置 </p><p>  Windows XP 作為當(dāng)今最為普及的操作系統(tǒng),具有簡單、容易操作、穩(wěn)定強(qiáng)大的特點(diǎn)。一方面考慮目前微軟的飛速發(fā)展,越來越多的企業(yè)在規(guī)劃內(nèi)部網(wǎng)絡(luò)時(shí),將微軟平臺(tái)作為首選方案;另一方面從技術(shù)角度來講,微軟平臺(tái)上的應(yīng)用無論是在開發(fā)上,還是在軟件的部署上都非常容易,而且

25、性能優(yōu)越。</p><p>  1.3.2 開發(fā)工具</p><p>  JBuilder 是目前最好的Java開發(fā)工具之一,在協(xié)同管理、對(duì)J2EE和XML的支持等方面都非常的優(yōu)秀,它的這些特性是其他同類產(chǎn)品無法比擬的。同時(shí)它在Applet和EJB開發(fā)方面也具有獨(dú)特的優(yōu)勢(shì),使得它在J2EE工程開發(fā)界具有獨(dú)特的優(yōu)勢(shì),成為目前最流行的Java開發(fā)工具之一。一般來講Jbuilder提供了企業(yè)數(shù)據(jù)

26、庫的動(dòng)態(tài)鏈接,可以開發(fā)出基于網(wǎng)絡(luò)的動(dòng)態(tài)分布計(jì)算數(shù)據(jù)庫管理系統(tǒng)。在現(xiàn)在的企業(yè)信息管理系統(tǒng)的實(shí)現(xiàn)中通常是結(jié)合Jbuilder和Weblogic_server來共同實(shí)現(xiàn)數(shù)據(jù)庫開發(fā)系統(tǒng)。Jbuilder的主要特性包括四個(gè)方面:</p><p>  ·Tomcat組件的集成:Tomcat組件是業(yè)界公認(rèn)的優(yōu)秀的網(wǎng)絡(luò)開發(fā)軟件,Jbuilder和它集成,大大方便了Java在網(wǎng)絡(luò)和數(shù)據(jù)庫分布計(jì)算方面的應(yīng)用,使得Java的

27、Web開發(fā)更容易。</p><p>  ·企業(yè)信息化應(yīng)用的開發(fā)功能:可以據(jù)此集成多種應(yīng)用服務(wù)器,大大方便了Java在企業(yè)信息化方面的應(yīng)用。提高了企業(yè)信息化的水平,促進(jìn)了Java在工程界的廣泛應(yīng)用。</p><p>  ·非常簡單的程序發(fā)布功能:只需簡單的步驟便可將自己的程序打包進(jìn)行發(fā)布,大大方便了用戶使用和發(fā)布自己的程序。</p><p>  &

28、#183;由于在現(xiàn)在的軟件開發(fā)中團(tuán)隊(duì)合作是最重要的,Jbuilder就提供了團(tuán)隊(duì)開發(fā)能力,可以集成多種版本控制產(chǎn)品,方便了不同層次的用戶使用。</p><p>  Jbuilder是按照SUN公司提供J2EE標(biāo)準(zhǔn)來構(gòu)筑的,它是一個(gè)遵循J2EE標(biāo)準(zhǔn)的可視化集成開發(fā)環(huán)境,目前在業(yè)界具有廣泛的用戶,成為一個(gè)處于市場(chǎng)領(lǐng)先地位的跨平臺(tái)環(huán)境,主要用于構(gòu)建一些具有行業(yè)實(shí)力的企業(yè)Java小程序,如為企業(yè)信息化而產(chǎn)生的客戶前臺(tái)瀏覽

29、界面,為特定的用戶開發(fā)一些專業(yè)的程序包和特定的類庫。</p><p>  JBuilder繼承了Borland公司開發(fā)工具系列的優(yōu)秀特性,繼承了許多Delphi和C++ Builder產(chǎn)品的優(yōu)秀特性,這使得用過這兩種產(chǎn)品的用戶很容易的就可以過渡到JBuilder的開發(fā)環(huán)境當(dāng)中,熟練的開發(fā)出高質(zhì)量的Java程序。在JBuilder這個(gè)開發(fā)環(huán)境中實(shí)際上包含了用戶在Java集成開發(fā)環(huán)境中所需要的一切東西。包括對(duì)常用的面

30、向?qū)ο笳Z言UML建模工具的支持。我們可以在這個(gè)環(huán)境下對(duì)系統(tǒng)進(jìn)行建模,進(jìn)行系統(tǒng)調(diào)試,對(duì)系統(tǒng)進(jìn)行打包發(fā)布。</p><p>  SQL Server 在管理企業(yè)信息方面最靈活和最經(jīng)濟(jì)高效。在盡可能提高服務(wù)質(zhì)量的同時(shí)削減了管理成本。除極大地提高質(zhì)量和性能以外,SQL Server作為微軟公司的數(shù)據(jù)庫產(chǎn)品,能夠和絕大多數(shù)建立在Windows XP平臺(tái)上的軟件兼容,具有很強(qiáng)的兼容性,并且SQL Server本身功能也十分強(qiáng)

31、大,其中還有SQL查詢分析器、SQL Server 服務(wù)管理器、企業(yè)管理器等功能強(qiáng)大的工具,所以我選擇SQL Server作為我們的的后臺(tái)數(shù)據(jù)庫。</p><p>  1.3.3 準(zhǔn)備工作</p><p>  JDBC(Java Database Connectivity,Java數(shù)據(jù)庫連接性)是一種可用于執(zhí)行SQL語句的Java API(Application Programming I

32、nterface,應(yīng)用程序設(shè)計(jì)接口)。</p><p>  它由一些Java語言編寫的類和接口組成。JDBC給數(shù)據(jù)庫應(yīng)用開發(fā)人員、數(shù)據(jù)庫前臺(tái)工具開發(fā)人員提供了一種標(biāo)準(zhǔn)的應(yīng)用程序設(shè)計(jì)接口,使開發(fā)人員可以用純Java語言編寫完整的數(shù)據(jù)庫應(yīng)用程序。</p><p>  通過使用JDBC,開發(fā)人員可以很方便地將SQL語句傳送給幾乎任何一種數(shù)據(jù)庫。不但如此,使用Java編寫的應(yīng)用程序可以在任何支持J

33、ava的平臺(tái)上運(yùn)行,不必在不同的平臺(tái)上編寫不同的應(yīng)用。</p><p>  在Java語言中的JDBC API主要用來連接數(shù)據(jù)庫和直接調(diào)用SQL命令執(zhí)行各種SQL語句,使用JDBC API可以很容易地把SQL語句傳送到任何關(guān)系型數(shù)據(jù)庫中,利用JDBC API可以執(zhí)行一般的SQL語句、動(dòng)態(tài)SQL語句以及帶IN和OUT參數(shù)的存儲(chǔ)過程。JDBC API是數(shù)據(jù)庫應(yīng)用的基礎(chǔ),它建立了Java語言數(shù)據(jù)庫應(yīng)用程序同各種不同數(shù)據(jù)

34、庫的溝通機(jī)制。</p><p>  由于我使用的是SQL Server 2000數(shù)據(jù)庫系統(tǒng),在使用JBuilder連接SQL Server數(shù)據(jù)庫之前首先要進(jìn)行數(shù)據(jù)庫連接,這就需要安裝驅(qū)動(dòng)程序,在這里采用Microsoft SQL Server 2000 Driver for JDBC驅(qū)動(dòng)來進(jìn)行SQL Server和系統(tǒng)的連接。由于SQL Server 2000版本比較低,需要安裝補(bǔ)丁Microsoft SQL S

35、erver 2000 sp3的chs_sql2ksp3.exe安裝文件。這一切完成之后就可以為JBuilder 2006配置JDBC驅(qū)動(dòng)了,只有把這些前期工作完成之后才可以對(duì)JBuilder和數(shù)據(jù)庫進(jìn)行連接,因此是很必要的。</p><p><b>  2 系統(tǒng)分析</b></p><p>  2.1 系統(tǒng)需求分析</p><p>  經(jīng)過前面

36、的初步調(diào)研分析,總結(jié)出物流的倉庫管理工作具有以下特點(diǎn):</p><p>  在倉庫管理中存在帳目品種雜、重復(fù)次數(shù)多的問題,如果倉庫對(duì)所有信息的管理均以手工完成,即由資料管理員以各種記錄臺(tái)帳方式完成信息的登記,在需要某種信息的時(shí)候查找臺(tái)帳記錄,很明顯,這種工作方法效率低下,信息保存的準(zhǔn)確性、安全性難以保證,信息查詢的快速性、完整性也難以保證,致使管理工作費(fèi)人,費(fèi)時(shí),費(fèi)力,繁瑣枯燥,效率低下[6]。</p>

37、;<p>  因此實(shí)現(xiàn)倉庫管理的計(jì)算機(jī)化迫在眉睫, 本系統(tǒng)是集倉庫管理、貨物管理、倉庫貨物進(jìn)出庫管理、客戶統(tǒng)計(jì)、進(jìn)出庫統(tǒng)計(jì)等功能于一體的綜合性倉儲(chǔ)管理系統(tǒng)。支持多種類型的入庫、出庫、補(bǔ)貨方式,同時(shí)支持多種查詢方式和全面的日志管理,因此可應(yīng)用于物流業(yè)的單體倉庫精細(xì)化管理。</p><p>  可以輕松解決物流企業(yè)在倉庫管理、貨物流動(dòng)分析等一系列問題,迅速提高物流企業(yè)對(duì)倉庫經(jīng)營管理水平、穩(wěn)固客戶群,增加

38、經(jīng)濟(jì)效益,以最小的投資獲得雙盈的優(yōu)秀管理。幫助生產(chǎn)企業(yè)、分公司、分銷商、代理商、商場(chǎng)、商店等之間建立起一套完善、高效、具有快速反應(yīng)能力和管理能力的業(yè)務(wù)平臺(tái),可以極大的提高企業(yè)競(jìng)爭(zhēng)力,為企業(yè)創(chuàng)造價(jià)值。</p><p>  2.2 系統(tǒng)功能分析</p><p>  本系統(tǒng)是針對(duì)物流業(yè)倉庫的貨物信息和出入庫記錄進(jìn)行管理,倉庫管理系統(tǒng)的核心在于貨物入庫、貨物出庫和庫存管理三者,因此倉庫管理系統(tǒng)的用

39、戶包括倉庫管理員和系統(tǒng)管理員。</p><p>  倉庫管理系統(tǒng)主要完成貨物倉庫的庫存管理,由于倉庫管理設(shè)計(jì)的功能較多,在這里我設(shè)計(jì)的是一個(gè)簡單的倉庫管理系統(tǒng),主要包括系統(tǒng)登錄、系統(tǒng)主界面、貨物庫存信息查詢、貨物入庫登記、貨物出庫登記、貨物移庫登記、業(yè)務(wù)信息管理等7個(gè)功能模塊:</p><p>  系統(tǒng)登錄:在倉庫管理系統(tǒng)中,登錄模塊是非常重要的,它是整個(gè)倉庫管理系統(tǒng)的基礎(chǔ),只有通過了此登

40、錄界面的認(rèn)可,才能夠進(jìn)入庫存管理系統(tǒng)。正確的執(zhí)行庫存管理的功能。登錄部分實(shí)現(xiàn)對(duì)倉管員登錄的驗(yàn)證、標(biāo)志,從而為相對(duì)應(yīng)用戶的操作提供依據(jù)。</p><p>  系統(tǒng)主界面:該模塊實(shí)現(xiàn)系統(tǒng)的主界面功能,在這個(gè)界面中可以進(jìn)入倉庫管理系統(tǒng)的全部分支功能子界面。包括倉管員信息界面、貨物入庫登記界面、貨物出庫登記界面、貨物移庫登記界面、供應(yīng)商和客戶商信息界面等等一些界面。</p><p>  貨物庫存信

41、息查詢:倉管員登錄就能看到系統(tǒng)主界面顯示的的庫存信息,還可以按照各種情況對(duì)貨物的庫存信息進(jìn)行查詢。這樣能方便快速地了解貨物的情況,進(jìn)而快速地解決貨物的流通。</p><p>  貨物入庫登記:入庫登記也是倉庫管理系統(tǒng)的主要功能模塊,當(dāng)一個(gè)公司的倉庫進(jìn)貨時(shí),通常需要進(jìn)入這個(gè)表格的填寫界面,輸入正確的貨物信息,完成貨物信息的錄入。倉管員負(fù)責(zé)對(duì)貨物入庫信息的管理,通過修改已有貨物的信息和添加新貨物的信息來進(jìn)行操作。&l

42、t;/p><p>  貨物出庫登記:出庫信息是和入庫信息管理相對(duì)應(yīng)的系統(tǒng)界面,當(dāng)一個(gè)公司將自己的產(chǎn)品推銷出去時(shí),就要進(jìn)入這個(gè)表格的填寫界面,輸入正確的貨物信息,完成貨物信息的錄入。倉管員負(fù)責(zé)對(duì)貨物出庫信息的管理,倉管員可以查看貨物詳細(xì)信息,以及進(jìn)行貨物搜索操作。</p><p>  貨物移庫登記:移庫是對(duì)已有貨物的信息進(jìn)行修改的一個(gè)操作,在貨物位置需要調(diào)整時(shí),倉管員對(duì)相應(yīng)的移庫操作進(jìn)行貨物信息

43、的修改。</p><p>  業(yè)務(wù)信息:這個(gè)功能模塊的設(shè)定是為公司的企業(yè)業(yè)務(wù)發(fā)展需要而設(shè)立的,它和公司的供貨單位、信息登記模塊一起,組成公司業(yè)務(wù)模塊。</p><p>  以上是用戶對(duì)系統(tǒng)的基本的功能要求,此外還要求系統(tǒng)的效率要高,查詢速度要快,比較小的冗余,易維護(hù),具有較高的數(shù)據(jù)安全性。</p><p>  2.3 數(shù)據(jù)庫需求分析</p><p

44、>  在庫存管理系統(tǒng)中包括貨物、倉庫庫位、倉管員、職工、供應(yīng)商、客戶商等等實(shí)體。其中倉管員屬于職工的一種,每個(gè)庫位都屬于某個(gè)倉庫。系統(tǒng)的核心關(guān)系是庫存移動(dòng),庫存移動(dòng)包括貨物出入庫和貨物移庫等操作。涉及到某個(gè)職工作為外部的經(jīng)手人,每次庫存移動(dòng)都必然有貨物的來源供應(yīng)商和去向客戶商。作為一個(gè)簡化的模型,沒有考慮貨物的來源和去向涉及到組織意外的部門和人員的情況。具體實(shí)體貨物信息分析如下:</p><p>  貨物:

45、貨物代碼、貨物名稱、貨物類型、存放庫位、庫存總量、計(jì)量單位、入庫單價(jià)、入庫時(shí)間、供應(yīng)商、備注。</p><p>  倉庫庫位:倉庫代碼、倉庫名稱、庫位代碼、庫位名稱、貨物類型、倉庫容量、備注。</p><p>  倉管員:ID號(hào)、姓名、登錄密碼、姓名、聯(lián)系電話。</p><p>  客戶信息:客戶代碼、客戶名稱、聯(lián)系人、聯(lián)系電話、聯(lián)系地址、電子郵箱。</p&g

46、t;<p>  貨物類型:類型代碼、類型名稱。</p><p>  部門信息:部門代碼、部門名稱。</p><p>  入庫單:入庫單編號(hào)、貨物名稱、存放倉庫、入庫時(shí)間、入庫數(shù)量、入庫單價(jià)、供應(yīng)商、經(jīng)辦人。</p><p>  出庫單:出庫單編號(hào)、貨物名稱、存放倉庫、出庫時(shí)間、出庫數(shù)量、出庫單價(jià)、客戶商、經(jīng)辦人。</p><p>

47、;  移庫單:移庫單編號(hào)、貨物名稱、原庫位名稱、現(xiàn)庫位名稱、移庫時(shí)間、移庫數(shù)量、經(jīng)辦人。</p><p><b>  3 系統(tǒng)總體設(shè)計(jì)</b></p><p><b>  3.1 數(shù)據(jù)庫設(shè)計(jì)</b></p><p>  3.1.1實(shí)體關(guān)系圖(E-R圖)設(shè)計(jì)</p><p>  根據(jù)上面需求分析可知,

48、庫存管理系統(tǒng)主要涉及三個(gè)實(shí)體類型,包括:公司的相關(guān)職工、公司的貨物、倉庫管理系統(tǒng)的系統(tǒng)界面,這三類共同構(gòu)成系統(tǒng)的相關(guān)參與類型[2]。</p><p>  三個(gè)關(guān)系類型:一個(gè)是相關(guān)職工和貨物信息之間的關(guān)系是m:n;一個(gè)是系統(tǒng)界面和貨物信息之間的關(guān)系1:n;最后一個(gè)是相關(guān)職工和系統(tǒng)界面之間的關(guān)系1:n。</p><p>  從而得出的實(shí)體有倉管員信息實(shí)體、貨物實(shí)體、倉庫庫位實(shí)體、庫存實(shí)體。各個(gè)

49、實(shí)體的E—R圖及其關(guān)系描述如下</p><p>  圖1 倉管員實(shí)體關(guān)系圖</p><p>  圖2 貨物實(shí)體關(guān)系圖</p><p>  圖3 倉庫庫位實(shí)體關(guān)系圖</p><p>  圖4 庫存實(shí)體關(guān)系圖</p><p>  圖5 倉庫管理系統(tǒng)實(shí)體關(guān)系圖</p><p>  圖6 實(shí)體間的實(shí)體關(guān)

50、系圖</p><p>  3.1.2 數(shù)據(jù)流圖</p><p>  數(shù)據(jù)流圖表達(dá)了數(shù)據(jù)和處理的關(guān)系,是描述系統(tǒng)的邏輯模型的,圖中沒有任何具體的物理元素,只是描述信息在系統(tǒng)中流動(dòng)和處理的情況,它比口頭與文字的描述更直觀地顯示出來系統(tǒng)中數(shù)據(jù)的使用。</p><p>  數(shù)據(jù)流圖簡稱DFD圖,數(shù)據(jù)流圖有四種成分:源點(diǎn)或終點(diǎn)、處理、數(shù)據(jù)存儲(chǔ)表和數(shù)據(jù)流。圖中沒有任何具體的物理

51、元素,只是描述信息在系統(tǒng)中的流動(dòng)和處理情況,即使不是專業(yè)的計(jì)算機(jī)技術(shù)人員也容易理解,是極好的理解工具。它能精確的描述系統(tǒng)的邏輯模型,描述數(shù)據(jù)在管理信息系統(tǒng)中有輸入經(jīng)過存儲(chǔ)、加工處理最后輸出的全過程,是設(shè)計(jì)者和用戶交流的很好的工具。根據(jù)用戶的需求分析和倉庫管理系統(tǒng)的需求,得出如下圖7所示的倉庫管理數(shù)據(jù)流圖。</p><p>  圖7 倉庫管理系統(tǒng)數(shù)據(jù)流圖</p><p>  3.1.3 創(chuàng)建

52、數(shù)據(jù)庫</p><p>  數(shù)據(jù)庫的創(chuàng)建主要是邏輯結(jié)構(gòu)設(shè)計(jì)和物理結(jié)構(gòu)設(shè)計(jì)的結(jié)果,在計(jì)算機(jī)系統(tǒng)上建立實(shí)際的數(shù)據(jù)庫結(jié)構(gòu)、導(dǎo)入數(shù)據(jù)并進(jìn)行程序的調(diào)試。它相當(dāng)于軟件工程中的代碼編寫和程序調(diào)試的階段。在SQL Server 2000中生成了如下所示的表。</p><p>  貨物屬性表記錄倉庫管理所有貨物的各種參數(shù)和相關(guān)信息[8]。在系統(tǒng)中只有管理員能對(duì)貨物屬性進(jìn)行刪除、插入、更新。詳細(xì)信息見表1。&

53、lt;/p><p><b>  表1 貨物屬性表</b></p><p>  倉庫信息表保存了一個(gè)組織所有倉庫的名稱和所有倉庫中的相關(guān)信息。倉庫和倉庫庫存信息的變更也只能由倉管員進(jìn)行操作。本表的主鍵應(yīng)該是倉庫代碼,但是為了保證主鍵的唯一性,新增了一個(gè)字段倉庫庫位代碼,這樣的倉庫庫位代碼也唯一決定了一個(gè)庫位,同時(shí)在其他表中需要使用倉庫庫位信息的字段也可以使用倉庫庫位代碼,詳

54、細(xì)信息見表2。</p><p>  倉管員信息表保存了所有倉管員的信息,在庫存管理系統(tǒng)中需要使用倉管員信息表,這個(gè)系統(tǒng)是簡化了的管理系統(tǒng),只設(shè)定倉管員為唯一使用倉庫管理系統(tǒng)的職工,所以就不設(shè)定權(quán)限,也就是所有的倉管員都可以使用系統(tǒng)中的各種功能,其詳細(xì)信息見表3。</p><p>  客戶信息表保存了所有供貨商和客戶商的信息,在庫存管理系統(tǒng)中需要使用供貨商和客戶商信息表來補(bǔ)充貨物的信息,也方

55、便倉庫的管理運(yùn)作??蛻粜畔压?yīng)商和客戶商的信息都集合到一個(gè)表,這樣做的原因是,有些供貨商同時(shí)也可能是客戶商,為了消除冗余,把所有的客戶都記錄到一張表上。詳細(xì)信息見表4。</p><p><b>  表2 倉庫信息表</b></p><p><b>  表3 倉管員信息表</b></p><p>  貨物類型是指明貨物所屬

56、的類別,有時(shí)候倉庫里要存儲(chǔ)的貨物很多,類別不一,貨物類型表的創(chuàng)建可以先存儲(chǔ)各種貨物類型,在添加新貨物的時(shí)候,只需在貨物類型表里選取就可以,大大方便了貨物入庫的效率。貨物類型表的詳細(xì)信息入表5。</p><p>  入庫單主要保存所有的入庫操作,包括貨物名稱、倉庫名稱、入庫時(shí)間、入庫數(shù)量等,入庫單便于倉管員對(duì)入庫貨物的查詢,保證貨物的保存正確,而且也保證了入庫貨物的保存安全,對(duì)之后的出庫操作、移庫操作都有很大的幫助

57、,詳細(xì)信息見表6。</p><p>  出庫單起著和和入庫單一樣的功效,方便記錄所有的貨物出庫操作,從而方便對(duì)數(shù)據(jù)的統(tǒng)計(jì),便于更新貨物的數(shù)量,同時(shí)也是一項(xiàng)對(duì)貨物操作的安全保證。主要包括了貨物名稱、倉庫名稱、出庫時(shí)間、出庫數(shù)量等。詳細(xì)信息見表7。</p><p><b>  表4 客戶信息表</b></p><p><b>  表5 貨

58、物類型表</b></p><p><b>  表6 入庫單表</b></p><p>  和出庫單的重要性一樣,移庫單的建立也是為了保證貨物操作的安全,同時(shí)也便于貨物出庫等操作,主要包含的信息是貨物名稱、庫位名稱、移庫時(shí)間、移庫數(shù)量。移庫單的詳細(xì)信息見表8。</p><p>  數(shù)據(jù)庫試運(yùn)行合格后,數(shù)據(jù)庫開發(fā)工作就基本完成,即可投入

59、正式運(yùn)行了。但是,由于應(yīng)用環(huán)境在不斷變化,數(shù)據(jù)庫運(yùn)行過程中物理存儲(chǔ)也會(huì)不斷變化,對(duì)數(shù)據(jù)庫設(shè)計(jì)進(jìn)行評(píng)價(jià)、調(diào)整、修改等維護(hù)工作是一個(gè)長期的任務(wù),也是設(shè)計(jì)工作的繼續(xù)和提高。</p><p><b>  表7 出庫單表</b></p><p><b>  表8 移庫單表</b></p><p>  在數(shù)據(jù)庫運(yùn)行階段,對(duì)數(shù)據(jù)庫經(jīng)常性

60、的維護(hù)工作主要是由DBA(Database Administrator)完成的,包括:</p><p> ?。?)數(shù)據(jù)庫的轉(zhuǎn)儲(chǔ)和恢復(fù)——DBA要針對(duì)不同的應(yīng)用要求制定不同的轉(zhuǎn)儲(chǔ)計(jì)劃,一保證一旦發(fā)生故障能盡快將數(shù)據(jù)庫恢復(fù)到某種一致的狀態(tài),并盡可能減少對(duì)數(shù)據(jù)庫的破壞。</p><p> ?。?)數(shù)據(jù)庫的安全性、完整性控制——DBA根據(jù)實(shí)際情況修改原有的安全性控制和數(shù)據(jù)庫的完整性約束條件,以滿足

61、用戶要求。</p><p> ?。?)數(shù)據(jù)庫性能的監(jiān)督、分析和改造——在數(shù)據(jù)庫運(yùn)行過程中,DBA必須監(jiān)督系統(tǒng)運(yùn)行,對(duì)監(jiān)測(cè)數(shù)據(jù)進(jìn)行分析,找出改進(jìn)系統(tǒng)性能的方法。</p><p> ?。?)數(shù)據(jù)庫的重組織與重構(gòu)造——數(shù)據(jù)庫運(yùn)行一段時(shí)間后,由于記錄不斷增、刪、改,會(huì)使數(shù)據(jù)庫的物理存儲(chǔ)情況變壞,降低了數(shù)據(jù)的存取效率,數(shù)據(jù)庫性能下降,這時(shí)DBA就要對(duì)數(shù)據(jù)庫進(jìn)行重組織或部分重組織。</p>

62、<p><b>  3.2 系統(tǒng)設(shè)計(jì)</b></p><p>  3.2.1系統(tǒng)功能結(jié)構(gòu)圖</p><p>  系統(tǒng)的概要設(shè)計(jì)中最重要的就是系統(tǒng)的模塊化。模塊化是指解決一個(gè)復(fù)雜問題時(shí)自項(xiàng)向下逐層把軟件系統(tǒng)劃分成若干個(gè)模塊的過程。每個(gè)模塊完成一個(gè)特定的功能,所有的模塊按某種方法組織起來,成為一個(gè)整體,完成整個(gè)系統(tǒng)所要求的功能。根據(jù)系統(tǒng)功能的需求分析和企業(yè)倉

63、庫管理的特點(diǎn),經(jīng)過模塊化的分析得到系統(tǒng)功能模塊結(jié)構(gòu)圖。</p><p><b>  圖8系統(tǒng)功能結(jié)構(gòu)圖</b></p><p>  將系統(tǒng)劃分為多個(gè)模塊是為了降低軟件系統(tǒng)的復(fù)雜性,提高可讀性、可維護(hù)性,但模塊的劃分不能是任意的,應(yīng)盡量保持其獨(dú)立性。也就是說,每個(gè)模塊只完成系統(tǒng)要求的獨(dú)立的子功能,并且與其他模塊的聯(lián)系最少且接口簡單,即盡量做到高內(nèi)聚低耦合,提高模塊的獨(dú)立

64、性,為設(shè)計(jì)高質(zhì)量的軟件結(jié)構(gòu)奠定基礎(chǔ)。</p><p>  系統(tǒng)功能結(jié)構(gòu)圖詳細(xì)信息如圖8所示。</p><p>  3.2.2 業(yè)務(wù)流程圖</p><p><b>  圖9 業(yè)務(wù)流程圖</b></p><p>  程序流程圖又稱為程序框圖,它是歷史悠久使用最廣泛的描述軟件設(shè)計(jì)的方法。該系統(tǒng)的程序流程圖如圖9所示:</

65、p><p>  4 系統(tǒng)功能模塊設(shè)計(jì)</p><p><b>  4.1 登陸模塊</b></p><p>  在倉庫管理系統(tǒng)中,登錄界面是非常重要的,它是整個(gè)倉庫管理系統(tǒng)的基礎(chǔ),只有通過此登錄界面的認(rèn)可,才能夠進(jìn)入庫存管理系統(tǒng),正確的執(zhí)行庫存管理的功能[3]。對(duì)應(yīng)的界面如圖10所示。</p><p><b>  

66、圖10 登錄界面</b></p><p>  在此窗口中倉管員必須輸入正確的姓名和密碼,才能進(jìn)入系統(tǒng)主界面,事先將倉管員的姓名和密碼以及ID號(hào)存在一個(gè)SQL Server數(shù)據(jù)庫倉管員中,當(dāng)倉管員登錄系統(tǒng)時(shí),系統(tǒng)將用戶輸入的姓名和密碼與數(shù)據(jù)庫中事先存放的姓名和密碼進(jìn)行比較,如果相同,則進(jìn)入系統(tǒng)主界面,否則提示用戶輸入錯(cuò)誤或者提示此用戶不存在。</p><p>  4.2 倉庫管理

67、系統(tǒng)模塊</p><p>  4.2.1 倉庫管理系統(tǒng)主界面模塊</p><p>  在系統(tǒng)主界面中,可以完成此系統(tǒng)的全部功能,包括貨物信息查詢,貨物入庫信息登記處理,貨物出庫信息登記處理,貨物移庫登記處理,業(yè)務(wù)信息查詢等等一些界面。系統(tǒng)設(shè)計(jì)目標(biāo)是通過一系列菜單驅(qū)動(dòng)來完成相應(yīng)的子界面創(chuàng)建和管理。</p><p>  如圖11所示,在倉庫管理系統(tǒng)中,主要包括以下幾個(gè)方

68、面的功能模塊,其中每個(gè)功能模塊又分別由2~3個(gè)功能來完成。</p><p>  在庫存管理模塊中,主要包括倉庫盤存和退出系統(tǒng)兩個(gè)功能。在入庫管理模塊中,主要包括入庫登記管理功能。在出庫管理模塊中,主要包括出庫登記管理功能。在業(yè)務(wù)信息模塊中,主要包括具體經(jīng)辦人和倉庫信息統(tǒng)計(jì)兩個(gè)功能。在業(yè)務(wù)單位模塊中,包括供貨商和客戶商兩個(gè)功能。選擇不同的菜單進(jìn)入不同的庫存管理子界面,完成相應(yīng)的功能系統(tǒng)主界面采用Java中的Fram

69、e技術(shù)。</p><p>  圖11 倉庫管理系統(tǒng)主界面</p><p>  4.2.2 入庫登記模塊</p><p>  圖12 入庫登記界面</p><p>  入庫登記模塊也是倉庫管理系統(tǒng)的主要功能模塊,當(dāng)一個(gè)公司的倉庫進(jìn)貨時(shí),我們通常需要進(jìn)入這個(gè)表格填寫界面,輸入正確的貨物信息,完成貨物信息的錄入,對(duì)應(yīng)的倉庫入庫登記信息子界面,如圖1

70、2所示。在倉庫管理系統(tǒng)入庫登記信息主界面中,必須輸入正確的入庫登記信息,包括入庫日期和入庫單號(hào),以及貨物代碼、庫存數(shù)量、供貨客戶和經(jīng)辦人信息等一些關(guān)于貨物入庫的詳細(xì)信息。</p><p>  4.2.3 出庫登記模塊</p><p>  出庫登記是和入庫登記相對(duì)應(yīng)的系統(tǒng)模塊,當(dāng)一個(gè)公司將自己的產(chǎn)品銷售出去的時(shí)候,就要進(jìn)入這個(gè)系統(tǒng)界面來完成對(duì)公司產(chǎn)品出庫信息進(jìn)行詳細(xì)的記錄,這個(gè)也是倉庫管理系

71、統(tǒng)的重要功能之一。對(duì)應(yīng)的系統(tǒng)界面如圖13所示。</p><p>  在倉庫管理系統(tǒng)的出庫登記信息主界面中,必須輸入正確的出庫登記信息,包括出庫日期和出庫單號(hào),以及貨物代碼、出庫數(shù)量、收貨單位和經(jīng)辦人信息等一些關(guān)于貨物出庫的詳細(xì)信息。</p><p>  圖13 出庫登記界面</p><p>  4.2.4 移庫登記模塊</p><p>  移

72、庫登記模塊也是系統(tǒng)管理的一個(gè)重要模塊,當(dāng)貨物的性質(zhì)發(fā)生變化,或者倉庫位置需要改動(dòng)的時(shí)候,貨物想相關(guān)信息也需要改變,這時(shí)就要進(jìn)行貨物移庫處理,進(jìn)行移庫登記,方便改動(dòng)相關(guān)的貨物信息。對(duì)應(yīng)的系統(tǒng)界面如圖14所示。</p><p>  在倉庫管理系統(tǒng)的移庫登記信息主界面中,必須輸入正確的移庫登記信息,包括移庫日期和移庫單號(hào),以及貨物代碼、移庫數(shù)量、原倉庫信息和移庫的倉庫信息等一些關(guān)于貨物移庫的詳細(xì)信息。</p>

73、;<p>  圖14 移庫登記界面</p><p>  4.2.5 業(yè)務(wù)單位信息模塊</p><p>  圖15 供應(yīng)商信息界面</p><p>  這個(gè)模塊包括兩個(gè)功能模塊:一個(gè)是供貨單位信息的統(tǒng)計(jì),一個(gè)是收貨單位信息的統(tǒng)計(jì)。這兩個(gè)功能模塊的實(shí)現(xiàn)方法基本相似,在此重點(diǎn)介紹供貨單位信息模塊的實(shí)現(xiàn)。在本次系統(tǒng)開發(fā)中,用到的供貨單位信息界面如圖15所示。&

74、lt;/p><p>  倉庫管理系統(tǒng)中的供貨單位信息用來統(tǒng)計(jì)公司倉庫和公司有業(yè)務(wù)來往的企業(yè)信息,通過這些信息的正確統(tǒng)計(jì),可以幫助企業(yè)建立一個(gè)豐富的企業(yè)信息資料庫,為公司以后業(yè)務(wù)的順利展開服務(wù),提高公司的業(yè)務(wù)業(yè)績。在系統(tǒng)供貨商信息登記表中,主要完成的功能是等級(jí)供貨單位的信息。方便公司業(yè)務(wù)的開展,是倉庫管理系統(tǒng)的重要功能之一。</p><p>  4.2.6 業(yè)務(wù)查看模塊</p>&

75、lt;p>  圖16 入庫單信息查看</p><p>  業(yè)務(wù)查看模塊是倉庫管理系統(tǒng)的重要管理模塊,主要有三個(gè)模塊組成,分別是倉庫貨物入庫單、出庫單和移庫單統(tǒng)計(jì)的功能。在這里,重點(diǎn)介紹入庫單信息模塊。這個(gè)模塊的主要功能就是記錄倉庫貨物入庫所有單張的詳細(xì)信息,包括不同日期、不同貨物、不同經(jīng)辦人所辦理的入庫單張的一些詳細(xì)信息。詳細(xì)如圖16所示。</p><p>  在系統(tǒng)倉庫經(jīng)辦人員信息

76、登記模塊中,主要功能是顯示所有相關(guān)貨物入庫單的信息,方便公司業(yè)務(wù)的查看與修改,是倉庫管理系統(tǒng)的重要功能之一。</p><p><b>  5 系統(tǒng)實(shí)現(xiàn)</b></p><p>  由于實(shí)現(xiàn)這個(gè)系統(tǒng)的軟件是JBuilder 2006,主要的編程語言是Java語言,數(shù)據(jù)庫實(shí)現(xiàn)語言是SQL(Structured Query Language)。實(shí)現(xiàn)過程主要圍繞這些編程知識(shí)進(jìn)

77、行,同時(shí)也圍繞交互界面友好這個(gè)創(chuàng)建系統(tǒng)要素進(jìn)行。</p><p>  首先在JBuilder 2006主界面中創(chuàng)建一個(gè)命名為warehouse的工程,然后在該工程中創(chuàng)建一個(gè)命名為whApp的應(yīng)用程序和命名為login的Frame(框架),這時(shí)會(huì)自動(dòng)生成一個(gè)whApp.java文件和一個(gè)login.java文件。完成應(yīng)用程序的創(chuàng)建之后,分別創(chuàng)建主界面Frame、貨物入庫登記Frame、貨物出庫登記Frame等等操作

78、。當(dāng)運(yùn)行時(shí),系統(tǒng)首先運(yùn)行whApp.java文件,由whApp.java調(diào)用login.java,從而彈出登錄窗口。通過登錄窗口進(jìn)入系統(tǒng)主界面。然后在主界面可以通過菜單選項(xiàng)選擇相應(yīng)的功能模塊進(jìn)行系統(tǒng)管理,具體實(shí)現(xiàn)過程如下。</p><p>  5.1 建立與數(shù)據(jù)庫連接的類</p><p>  由于系統(tǒng)在每個(gè)頁面要使用數(shù)據(jù)的時(shí)候都要建立與數(shù)據(jù)庫的連接,則有很多代碼是重復(fù)的,這里我先建立一個(gè)連

79、接數(shù)據(jù)庫的類whConnect,然后在要使用數(shù)據(jù)庫的地方,創(chuàng)建一個(gè)whConnect對(duì)象即可。當(dāng)然,如果查詢或修改數(shù)據(jù)庫的工作在不同的頁面只是參數(shù)不同而已,也應(yīng)該建立一個(gè)Query類。這里只建立一個(gè)連接數(shù)據(jù)庫的類,這樣做的好處是,如果連接數(shù)據(jù)庫的用戶名或者密碼變化了,只需要修改這一個(gè)文件。</p><p>  下面首先來建立whConnect類,這里使用Class Wizard來創(chuàng)建應(yīng)用程序,實(shí)現(xiàn)步驟為:選擇fi

80、le→new菜單項(xiàng),雙擊Class圖標(biāo),在Class name中輸入whConnect,其他選擇默認(rèn)值,點(diǎn)擊finish即可創(chuàng)建一個(gè)新類。</p><p>  在新類的source頁面中添加代碼即可。具體如下:</p><p>  先在開始的位置添加的SQL包import java.sql,這是所有要使用到數(shù)據(jù)庫的java應(yīng)用程序都要添加的包,下面就不再重復(fù)敘述。</p>&

81、lt;p>  然后為每個(gè)調(diào)用該類的對(duì)象注冊(cè)驅(qū)動(dòng)程序:</p><p>  Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");</p><p>  在whConnect類中,創(chuàng)建一個(gè)連接數(shù)據(jù)庫的方法makeCon(),當(dāng)調(diào)用這個(gè)方法時(shí),系統(tǒng)將連接相應(yīng)的數(shù)據(jù)庫,并返回一個(gè)connection對(duì)象

82、:</p><p><b>  try{</b></p><p>  url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=warehouse";</p><p>  username="sa";</p><p> 

83、 password="sa";</p><p>  con=DriverManager.getConnection(url,username,password);//建立一個(gè)Connection對(duì)象}</p><p>  catch(SQLException e1){}</p><p>  return con;//返回一個(gè)Connetion對(duì)象

84、</p><p>  上面便是連接數(shù)據(jù)庫whConnect類所用到的主要語句。</p><p>  5.2 建立把彈出窗口置屏幕中央的類</p><p>  在調(diào)試的時(shí)候不難發(fā)現(xiàn),每個(gè)彈出的窗口都是出現(xiàn)在顯示屏屏幕的左上角的,為了使系統(tǒng)界面更友好,建立一個(gè)類來設(shè)定每個(gè)窗口顯示的時(shí)候都居于屏幕中央,其主要代碼為:</p><p>  Dimen

85、sion screenSize = Toolkit.getDefaultToolkit().getScreenSize();</p><p><b>  //捕捉屏幕尺寸</b></p><p>  Dimension frameSize = frame.getSize();</p><p>  if (frameSize.height >

86、; screenSize.height) {</p><p>  frameSize.height = screenSize.height;</p><p><b>  }</b></p><p>  if (frameSize.width > screenSize.width) {</p><p>  frame

87、Size.width = screenSize.width;</p><p><b>  }</b></p><p>  frame.setLocation((screenSize.width - frameSize.width) / 2,</p><p>  (screenSize.height - frameSize.height) / 2

88、);</p><p>  frame.setVisible(true);//顯示窗口</p><p>  5.3 登錄系統(tǒng)的實(shí)現(xiàn)</p><p>  在login模塊中,轉(zhuǎn)換到design頁面,在框架中建立基本的組件,這時(shí)在source面板會(huì)自動(dòng)生成相關(guān)的程序代碼,但是這些代碼并沒有實(shí)現(xiàn)相應(yīng)的功能,要使用監(jiān)聽器才能實(shí)現(xiàn)相應(yīng)的操作。在這里我的操作是,點(diǎn)擊“確定”按鈕,

89、然后實(shí)現(xiàn)登錄操作,因此在“確定”按鈕上要監(jiān)聽的內(nèi)容是:在用戶姓名和密碼不為空的情況下,把連接“倉管員”這個(gè)表,按照提交的姓名和密碼來查找,如果表中有查找結(jié)果,即說明用戶名合法,可以登錄系統(tǒng),否則反饋錯(cuò)誤信息。相關(guān)的代碼如下[1]:</p><p>  if(jTextField1.getText().length()!=0){//判斷是否輸入了姓名</p><p>  con=whConn

90、ect1.makeCon();//定義連接</p><p>  loginQuery="";</p><p>  passwordTemp="";</p><p>  for(int i=0;i<jPasswordField1.getPassword().length;i++)</p><p> 

91、 passwordTemp+=jPasswordField1.getPassword()[i];//提取用戶輸入的密碼</p><p>  loginQuery="SELECT 姓名,登錄密碼 FROM 職工 WHERE 姓名=?";</p><p>  pstmt=con.prepareStatement(loginQuery);</p><p&g

92、t;  pstmt.setString(1,jTextField1.getText());</p><p>  rs=pstmt.executeQuery();</p><p>  if((!rs.next())||rs.getString("登錄密碼")==null){</p><p>  JOptionPane.showMessageDial

93、og(this,"查無此人!","錯(cuò)誤",JOptionPane.ERROR_MESSAGE);</p><p>  jPasswordField1.setText("");</p><p><b>  }</b></p><p><b>  else{</b>&

94、lt;/p><p>  if(!rs.getString("登錄密碼").equals(passwordTemp))</p><p>  JOptionPane.showMessageDialog(this,"密碼錯(cuò)誤!","錯(cuò)誤",JOptionPane.ERROR_MESSAGE);</p><p>  j

95、PasswordField1.setText("");</p><p>  在whApp.java里面只是實(shí)現(xiàn)把登錄界面顯示出來,如果要主界面在登錄后顯示出來,需要添加代碼,把當(dāng)前的登錄界面關(guān)閉,并且顯示系統(tǒng)主界面框架。其代碼如下:</p><p>  mainFrame fr = new mainFrame();//mainFrame是系統(tǒng)主界面</p>

96、<p>  this.dispose();//把當(dāng)前登錄窗口關(guān)閉</p><p>  FrCenter FC = new FrCenter(fr);//把主界面置顯示屏中央顯示</p><p>  另外,為了方便使用鍵盤操作,添加鍵盤監(jiān)聽操作,使得在倉管員輸入密碼之后,按下ENTER鍵也能進(jìn)入系統(tǒng),主要代碼和按鈕監(jiān)聽操作一樣,只需要添加下面一個(gè)if語句:</p>

97、<p>  if (e.getKeyCode() == KeyEvent.VK_ENTER){};//判斷當(dāng)前鍵盤是否按下ENTER鍵</p><p>  5.4 系統(tǒng)主界面的實(shí)現(xiàn)</p><p>  由于主界面框架并不是在建立應(yīng)用程序的時(shí)候建立的,需要另外新建。具體步驟為:選擇file→new菜單項(xiàng),雙擊Frame圖標(biāo),在Frame name中輸入mainFrame,其他選擇默

98、認(rèn)值,點(diǎn)擊finish即可創(chuàng)建一個(gè)新框架。</p><p>  在design頁面設(shè)置好相關(guān)的組件后就要對(duì)代碼實(shí)現(xiàn)各種功能。菜單主要使用javax.swing.jMenuBar這個(gè)菜單組件來實(shí)現(xiàn),當(dāng)點(diǎn)擊菜單的相關(guān)功能選項(xiàng)之后,就通過菜單監(jiān)聽器來調(diào)用frCenter(Frame frame)類以顯示要連接的窗口并使之顯示在屏幕中央。各主界面顯示的功能實(shí)現(xiàn)如下:</p><p>  5.4.1

99、 貨物數(shù)據(jù)查詢</p><p>  在主界面有一個(gè)對(duì)貨物的詳細(xì)信息的查詢功能,首先使用jdbTable組件顯示所有貨物的信息,然后再根據(jù)需要查詢某些貨物的信息,本系統(tǒng)只給出三個(gè)查詢條件:貨物名稱、貨物所存放的倉庫名稱、貨物的類型。為了便于使用,查詢條件顯示所有已存在的數(shù)據(jù),用jComboBox這個(gè)組件來實(shí)現(xiàn),先把查詢條件相關(guān)的數(shù)據(jù)放到j(luò)ComboBox選項(xiàng)里,選定所需條件并點(diǎn)擊查詢按鈕后,jdbTable將更新顯

100、示相關(guān)的數(shù)據(jù)查詢結(jié)果。其中jComboBox的設(shè)置代碼為:</p><p>  queryStr1="SELECT distinct 貨物名稱 FROM dbo.貨物信息";//查詢語句</p><p>  stmt=con.createStatement();</p><p>  rs1=stmt.executeQuery(queryStr1)

101、;//進(jìn)行查詢</p><p>  jComboBox1.addItem("");//初始值為空,因?yàn)閿?shù)據(jù)表里有數(shù)據(jù)</p><p>  while(rs1.next()){</p><p>  String GName = rs1.getString("貨物名稱");//獲得相關(guān)列名的數(shù)據(jù)</p><p&

102、gt;  jComboBox1.addItem(GName);}//把數(shù)據(jù)放到j(luò)ComboBox里</p><p>  通過查詢條件更新數(shù)據(jù)表里的數(shù)據(jù),首先獲得當(dāng)前查詢條件,然后更新數(shù)據(jù)表,相關(guān)代碼如下:</p><p>  if(jComboBox1.getSelectedItem()!="")</p><p>  str1="SEL

103、ECT * FROM dbo.貨物信息 WHERE 貨物名稱='"+String.valueOf(jComboBox1.getSelectedItem())+"'";</p><p>  if(jComboBox2.getSelectedItem()!=""){</p><p>  if(str1!=""

104、)</p><p>  str1=str1+" OR 存放倉庫='"+String.valueOf(jComboBox2.getSelectedItem())+"'";</p><p><b>  else</b></p><p>  str1="SELECT * FROM db

105、o.貨物信息 WHERE 存放倉庫='"+String.valueOf(jComboBox2.getSelectedItem())+"'";}</p><p>  if(jComboBox3.getSelectedItem()!=""){</p><p>  if(str1!="")</p>

106、<p>  str1=str1+" OR 貨物類型='"+String.valueOf(jComboBox3.getSelectedItem())+"'";</p><p><b>  else</b></p><p>  str1="SELECT * FROM dbo.貨物信息 WHERE

107、 貨物類型='"+String.valueOf(jComboBox3.getSelectedItem())+"'";}</p><p>  queryDataSet1.close();</p><p>  queryDataSet1.setQuery(new QueryDescriptor(database1,str1, null, true,

108、 Load.ALL));</p><p>  jdbTable1.setDataSet(queryDataSet1);</p><p>  5.4.2 入庫登記實(shí)現(xiàn)</p><p>  與數(shù)據(jù)庫的連接原理跟前面一樣,都是通過輸入?yún)?shù),實(shí)現(xiàn)SQL語句。不同的是,這次是要向數(shù)據(jù)庫中插入新數(shù)據(jù)。如果貨物是有過記錄的,就是倉庫里還有同類的貨物,只是在數(shù)量上有所變化,則首先要

109、在貨物信息里選擇相關(guān)的信息,然后把庫存數(shù)量更改,這里主要用到的java函數(shù)是preparStatement.executeUpdate();如果貨物是新的,之前沒有過任何相關(guān)的數(shù)據(jù)記錄,則需要添加相應(yīng)的數(shù)據(jù),同樣也是用到前面的那個(gè)java函數(shù)。這個(gè)模板同樣也使用到方便實(shí)用的jComboBox組件把已有的貨物顯示到選項(xiàng)中,然后根據(jù)已有的貨物信息進(jìn)行更新操作。</p><p>  5.4.3 出庫登記實(shí)現(xiàn)</p

110、><p>  出庫登記模塊的實(shí)現(xiàn)跟入庫登記模塊的實(shí)現(xiàn)是基本一致的,主要是對(duì)出庫單進(jìn)行修改操作,這里主要是實(shí)現(xiàn)貨物庫存數(shù)量上的更改,使用到的java函數(shù)也是prepareStatement.executeUpdate()。關(guān)于貨物的信息完全不需要輸入,同樣使用方便實(shí)用的jComboBox組件把已有的貨物顯示到選項(xiàng)中,只需從已有的信息中選取則可,然后根據(jù)已有的貨物信息進(jìn)行更新操作。</p><p>

111、;  5.4.4 移庫登記實(shí)現(xiàn)</p><p>  移庫登記模塊的實(shí)現(xiàn)跟出庫登記模塊的實(shí)現(xiàn)主要是修改貨物所在倉庫的數(shù)據(jù),在移庫單里把現(xiàn)在所在的庫位的代碼和名稱轉(zhuǎn)換為要移到的倉庫庫位代碼和名稱,使用到的java函數(shù)也是prepareStatement.executeUpdate()。代碼跟前面的類似,這里就不重復(fù)了。</p><p>  5.4.5 業(yè)務(wù)信息實(shí)現(xiàn)</p><

112、;p>  業(yè)務(wù)信息包含的內(nèi)容主要有顯示業(yè)務(wù)信息和更改業(yè)務(wù)信息,顯示業(yè)務(wù)信息的方法跟在主界面上實(shí)現(xiàn)貨物的信息查詢功能是一樣的,當(dāng)有業(yè)務(wù)信息要更新時(shí),再添加相應(yīng)的業(yè)務(wù)信息。這里的業(yè)務(wù)信息是供貨商的信息和客戶商的信息,另外包含了倉庫職工的信息,在進(jìn)行入庫、出庫和移庫操作的時(shí)候,經(jīng)辦人可以是倉管員,也可以是倉庫其他職工,故把職工列為業(yè)務(wù)信息的一部分。</p><p>  首先在窗口中顯示目前的業(yè)務(wù)信息,當(dāng)有新的客戶

113、產(chǎn)生時(shí),就在相應(yīng)的位置插入新信息,主要用到的java函數(shù)也是prepareStatement.executeUpdate()。把相關(guān)數(shù)據(jù)插入到客戶信息表和職工信息表里。</p><p><b>  6 總結(jié)與展望</b></p><p><b>  6.1 總結(jié)</b></p><p>  本文研究了基于Borland公司

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論