畢業(yè)論文---基于bs模式的倉庫管理系統(tǒng)的設計與實現_第1頁
已閱讀1頁,還剩38頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p>  基于B/S模式的倉庫管理系統(tǒng)的設計與實現</p><p><b>  摘 要</b></p><p>  隨著企業(yè)管理信息化的發(fā)展,網絡及計算機的引入管理躍上了一個新的發(fā)展平臺。企業(yè)的各項管理都將向信息化方法拓展,倉庫的管理對于企業(yè)來說尤為重要。</p><p>  倉庫管理系統(tǒng)是一個企業(yè)不可缺少的部分,本系統(tǒng)

2、基于B/S模式開發(fā),主要實現商品入庫、商品出庫、商品補進、客戶管理、供應商管理等基本進銷存功能。</p><p>  本文主要闡述倉庫管理系統(tǒng)的可行性分析、需求分析、總體設計、詳細設計及系統(tǒng)測試。</p><p>  【關鍵詞】管理信息化 倉庫管理 B/S模式</p><p><b>  Abstract</b></p><

3、p>  Along with the enterprise management information of the development of computer network and the introduction of a new management leap development platform. The management of the enterprise will expand to the infor

4、mation method, warehouse management for enterprise is especially important.</p><p>  The warehouse management system is a enterprise essential part, its content for the decision makers and managers all very

5、important, so the warehouse management system should be able to provide users with sufficient information and the quick inquiry method. But people have since always used the traditional artificial means management produc

6、ts, this management way has many shortcomings, for example: efficiency is low, the secrecy is so poor. In addition, because time is long, will produce the mas</p><p>  Keywords: Management information; Wareh

7、ouse management;B/S model</p><p><b>  目 錄</b></p><p><b>  第1章 緒論1</b></p><p>  1.1 選題背景1</p><p>  1.2 選題意義1</p><p>  1.3 國內外發(fā)展

8、狀況2</p><p>  第2章 可行性分析3</p><p>  2.1 經濟可行性3</p><p>  2.2 技術可行性3</p><p>  2.3 操作可行性3</p><p>  第3章 需求分析4</p><p>  3.1 功能需求4</p>

9、<p>  3.2 數據需求5</p><p>  3.2 環(huán)境需求6</p><p>  第4章 系統(tǒng)總體設計7</p><p>  4.1 總體模塊圖7</p><p>  4.2 功能模塊設計7</p><p>  4.3 數據庫設計8</p><p>  第5章

10、 詳細設計15</p><p>  5.1 功能模塊設計15</p><p>  第6章 系統(tǒng)測試31</p><p>  6.1 系統(tǒng)測試概述31</p><p>  6.2 功能測試32</p><p><b>  總 結33</b></p><p>&

11、lt;b>  第1章 緒論</b></p><p><b>  1.1 選題背景</b></p><p>  20世紀,隨著全球經濟的蓬勃發(fā)展,眾多經濟學家紛紛提出了新的管理理論。20世紀50年代,西蒙提出管理依賴于信息和決策的思想。同時期的維納發(fā)表了控制論,他認為管理是一個控制過程。1958年,蓋爾寫到:“管理將以較低的成本得到及時準確的信息,

12、做到較好的控制。”這個時期,計算機開始用于會計工作,出現數據處理一詞。</p><p>  1970年,Walter T.Kennevan給剛剛出現的管理信息系統(tǒng)一詞下了一個定義:“以口頭或書面的形式,在合適的時間向經理、職員以及外界人員提供過去的、現在的、預測未來的有關企業(yè)內部及其環(huán)境的信息,以幫助他們進行決策?!痹谶@個定義里強調了用信息支持決策,但并沒有強調應用模型,沒有提到計算機的應用。</p>

13、<p>  1985年,管理信息系統(tǒng)的創(chuàng)始人,明尼蘇達大學的管理學教授Gordon B.Davis給了管理信息系統(tǒng)一個較完整的定義,即“管理信息系統(tǒng)是一個利用計算機軟硬件資源,手工作業(yè),分析、計劃、控制和決策模型以及數據庫的人-機系統(tǒng)。它能提供信息支持企業(yè)或組織的運行、管理和決策功能?!边@個定義全面地說明了管理信息系統(tǒng)的目標、功能和組成,而且反映了管理信息系統(tǒng)在當時達到的水平。</p><p>&l

14、t;b>  1.2 選題意義</b></p><p>  倉庫的管理業(yè)務是一項瑣碎、復雜而又十分細致的工作,一般不允許發(fā)生錯誤,手工進行工資發(fā)放工作,需要反復地進行抄寫、計算、不僅花費財務人員大量的時間,而且往往由于抄寫不慎,出現張冠李戴,活著由于計算的疏忽,經常出現入庫和出庫時間記錄錯誤等現象。目前,計算機在企業(yè)、高校等管理中應用的普及,利用計算機實現寵物領養(yǎng)的管理勢在必行。利用計算機來完成倉

15、庫管理的日常事務,即應用管理信息系統(tǒng)是適應現代要求、推動管理走向科學化、規(guī)范化的必要條件。</p><p>  系統(tǒng)用JSP語言來編寫并應用了J2EE的主流框架技術、 mysql5.0數據庫來存儲數據。本論文主要涉及軟件,數據庫與網絡技術等。涵蓋知識面廣,可有效地提高學生綜合運用所學知識分析解決問題的能力,增強學生對事物的理解與掌握能力,培養(yǎng)學生掌握科學的研究方法,正確的設計思想,獨立思考,勇于進取,探索創(chuàng)新,為

16、今后進一步學習與工作奠定了良好的基礎。</p><p>  倉庫管理的這種重復性、規(guī)律性、時間性,使得領養(yǎng)管理計算機化成為可能。計算機進行管理工作,不僅能夠保證管理工作準確無誤,快速輸出,而且還可以利用預定記錄進行各種信息進行統(tǒng)計,服務于各大企業(yè)的后勤部門,使會計人員從繁重的手工制作中解脫出來,提高了會記信息的及時性、正確性、全面性。大大提高了管理水平和管理效率,產生了絕大的經濟效益和社會效益。</p>

17、;<p>  1.3 國內外發(fā)展狀況</p><p>  隨著我國信息化浪潮的日益臨近,網絡資源方面的管理機制正在發(fā)生著天翻地覆的變化。不論是企業(yè)還是個人,想要在激烈的市場競爭環(huán)境下求得生存的機會,就必須有效地利用人才、時間、信息結合的優(yōu)勢,就必須有效地進行企業(yè)內部改革和加強企業(yè)管理。借助現代信息技術和管理理論,倉庫管理系統(tǒng)是勢在必行的。</p><p>  20世紀40年代

18、初期,西方經濟學家通過對庫存物料隨時間推移而被使用和消耗的規(guī)律研究,提出了訂貨點的方法和理論,并將其應用到企業(yè)的庫存計劃管理中。20世紀60年代中期,美國IBM公司的管理專家約瑟夫奧利佛博士首先提出了獨立需求和相關需求的概念,將企業(yè)內的物料分成獨立需求和相關需求物料兩種類型,由此形成了基本MRP。這種理論和方法與傳統(tǒng)的庫存理論和方法有著明顯的不同。其最主要的特點是:在傳統(tǒng)的基礎上引入了時間分段和反映產品結構的物料清單BOM(Bill O

19、f Materials),較好的解決了庫存管理和生產控制中的難題,即按時按量的到所需要的物料。以加強物料的計劃與控制,最大限度地降低庫存量、減少資金占用和滿足企業(yè)生產為目標,基于按需采購方式的企業(yè)生產與庫存管理方法。接下來是制造資源計劃( MRPII, Manufacturing Resources Planning )是一種20世紀70年代末期的,以企業(yè)資源優(yōu)化配置,確保企業(yè)連續(xù)、均衡的進行生產,實現信息流、物流與資金流的有機集成和提

20、高企業(yè)整體水平為目標,以計劃與控制為主線,面向企業(yè)產、供、銷、財的現代企業(yè)管理思想和方法。</p><p>  最后,就是企業(yè)資源計劃( ERP,Enterprise Resources Planning )是一種20世紀90年代初期的,以市場和客戶需求為導向,以實行企業(yè)內外資源優(yōu)化配置,消除生產經營過程中一切無效的勞動和資源,實現信息流、物流、資金流、價值流和業(yè)務流的有機集成和提高客戶滿意度為目標,以計劃與控制

21、為主線,以網絡和信息技術為平臺,集客戶、市場、銷售、采購、計劃、生產、財務、質量、服務、信息集成和業(yè)務流程重組( BPR,Business Process Reengineering )等功能為一體,面向供應鏈管理( SCM,Supply Chain Management )的現代企業(yè)管理思想和方法。</p><p>  傳統(tǒng)上對庫存管理的通常理解是指對物料的進、出、存的業(yè)務管理,但是這種理解在現代的庫存管理中已

22、經不全面了。APICS詞匯中對庫存的定義是:“以支持生產、維護、操作和客戶為目的而存貯的各種物料,包括原材料和在制品、維修件和生產消耗、成品和備件等”。因此,庫存管理應該包括物料的存貯、收發(fā)、使用及計劃與控制等相關的各個方面。</p><p>  在研究過程中逐步發(fā)現,國內及國外對于倉庫的管理系統(tǒng)軟件不在少數,但是具備智能化的就寥寥無幾,有些倉庫管理軟件功能強大,但不實用;有些實用,但是軟件界面不夠友好;有些界面

23、華麗,但是性能不夠穩(wěn)定。所以,我覺得我需要制作出一款,實用,界面友好,性能穩(wěn)定的智能倉庫管理系統(tǒng)。操作本系統(tǒng)的客戶并不是專業(yè)的計算機從業(yè)人員,他們對于軟件的初步認識就是,外觀,所以,在前臺頁面上我選擇CSS來布局,對于用戶的提示友好,性能強大,動態(tài)性好,充分滿足前臺頁面的實際需求。但一個系統(tǒng)它只有頁面上的美觀是不夠的,他還需要強大的核心,這個核心就是Spring,他的骨架就是Struts,他的血液就是Hibernate。這樣組成的軟件才

24、能成為一款優(yōu)秀的基于B/S。</p><p>  第2章 可行性分析</p><p>  可行性分析的目的是用最小的代價在盡可能短的時間內確定問題是否能夠解決。不是解決問題,而是確定問題是否值得去解決。可行性分析的主要任務是了解客戶的要求及現實環(huán)境,從技術、經濟和社會因素等方面研究并論證本軟件項目的可行性。</p><p><b>  2.1 經濟可行

25、性</b></p><p>  本系統(tǒng)的開發(fā),為企業(yè)的工作效率帶來了一個質的飛躍,為此主要表現有以下幾個方面:本系統(tǒng)的運行可以代替人工進行許多繁雜的勞動。本系統(tǒng)的運行可以節(jié)省許多資源。本系統(tǒng)的運行可以大大的提高企業(yè)的工作效率。本系統(tǒng)可以使敏感文檔更加安全,等等。本產品的開發(fā)所需的設備在現有條件下,只需要少量的投入資金就可以實現,并且本系統(tǒng)將來投入使用后所帶來的效益遠遠大于投入。因此在經濟上是可行的。&

26、lt;/p><p><b>  2.2 技術可行性</b></p><p>  本系統(tǒng)選用Java的J2EE平臺作為開發(fā)語言,Mysql作為數據庫,開發(fā)過程嚴格按著軟件工程的思想,整體采用B/S的經典MVC三層架構。 本系統(tǒng)為中小型系統(tǒng),Java作為目前最主流的開發(fā)語言,其功能強大,足以滿足本系統(tǒng)的開發(fā)需要;Mysql數據庫也適用于中小型企業(yè)使用。目前大學本科計算機專業(yè)課

27、程均有java、mysql等課程,并附帶大量的課程設計,開發(fā)本系統(tǒng)的技術沒有超過大學本科生的知識水平。因此,本系統(tǒng)可以依靠現有技術完成系統(tǒng)的開發(fā),在技術上是可行的。</p><p><b>  2.3 操作可行性</b></p><p>  企業(yè)的倉庫管理往往是很復雜的,煩瑣的。由于所掌握的物資種類眾多,訂貨,管理,發(fā)放的渠道各有差異,各個企業(yè)之間的管理體制不盡相同,

28、各類統(tǒng)計計劃報表繁多,因此物資管理必須實現計算機化,而且必須根據企業(yè)的具體情況制定相應的方案。</p><p>  根據當前的企業(yè)管理體制,一般物資供應管理系統(tǒng),總是根據所掌握的物資類別,相應分成幾個科室來進行物資的計劃,訂貨,核銷托收,驗收入庫,根據企業(yè)各個部門的需要來發(fā)放物資設備,并隨時按期進行庫存盤點,作臺帳,根據企業(yè)領導和自身管理的需要按月,季度,年來進行統(tǒng)計分析,產生相應報表。鑒于傳統(tǒng)手工管理的不便,所

29、以要采用計算機技術來進行倉庫管理,計算機有管理在減少人力投入的同時,也提高了工作效率,因此在操作上是可行的。 </p><p><b>  第3章 需求分析</b></p><p><b>  3.1 功能需求</b></p><p>  本系統(tǒng)有三種用戶權限,分別為:管理員、出庫員、入庫員。按照信息管理系統(tǒng)的設計思想,

30、可將系統(tǒng)分為前臺和后臺兩個部分。其中出庫員和入庫員屬于前臺部分。管理員屬于后臺部分。</p><p><b>  3.1.1前臺功能</b></p><p><b>  1、公共部分</b></p><p><b> ?。?)注冊</b></p><p><b>  

31、(2)登陸</b></p><p><b> ?。?)個人信息管理</b></p><p><b>  2、入庫員部分</b></p><p><b>  (1)商品入庫</b></p><p><b> ?。?)商品補進</b></p&

32、gt;<p><b>  3、出庫員部分</b></p><p><b>  (1)商品出庫</b></p><p><b>  3.1.2后臺功能</b></p><p><b> ?。?)管理員登陸</b></p><p><b&g

33、t; ?。?)管理員工</b></p><p><b> ?。?)管理商品</b></p><p><b> ?。?)管理客戶</b></p><p><b> ?。?)管理供應商</b></p><p>  (6)管理出\入庫信息</p><p

34、><b>  3.1.3系統(tǒng)流圖</b></p><p><b> ?。?) 前臺流圖</b></p><p><b>  圖 前臺流圖</b></p><p>  前臺流圖分為兩個角色,一個是入庫員、一個是出庫員。入庫員對應的流圖有:注冊、登陸、個人信息管理、商品入庫、商品補進。出庫員對應的流

35、圖有:注冊、登陸、個人信息管理、商品出庫。</p><p><b> ?。?) 后臺流圖</b></p><p>  圖3-2 后臺用例圖</p><p>  后臺流圖只有一個角色管理員。管理員對應的流圖有:管理員工、管理商品、管理客戶、管理供應商、管理出\入庫信息。</p><p><b>  3.2 數據需

36、求</b></p><p>  根據倉庫管理的基本業(yè)務情況,本系統(tǒng)主要是實現數據的更新、修改、查詢和統(tǒng)計。數據更新包括以下幾個方面:</p><p> ?。?)商品信息的增加、刪除、修改,商品導入時還可以支持從excel導入。</p><p> ?。?)供應商信息的增加、刪除、修改和查看。</p><p>  (3)客戶信息的增加

37、、刪除、修改和查看。</p><p> ?。?)入庫信息的增加、刪除和查看。</p><p> ?。?)出庫信息的增加、刪除和查看。</p><p>  (6)商品補進信息的增加、刪除和查看。</p><p>  數據查詢和統(tǒng)計包括以下幾個方面:</p><p> ?。?)商品查詢,包括:查詢所有商品、查詢單個商品。其

38、中查詢單個商品時,支持自動補全功能。</p><p> ?。?)出庫信息查詢,查詢所有出庫信息,此處要按分頁顯示。</p><p> ?。?)入庫信息查詢,查詢所有入庫信息,此處要按分頁顯示。</p><p>  本系統(tǒng)設計采用經典的B/S-MVC三層架構,所有數據流程都按照MVC模式來設計,主要數據流程是:前臺頁面->后臺業(yè)務處理->前臺頁面。這樣的設

39、計使得前臺和后臺分離,大大降低了代碼的耦合度,也提高了開發(fā)效率。整體數據流程如下圖所示:</p><p><b>  3.2 環(huán)境需求</b></p><p>  環(huán)境配置主要包括:硬件環(huán)境配置和軟件環(huán)境配置。本系統(tǒng)為中小型系統(tǒng),所以對計算機的配置要求不高,但程序運行的快慢與電腦配置本身有直接關系,所以本系統(tǒng)的服務器主機最好使用windows server的系統(tǒng)?;?/p>

40、server版系統(tǒng),本系統(tǒng)的運行需要的一些軟件環(huán)境才能最大效率的運行。</p><p>  數據庫是軟件開發(fā)的基礎,對于軟件的編寫以及以后的開發(fā)是非常重要的,所以為了更快、更好的完成此系統(tǒng)的編寫工作,本系統(tǒng)采用了Mysql作為開發(fā)此系統(tǒng)的后臺數據庫,保證本系統(tǒng)的開發(fā)及完成。本系統(tǒng)基于Java語言開發(fā),所以采用JDK6.0作為開發(fā)環(huán)境。Web服務器使用Tomcat6.0。</p><p> 

41、 第4章 系統(tǒng)總體設計</p><p><b>  4.1 總體模塊圖</b></p><p>  模塊圖,即實現各個不同功能的獨立內容版塊,在需要的頻道直接添加就可以了。關于模塊各自的功能可以參看模塊功能簡介。</p><p>  不同的模塊可以實現不同的功能,這樣,可以通過模塊的不斷開發(fā)與重用,實現站點如搭積木一樣簡單,只要模塊支持,可以

42、實現任意復雜的功能,因此通過模塊化的設計,可以實現整個站點的無限擴展的能力。</p><p>  軟件系統(tǒng)本質上是信息處理系統(tǒng),因此在軟件系統(tǒng)的整個開發(fā)過程中都必須考慮兩個方面的問題—數據與及數據的處理。在需求分析階段既要分析用戶的數據要求,又要分析用戶的處理要求。</p><p>  為了把用戶的數據要求清晰地表達出來,通常建立一個概念性的數據模型(也稱為信息模型)。它是一種面向問題的數

43、據模型,是按照用戶的觀點來對數據和信息建模,它描述了從用戶角度看到的數據,它反映了用戶的現實環(huán)境,且與在軟件系統(tǒng)中的實現方法無關。</p><p>  本系統(tǒng)整體分為前臺和后臺兩個部分,前臺部分又分入庫員和出庫員兩個部分。入庫員部分包括:個人信息管理模塊、入庫模塊、入庫查詢模塊。出庫員部分包括:個人信息管理模塊、出庫模塊、出庫查詢模塊。后臺部分包括:賬戶管理模塊、出庫管理模塊、入庫管理模塊、后臺查詢模塊、客戶管理

44、模塊、供應商管理模塊、商品管理模塊。具體功能模塊圖如下:</p><p>  圖4-1 系統(tǒng)總體模塊圖 </p><p>  4.2 功能模塊設計 </p><p>  4.2.1 前臺公共模塊</p><p><b> ?。?)注冊</b></p><p>  點擊前臺的注冊按鈕進行注冊,注冊

45、時只要填寫相關的信息然后點擊注冊按鈕即可完成注冊。</p><p><b> ?。?)登陸</b></p><p>  用戶填寫正確的用戶名和密碼就可以登錄系統(tǒng)。</p><p><b> ?。?)個人信息管理</b></p><p>  用戶登錄系統(tǒng)后,可以進入個人空間修改自己的基本信息和。<

46、;/p><p>  4.2.2 前臺入庫員模塊</p><p><b> ?。?)商品入庫</b></p><p>  入庫員登陸系統(tǒng)后,可以選擇某一個商品,將其放入庫存。商品入庫時需要填寫入庫數量。</p><p><b>  (2)商品補進</b></p><p>  每一個

47、商品都有一個庫存下限,當庫存小于庫存下限時,就會提供商品補進,入庫員登陸系統(tǒng)后,可以有商品補進的權限。</p><p>  4.2.3 前臺出庫員模塊</p><p> ?。?)出庫員登陸系統(tǒng)后,可以對商品進行出庫操作。</p><p>  4.2.4 后臺管理模塊</p><p><b>  (1)管理員工</b>&l

48、t;/p><p>  管理員成功登錄系統(tǒng)后,可以進行用戶管理。點擊用戶管理的連接,就會顯示出當前的所有用戶列表,選擇一個用戶就可以對其進行刪除操作。</p><p><b>  (2)管理商品</b></p><p>  管理員成功登錄系統(tǒng)后,可以對商品信息進行增刪改查操作。</p><p><b> ?。?)管理

49、客戶</b></p><p>  管理員成功登錄系統(tǒng)后,可以對客戶信息進行增刪改查操作。</p><p><b> ?。?)管理供應商</b></p><p>  管理員成功登錄系統(tǒng)后,可以對供應商信息進行增刪改查操作。</p><p> ?。?)管理出\入庫信息</p><p>  

50、管理員成功登錄系統(tǒng)后,可以有按時間排序出庫信息和按時間排序入庫信息的權限,并可以對信息進行管理。</p><p><b>  4.3 數據庫設計</b></p><p>  數據庫設計是信息系統(tǒng)開發(fā)工作的核心,其基本的任務是把原系統(tǒng)分析階段得出的邏輯模型變換成系統(tǒng)的物理模型。即按照系統(tǒng)需求分析階段確定的目標和邏輯模型,具體設計出效率高,適應性強,可靠性好且經濟實用的系

51、統(tǒng)實施方案。</p><p>  經過需求分析階段的工作,系統(tǒng)必須“做什么”已經清楚了,現在是決定“怎樣做”的時候了。設計的基本目的就是回答“系統(tǒng)應該如何實現?”這個問題,通過這個階段的工作將劃分出組成系統(tǒng)的物理元素—程序文件,數據庫,人工過程和文檔等等。</p><p>  系統(tǒng)設計應從數據流程圖出發(fā)。設想完成系統(tǒng)功能的若干種合理的物理方案。并和用戶共同比較選定一個最佳方案。然后進行軟件

52、結構設計。在進行軟件設計時應該遵循模塊獨立原理,確定軟件由哪些模塊組成以及這些模塊之間的動態(tài)調用關系。同時可以設計出系統(tǒng)的層次和結構圖。</p><p>  基于以上理論,結合需求分析階段的數據流圖和ER圖。設計出以下的模塊和6個數據庫表結構的設計。</p><p>  4.3.1 數據庫設計概述</p><p>  數據庫設計是在給定的DBMS、操作系統(tǒng)和硬件環(huán)境

53、下,如何表達用戶的需求,并將其轉換為有效的數據庫結構,構成較好的數據庫模式,這個過程稱為數據庫設計。數據庫及其應用系統(tǒng)開發(fā)的全過程可分為兩大階段:數據庫系統(tǒng)的分析與設計階段;數據庫系統(tǒng)的實施、運行與維護階段。</p><p>  數據庫設計有兩種不同的方法:以信息需求為主,兼顧處理需求,這種方法稱為面向數據的設計方法;以處理需求為主,兼顧信息需求,這種方法稱為面向過程的設計方法。數據庫設計的3個特點:1、反復性(

54、Iterative)2、試探性(Tentative)3、分步進行(Multistage)。數據庫設計的過程(六個階段) 1.需求分析階段2.概念結構設計階段3.邏輯結構設計階段4.數據庫物理設計階段5.數據庫實施階段6.數據庫運行和維護階段[5]。</p><p>  4.3.2 數據庫設計規(guī)則</p><p>  數據庫在一個信息管理系統(tǒng)中占有非常重要的地位,數據庫結構設計的好壞將直接對

55、應用系統(tǒng)的效率以及實現的效果產生影響。合理的數據庫結構可以提高數據庫存儲效率,保證數據的完整性和一致性。數據庫設計的主要任務是針對一個給定的應用環(huán)境,在給定的硬件環(huán)境、操作系統(tǒng)、以及數據庫管理信息系統(tǒng)等軟件環(huán)境下,創(chuàng)建一個性能良好的數據庫模式,建立數據庫及其應用系統(tǒng),使之能有效地收集、存儲、操作和管理數據,滿足用戶地各類需求。數據庫設計通常是在一個通用的DBMS支持下,即利用現成的DBMS作為開發(fā)的基礎。</p><

56、p>  4.3.3 數據庫邏輯設計</p><p>  概念結構設計的結果是E-R模型,但是它獨立于任何一種數據模型,也獨立于任何一個具體的DBMS。為建立用戶所需的數據庫,需要把概念模型轉換成為某個具體的DBMS所支持的數據模型。</p><p>  數據庫邏輯結構設計的任務是將概念模型轉換成DBMS支持的數據模型。</p><p>  邏輯結構設計的步驟:

57、將概念模型轉換成為一般的關系、網狀、層次模型;將轉換來的模型向特定的DBMS支持的數據模型轉換;對數據模型進行優(yōu)化。</p><p>  E-R圖向關系模型的轉換:</p><p>  將E-R圖轉換為關系模型:將實體、實體屬性及實體之間的聯(lián)系轉換成為關系模式。</p><p><b>  轉換原則:</b></p><p&

58、gt; ?。?)一個實體型轉換為一個關系模式:關系的屬性即實體型的屬性;關系的碼即實體型的碼。</p><p>  (2)一個m:n聯(lián)系轉換為一個關系模式:關系的屬性即與該聯(lián)系相連的各實體型的碼一級聯(lián)系本身的屬性;關系的碼即各實體型碼的組合。</p><p> ?。?)一個1:n聯(lián)系也可轉換成為一個獨立的關系模式;也可與n端對應的關系模式合并。轉換為一個獨立的關系模式:關系的屬性即與該聯(lián)系

59、相連得各實體型的碼一級聯(lián)系本身的屬性;關系的碼是n端實體型的碼。與n端對應的關系模式合并:在n端關系中加入1端關系的碼和聯(lián)系本身的屬性;合并后關系的碼不變。一般情況下與n端合并。</p><p> ?。?) 一個1:1聯(lián)系也可轉換為一個獨立的關系模式,也可與任意一段的關系模式合并。轉換原則同m:n關系。</p><p>  (5)三個或三個以上實體型間的聯(lián)系轉換為一個關系模式。原

60、則同上。</p><p> ?。?)具有相同碼的關系模式可合并。合并方法:將其中一個關系模式的全部屬性加入到另一個關系模式中,并去掉其中同義屬性。</p><p>  在數據庫表結構完成之后,遵循關系數據庫設計準則,將在表與表之間根據實際情況設計關聯(lián)。</p><p>  本系統(tǒng)使用MySQL5.0數據庫,系統(tǒng)的數據庫一共有10張表:管理員表、供應商表、庫存表、商品

61、表、出庫信息表、客戶表、入庫信息表、商品補進表、員工表、職務表。如圖4-3所示。</p><p>  圖4-3 數據庫表關系圖</p><p>  通過清晰而簡明的數據庫邏輯設計,表之前的關聯(lián)一目了然,為設計數據庫物理模型奠定基礎。</p><p>  4.3.5 數據庫物理設計</p><p>  數據庫物理模型的設計,完全遵行邏輯模型制

62、定的各項規(guī)則,將表之間有關系的字段通過主外鍵關聯(lián)起來。數據庫的設計是整個項目中非常重要的部分,如果設計有誤,而開發(fā)已經進行,再去修改數據庫,會帶來很多意想不到的麻煩,所以數據庫設計的時候和需求分析所花費的時間往往相差無幾。</p><p>  一旦生成物理模型,可以通過工具生成相應方言的數據庫腳本代碼,為開發(fā)提供方便。但是要注意在操作過程中應該考慮工具版本之間的兼容性,Microsoft E-Rstudio8.0

63、工具在這方便比較完善,使用過程中注意每一個選項,避免不必要的麻煩。其他工具例如retionalRose也可以很好的做到這一點。熟練運用工具,不但可以提高開發(fā)效率,也能讓代碼更健康、更漂亮。</p><p>  該系統(tǒng)涉及的表如下:</p><p> ?。?)管理員表結構:管理員編號(admin_id)、管理員賬號(admin_account)、管理員密碼(admin_pwd),管理員編號是

64、自增長的主鍵,該表主要是存儲管理員賬號信息的。</p><p>  表4-1 管理員表</p><p>  (2)供應商表結構:供應商ID(Supplier_id)、公司名稱(company_name)、聯(lián)系電話(Supplier_tel)、地址(Supplier_address)、電子郵箱(Supplier_email),其中供應商ID是自增長的主鍵,該表主要是用來存儲供應商信息的。&

65、lt;/p><p>  表4-2 供應商表</p><p>  (3)入庫信息表結構:入庫ID(in_id)、入庫時間(come_time)、入庫數量(in_number)、員工ID(employee_id)、供應商ID(Supplier_id)、商品ID(goods_id),其中入庫ID是主鍵,員工ID、供應商ID是外鍵,該表主要是用來存儲入庫信息的。</p><p&g

66、t;  表4-3 入庫信息表</p><p> ?。?)庫存表結構:庫存ID(stock_id)、庫存數量(stock_number)、商品ID(goods_id)、庫存下限(stock_limit),其中庫存ID是主鍵,商品ID時外鍵,該主要是用來存儲庫存基本信息的。</p><p><b>  表4-4 庫存表</b></p><p>

67、  (5)商品表結構:商品ID(goods_id)、生產公司(goods_company)、商品名稱(goods_name)、單價(goods_value),其中商品ID是主鍵,該表主要是用來存儲商品信息的。</p><p><b>  表4-5 商品表</b></p><p>  (6)出庫信息表結構:出庫ID(out_id)、出庫時間(go_time)、出庫數量

68、(out_number)、客戶ID(costom_id)、商品ID(goods_id),其中出庫ID是主鍵,客戶ID和商品ID是外鍵,該表主要是用來存儲出庫信息的。</p><p><b>  表4-6 出庫表</b></p><p> ?。?)客戶表結構:客戶ID(costom_id)、所屬公司(company_name)、聯(lián)系電話(Costom_tel)、地址(

69、Costom_address)、電子郵箱(Costom_email),其中客戶ID是主鍵,該表主要是用來存儲客戶信息的。</p><p><b>  表4-7 客戶表</b></p><p>  (8)職務表結構:職務ID(duty_id)、職務名稱(duty_name),其中職務ID是主鍵,該表主要是用來存儲職務信息的。</p><p>&

70、lt;b>  表4-8 職務表</b></p><p> ?。?)商品補進表結構:補進ID(supply_id)、補進數量(supply_number)、商品ID(goods_id)、員工ID(employee_id),其中補進ID是主鍵,該表主要是用來存儲補進信息的。</p><p>  表4-9 商品補進表</p><p> ?。?0)員工

71、表結構:員工ID(employee_id)、員工性別(employee_sex)、聯(lián)系電話(employee_tel)、電子郵箱(employee_email)、員工賬號(employee_name)、地址(employee_address)、密碼(employee_pwd)、職務ID(duty_id),其中員工ID是主鍵,職務ID是外鍵,該表主要是用來存儲員工基本信息的。</p><p>  表4-10 員工

72、表</p><p><b>  第5章 詳細設計</b></p><p>  5.1 功能模塊設計</p><p>  5.2.1 前臺部分</p><p><b>  1、前臺首頁</b></p><p>  系統(tǒng)前臺首頁采用CSS布局,左邊顯示登錄窗口,右邊顯示主頁界面

73、,上面還有導航欄。首頁的文件名是index.jsp。服務器啟動后,直接瀏覽器上輸入地址http://localhost:8080/StorageSystem/就可以進入首頁,如下圖所示:</p><p><b>  前臺核心代碼如下:</b></p><p>  <%@ page language="java" import="ja

74、va.util.*" pageEncoding="gbk"%></p><p>  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"></p><p><b>  <html></b></p><

75、;p><b>  <head></b></p><p>  <title>倉庫管理系統(tǒng)首頁</title></head></p><p><b>  <body></b></p><p>  <form action="emplogin.

76、do?method=empLogin" method="post" name="myform" onsubmit="return check()"></p><p>  <table width="765" border="0" align="center" cellpad

77、ding="0" cellspacing="0"></p><p><b>  <tr></b></p><p>  <td class="style2"><font color="black">賬號</font></td>

78、</p><p>  <td class="style2"><input type="text" name="userName" size="15"></td></p><p>  <td class="style2"><font col

79、or="black">類型</font></td></p><p>  <td class="style2"></p><p>  <select name="userType"></p><p>  <option value="出庫員

80、">出庫員</option></p><p>  <option value="入庫員">入庫員</option></p><p>  </select></p><p>  <td class="style2"><font color=&qu

81、ot;black">密碼</font></td></p><p>  <td class="style2"><input type="password" name="userPwd" size="15"></td></p><p>&l

82、t;b>  </tr></b></p><p>  <tr align="center"></p><p>  <td class="style2" colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;<input ty

83、pe="submit" value="登錄">&nbsp;<input type="button" value="注冊" onclick="goRegister()">&nbsp;<input type="reset" value="重寫"></t

84、d></p><p><b>  </tr></b></p><p>  </table></td></p><p><b>  </tr></b></p><p><b>  </table></b></

85、p><p><b>  </form></b></p><p><b>  </body></b></p><p><b>  </html></b></p><p><b>  2、員工注冊</b></p>

86、<p>  員工注冊頁面由CSS布局,用戶點擊注冊按鈕觸發(fā)form表單,form表單提交請求insertemp.do?method=insertEmp,按照struts設計標注,該請求轉發(fā)到struts-config.xml文件下,找到相應處理請求的類EmployeeAction的insertEmp方法,在insertEmp方法中調用EmployeeDaoImpl類的insertEmp來操作數據庫,操作成功后跳轉到index.

87、jsp頁面,操作失敗跳轉到本頁面。如下圖所示:</p><p><b>  頁面核心代碼如下:</b></p><p>  <form action="insertemp.do?method=insertEmp" method="post" name="myform" onsubmit="r

88、eturn check()"></p><p>  <table width="765" border="0" align="center" cellpadding="0" cellspacing="0"></p><p><b>  <tr>

89、;</b></p><p>  <td>賬號&nbsp;&nbsp;<input type="text" name="employeeName" size="15"></td></p><p><b>  </tr></b></

90、p><p><b>  <tr></b></p><p>  <td>性別&nbsp;&nbsp;</p><p>  <select name="employeeSex"></p><p>  <option value="男"

91、;>男</option></p><p>  <option value="女">女</option></p><p><b>  </select></b></p><p>  <td>密碼&nbsp;&nbsp;<input type

92、="password" name="employeePwd" size="15"></td></p><p><b>  </tr></b></p><p><b>  <tr></b></p><p>  <td&

93、gt;電話&nbsp;&nbsp;<input type="text" name="employeeTel" size="15"></td></p><p><b>  </tr></b></p><p><b>  <tr></

94、b></p><p>  <td>郵箱&nbsp;&nbsp;<input type="text" name="employeeEmail" size="15"></td></p><p><b>  </tr></b></p>

95、<p><b>  <tr></b></p><p>  <td>住址&nbsp;&nbsp;<input type="text" name="employeeAddress" size="15"></td></p><p><

96、;b>  </tr></b></p><p><b>  后臺核心代碼如下:</b></p><p><b>  //員工注冊</b></p><p>  public ActionForward insertEmp(ActionMapping mapping, ActionForm form

97、,</p><p>  HttpServletRequest request, HttpServletResponse response)</p><p>  throws Exception </p><p><b>  {</b></p><p><b>  //取得前臺數據</b></p

98、><p>  EmpRegisterForm register=(EmpRegisterForm)form;</p><p>  EmployeeBean bean=new EmployeeBean();</p><p>  bean.setEmployeeAddress(register.getEmployeeAddress());</p><p&

99、gt;  bean.setEmployeeEmail(register.getEmployeeEmail());</p><p>  bean.setEmployeeName(register.getEmployeeName());</p><p>  bean.setEmployeePwd(register.getEmployeePwd());</p><p> 

100、 bean.setEmployeeSex(register.getEmployeeSex());</p><p>  bean.setEmployeeTel(register.getEmployeeTel());</p><p>  if(new EmployeeDaoImpl().getOneEmp(bean).getEmployeeName()==null)</p>&l

101、t;p><b>  {</b></p><p>  //將數據寫入到數據庫</p><p>  int isOK=DaoFactory.getDaoFactory().getEmpDao().insertEmp(bean);</p><p>  System.out.println(isOK);</p><p> 

102、 if(isOK==1)</p><p><b>  {</b></p><p>  request.setAttribute("insert","a");</p><p>  return mapping.findForward("success");</p><

103、p><b>  }</b></p><p><b>  else</b></p><p>  return mapping.findForward("false");</p><p><b>  }</b></p><p><b>  els

104、e</b></p><p>  request.setAttribute("insertfalse","a");</p><p>  return mapping.findForward("false");</p><p><b>  }</b></p>&l

105、t;p><b>  3、員工登陸</b></p><p>  員工登陸頁面由CSS布局,用戶點擊登陸按鈕觸發(fā)form表單,form表單提交請求emplogin.do?method=empLogin,按照struts設計標注,該請求轉發(fā)到struts-config.xml文件下,找到相應處理請求的類EmployeeAction的empLogin方法,在empLogin方法中調用Emplo

106、yeeDaoImpl類的empLogin來操作數據庫,操作成功后跳轉到InMain.jsp頁面,操作失敗跳轉到本頁面。如下圖所示:</p><p><b>  頁面核心代碼如下:</b></p><p>  <form action="emplogin.do?method=empLogin" method="post" n

107、ame="myform" onsubmit="return check()"></p><p>  <table width="765" border="0" align="center" cellpadding="0" cellspacing="0">&l

108、t;/p><p><b>  <tr></b></p><p>  <td class="style2"><font color="black">賬號</font></td></p><p>  <td class="style2&q

109、uot;><input type="text" name="userName" size="15"></td></p><p><b>  </tr></b></p><p><b>  <tr></b></p><

110、;p>  <td class="style2"><font color="black">類型</font></td></p><p>  <td class="style2"></p><p>  <select name="userType&quo

111、t;></p><p>  <option value="出庫員">出庫員</option></p><p>  <option value="入庫員">入庫員</option></p><p>  </select></p><p>

112、  <td class="style2"><font color="black">密碼</font></td></p><p>  <td class="style2"><input type="password" name="userPwd" si

113、ze="15"></td></p><p><b>  </tr></b></p><p>  <tr align="center"></p><p>  <td class="style2" colspan="2"&

114、gt;&nbsp;&nbsp;&nbsp;&nbsp;<input type="submit" value="登錄">&nbsp;<input type="button" value="注冊" onclick="goRegister()">&nbsp;<inpu

115、t type="reset" value="重寫"></td></p><p><b>  </tr></b></p><p>  </table></td></p><p><b>  </tr></b></p

116、><p><b>  </table></b></p><p><b>  </form></b></p><p><b>  后臺核心代碼如下:</b></p><p><b>  //員工登錄</b></p><

117、p>  public ActionForward empLogin(ActionMapping mapping, ActionForm form,</p><p>  HttpServletRequest request, HttpServletResponse response)</p><p>  throws Exception </p><p><

118、;b>  {</b></p><p><b>  //接收前臺數據</b></p><p>  EmpLoginForm login=(EmpLoginForm)form;</p><p>  EmployeeBean emp=new EmployeeBean();</p><p>  emp.setE

119、mployeeName(login.getUserName());</p><p>  emp.setEmployeePwd(login.getUserPwd());</p><p>  LoginBean bean=new LoginBean();</p><p>  bean.setUserName(login.getUserName());</p>

120、<p>  bean.setUserPwd(login.getUserPwd());</p><p>  bean.setUserType(login.getUserType());</p><p>  //判斷用戶類型后去數據庫查詢</p><p>  if(login.getUserType().equals("出庫員"))&l

121、t;/p><p><b>  {</b></p><p>  boolean isOK=DaoFactory.getDaoFactory().getEmpDao().empLogin(bean);</p><p>  if(isOK==true)</p><p><b>  {</b></p>

122、;<p>  EmployeeBean ebean=DaoFactory.getDaoFactory().getEmpDao().getOneEmp(emp);</p><p>  if(ebean.getDutyId()==0){</p><p>  request.setAttribute("loginfalse","a");<

123、;/p><p>  return mapping.findForward("false");</p><p><b>  }else{</b></p><p>  request.getSession().setAttribute("emp",ebean);</p><p>  ret

124、urn mapping.findForward("out-success");</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  else</b></p><p>  request.setAttri

125、bute("login","a");</p><p>  return mapping.findForward("false");</p><p><b>  }</b></p><p>  if(login.getUserType().equals("入庫員"))

126、</p><p><b>  {</b></p><p>  boolean isOK=DaoFactory.getDaoFactory().getEmpDao().empLogin(bean);</p><p>  if(isOK==true)</p><p><b>  {</b></p&

127、gt;<p>  EmployeeBean ebean=DaoFactory.getDaoFactory().getEmpDao().getOneEmp(emp);</p><p>  if(ebean.getDutyId()==0){</p><p>  request.setAttribute("loginfalse","a");&

128、lt;/p><p>  return mapping.findForward("false");</p><p><b>  }else{</b></p><p>  request.getSession().setAttribute("emp",ebean);</p><p>  r

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論