基于java的企業(yè)進銷存管理系統(tǒng)方案_第1頁
基于java的企業(yè)進銷存管理系統(tǒng)方案_第2頁
基于java的企業(yè)進銷存管理系統(tǒng)方案_第3頁
基于java的企業(yè)進銷存管理系統(tǒng)方案_第4頁
基于java的企業(yè)進銷存管理系統(tǒng)方案_第5頁
已閱讀5頁,還剩49頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、54/54畢業(yè)論文(設計)題目:基于java的企業(yè)進銷存管理系統(tǒng)學院本科畢業(yè)論文(設計)基于java的企業(yè)進銷存管理系統(tǒng)摘要企業(yè)進銷存管理系統(tǒng)的工作是對企業(yè)進貨、銷貨和庫存進行管理,最大程度的減少各環(huán)節(jié)中可能出現(xiàn)的錯誤。有效減少盲目采購、合理控制庫存、減少資金占用,提升企業(yè)市場的競爭力。本文將詳細介紹企業(yè)進銷存管理系統(tǒng)的開發(fā)步驟:系統(tǒng)分析、系統(tǒng)設計、系統(tǒng)實現(xiàn)。在系統(tǒng)分析中,現(xiàn)后使用數(shù)據(jù)流圖、系統(tǒng)功能結構圖分析系統(tǒng)所需的各種數(shù)據(jù);系統(tǒng)設計和系統(tǒng)實現(xiàn)并舉:說明數(shù)據(jù)庫表、表中字段等數(shù)據(jù)庫設計和實體類的java結構設計,以與介紹系統(tǒng)各功能模塊的設計。本系統(tǒng)采用java開發(fā),數(shù)據(jù)庫采用MySQL進行管理

2、。關鍵詞:企業(yè)進銷存管理系統(tǒng);Java;MySQL-學院本科畢業(yè)論文(設計)TheEnterpriseEntersSellsSavestheManagementSystemBasedonJavaAbstractEnterpriseenterssellssavesthemanagementsystemsjobistopurchase;salesandinventorymanagementoftheenterprise;thegreatestdegreeofreduceerrorsthatmayoccurineachlink.Effectivelyreduceblindprocurement;re

3、asonablecontrolinventoryandreducecapitaltakesup;improvethecompetitivenessoftheenterprisemarket.Thispaperwilldetailenterpriseenterssellssavesthemanagementsystemofdevelopmentsteps:systemanalysis,systemdesign,systemimplementation.Insystemanalysis,nowafterusingdataflowdiagram,systemfunctionstructuredraw

4、inganalysissystemforallkindsofdata;Systemdesignandsystemimplementation:thedatabasetablesandfieldsinthetable,thedatabasedesignandthedesignoftheJavastructureentityclass,andintroducesthedesignofthesystemeachfunctionmoduleThissystemUSESJavadevelopment,usingMySQL.Keywords:enterpriseenterssellssavestheman

5、agementsystem;Java;MySQL-I-目錄摘要IAbstractII HYPERLINK l 6 第 HYPERLINK l 6 1 HYPERLINK l 6 章緒論1 HYPERLINK l 6 1.1 HYPERLINK l 6 項目背景1 HYPERLINK l 7 1.2 HYPERLINK l 7 可行性分析2 HYPERLINK l 8 第 HYPERLINK l 8 2 HYPERLINK l 8 章 HYPERLINK l 8 系統(tǒng)分析3 HYPERLINK l 8 2.1 HYPERLINK l 8 需求分析3 HYPERLINK l 8 2.2 HYPER

6、LINK l 8 可行性分析3 HYPERLINK l 9 2.3 HYPERLINK l 9 本章小結4 HYPERLINK l 10 第 HYPERLINK l 10 3 HYPERLINK l 10 章 HYPERLINK l 10 系統(tǒng)運行環(huán)境與系統(tǒng)開發(fā)技術5 HYPERLINK l 10 3.1 HYPERLINK l 10 系統(tǒng)運行環(huán)境5 HYPERLINK l 10 3.2 HYPERLINK l 10 系統(tǒng)開發(fā)技術5 HYPERLINK l 10 3.2.1 HYPERLINK l 10 Java HYPERLINK l 10 簡介5 HYPERLINK l 12 3.2.2

7、HYPERLINK l 12 My HYPERLINK l 12 SQL HYPERLINK l 12 數(shù)據(jù)庫7 HYPERLINK l 12 3.3 HYPERLINK l 12 本章小結7 HYPERLINK l 13 第 HYPERLINK l 13 4 HYPERLINK l 13 章 HYPERLINK l 13 系統(tǒng)設計8 HYPERLINK l 13 4.1 HYPERLINK l 13 數(shù)據(jù)庫與數(shù)據(jù)庫表設計8 HYPERLINK l 13 4.1.1 HYPERLINK l 13 數(shù)據(jù)庫介紹8 HYPERLINK l 13 4.1.2 HYPERLINK l 13 實體屬性8

8、HYPERLINK l 14 4.1.3 HYPERLINK l 14 數(shù)據(jù)庫表設計9 HYPERLINK l 18 4.2 HYPERLINK l 18 系統(tǒng)功能模塊設計13 HYPERLINK l 18 4.2.1 HYPERLINK l 18 公共類設計13 HYPERLINK l 18 4.2.2 HYPERLINK l 18 系統(tǒng)登錄模塊設計13 HYPERLINK l 18 4.2.3 HYPERLINK l 18 進貨單模塊設計13 HYPERLINK l 22 4.2.4 HYPERLINK l 22 銷售單模塊設計17 HYPERLINK l 24 4.2.5 HYPERLI

9、NK l 24 庫存盤點模塊設計19 HYPERLINK l 26 4.3 HYPERLINK l 26 本章小結21 HYPERLINK l 27 第 HYPERLINK l 27 5 HYPERLINK l 27 章 HYPERLINK l 27 系統(tǒng)測試22 HYPERLINK l 27 5.1 HYPERLINK l 27 系統(tǒng)軟件測試22 HYPERLINK l 27 5.1.1 HYPERLINK l 27 測試原則22 HYPERLINK l 27 5.1.2 HYPERLINK l 27 模塊測試22 HYPERLINK l 28 5.2 HYPERLINK l 28 本章小結

10、23結論24 HYPERLINK l 30 參考文獻25附錄26致32學院本科畢業(yè)論文(設計)基于java的企業(yè)進銷存管理系統(tǒng)第1章緒論1.1項目背景計算機技術作為現(xiàn)代科學技術的基礎和核心,已經(jīng)而且將繼續(xù)對人類文明社會進步與發(fā)展產(chǎn)生深刻影響。在我們生活的21世紀里計算機技術已經(jīng)在各行各業(yè)中發(fā)揮著不可替代的作用。當前越來越多的商業(yè)、企事業(yè)單位已經(jīng)將計算機技術應用于日常的管理工作。科學的運用計算機技術進行管理工作不僅可以使管理工作規(guī)化、系統(tǒng)化、自動化而且可以節(jié)省相當?shù)娜肆?、物力。它能夠使用戶的管理工作走上良性運轉軌道,從而為其快速發(fā)展奠定基礎。因此各單位對與本行業(yè)相關管理軟件的需求也十分迫切。當今

11、世界上,以信息技術為主要標志的科技進步日新月異,高科技成果向現(xiàn)實生產(chǎn)力的轉化越來越快。縱觀全球經(jīng)濟發(fā)展,信息技術和信息產(chǎn)業(yè)已經(jīng)成為經(jīng)濟增長的主要推動力之一,正在改變著傳統(tǒng)的生產(chǎn)和經(jīng)營方式以至生活方式。信息資源已經(jīng)成為國民經(jīng)濟和社會發(fā)展的戰(zhàn)略資源,信息資源管理水平也已成為現(xiàn)代化水平和綜合國力的重要標志。管理信息系統(tǒng)就是我們常說的MIS(ManagementInformationSystem),在強調管理,強調信息的現(xiàn)代社會中它越來越普與。MIS是一門新的學科,它跨越了若干個領域,比如管理科學、系統(tǒng)科學、運籌學、統(tǒng)計學以與計算機科學。在這些學科的基礎上,形成信息收集加工的方法,從而形成一個縱橫交織

12、的系統(tǒng)。隨著我國經(jīng)濟的發(fā)展,為了抓住機遇,在競爭中占的先機,作為生產(chǎn)企業(yè)的一個必不可少的重要環(huán)節(jié)進銷存管理的信息化也迫在眉睫了。開發(fā)進銷存管理系統(tǒng)即可以順應時代的信息化,現(xiàn)代化潮流,提高經(jīng)濟效益:又可以提高管理的現(xiàn)代化程序,加強管理的信息化手段,提高工作效率,增加單位效益。現(xiàn)實意義在市場經(jīng)濟中,銷售是企業(yè)運行的重要環(huán)節(jié)。為了更好地推動銷售,不少企業(yè)建立了分公司和代理制,通過分公司或代理把產(chǎn)品推向最終用戶。這些分公司或代理商大都分布在不同的地理位置,跨時空,跨時間的頻繁業(yè)務信息交流是這些企業(yè)業(yè)務的活動的主要特點。在這種形式下,傳統(tǒng)的依靠管理人員人工傳遞信息和數(shù)據(jù)的管理方式就無法滿足企業(yè)日益增長的

13、業(yè)務需求了。在信息技術的催化之下,世界經(jīng)濟的-0-學院本科畢業(yè)論文(設計)變革已經(jīng)進入了加速狀態(tài)。世界經(jīng)濟一體化,企業(yè)經(jīng)營全球化,以與高度競爭造成的高度個性化與迅速改變的客戶需求,令企業(yè)與顧客、企業(yè)與供方的關系變得更加密切和復雜。強化管理,規(guī)業(yè)務流程,提高透明度,加快商品資金周轉,以與為流通領域信息管理全面網(wǎng)絡化打下基礎,是銷售公司乃至眾多商業(yè)企業(yè)夢寐以求的愿望。1.2可行性分析進銷存軟件概念起源于上世紀80年代,由于電算化的普與,計算機管理的推廣,不少企業(yè)對于倉庫貨品的進貨,存貨,出貨管理,有了強烈的需求,進銷存軟件的發(fā)展從此開始。進入90年代以后,隨著進銷存軟件的應用面越來越廣,出現(xiàn)了許多

14、從功能上,從用途上,更為全面的進銷存系統(tǒng),從單純的貨品數(shù)量管理,擴展為貨品的流程管理,進銷存軟件對每一批貨品的來源,存放,去向,都作仔細的記錄,隨后并延伸為財務進銷存一體化的管理模式。進入00年以后,各種各樣的進銷存軟件產(chǎn)品應運而生,在倉庫進銷存管理的基礎上,集合了財務管理??蛻艄芾?,業(yè)務管理等相關容,成為進銷存財一體化的管理系統(tǒng)。企業(yè)進銷存管理系統(tǒng)的不斷完善,為企業(yè)管理現(xiàn)代化和運營信息化提供了有力的支持。-1-學院本科畢業(yè)論文(設計)第2章系統(tǒng)分析2.1需求分析需求分析是對用戶需求的真正明確,是對要解決的問題的徹底理解。在解決問題之前要理解問題,只有真正的理解問題才能更好的解決問題。需求分析

15、就是給系統(tǒng)分析、設計人員一個和用戶交流來理解問題的機會進而了解用戶究竟需要什么。需求分析也是一個建模的過程,就是以市場運作中的業(yè)務定義為基礎,重新定義一個業(yè)務在業(yè)務系統(tǒng)中的概念、業(yè)務流程、數(shù)據(jù)流程、業(yè)務間關系、數(shù)據(jù)間關系等,以便于計算機高效的實現(xiàn)這個業(yè)務。需求分析既可以用于一個業(yè)務的具體分析,也可以用于一類業(yè)務的分析和整個業(yè)務支撐系統(tǒng)的分析。需求分析的過程可以說是一個對具體問題的反復理解和抽象的過程。理解就是對現(xiàn)實問題的理解,要弄清楚究竟需要解決什么問題。抽象就是出去問題的表面,提取問題的本質,建立問題的邏輯模型,以便以后階段的系統(tǒng)的設計實現(xiàn)。需求分析階段是軟件產(chǎn)品生存命期的一個重要階段,其根

16、本任務四確定用戶對軟件系統(tǒng)的需求。所謂需指用戶對軟件的功能和性能的要求,就是用戶希望軟件能干什么事情,完成什么樣的功能,達到什么性能。通常需求分為兩種類型:一種是功能性需求,一種是非功能性需求,這一點也需要有一種清楚的認識。功能性需指需要計算機系統(tǒng)解決的問題,也就是對數(shù)據(jù)的處理要求,這是一類主要的需求。非功能性需指實際使用環(huán)境所要求的要求,往往是一些限制要求,例如:性能要求,可靠性要求,安全要求等等。根據(jù)用戶方的需求,要求企業(yè)進銷存管理系統(tǒng)具有以下功能:界面設計簡潔大方,操作方便、快捷、靈活。實現(xiàn)進銷存管理,包括基本信息、進貨、銷售和庫存管理。提供庫存盤點功能。2.2可行性分析軟件充分結合現(xiàn)代

17、管理理論達到企業(yè)與管理人員與企業(yè)業(yè)務流程的合理分配,結合企業(yè)現(xiàn)有的管理方式、規(guī)章制度以與原始數(shù)據(jù)達到軟件與企業(yè)融合的目的。承受現(xiàn)代管理知識比較容易,加之軟件是根據(jù)MIS、ERP現(xiàn)代管理原理開發(fā)的。經(jīng)調查大多部門經(jīng)理認為軟件有必要開發(fā)也是必須開發(fā)的。企業(yè)進銷存管理系統(tǒng)必須提供商品信息、供應商信息和客戶信息的基礎設置;提-2-學院本科畢業(yè)論文(設計)供強大的搜索功能和商品的進貨、銷售和庫存管理功能。系統(tǒng)還必須保證數(shù)據(jù)的安全性、完整性和準確性。企業(yè)進銷存管理系統(tǒng)的目標是實現(xiàn)企業(yè)的信息化管理,減少盲目采購、降低采購成本、合理控制庫存、減少資金占用并提升企業(yè)市場競爭力。項目主要以企業(yè)的進貨、銷售和查詢統(tǒng)

18、計功能為主,對于庫存、銷售和進貨的記錄信息應該與時、準確的保存,并提供想要的查詢和統(tǒng)計。由于庫存商品數(shù)量太多,不易盤點,傳統(tǒng)的盤點方式容易出錯,系統(tǒng)中的庫存盤點功能要準確的計算出各種商品的損益數(shù)量,減少企業(yè)的不必要的損失。2.3本章小結本章容為進銷存管理系統(tǒng)的軟件需求分析,分析了系統(tǒng)的功能需求、環(huán)境需求、系統(tǒng)數(shù)據(jù)采集概念,隨后建立了進銷存管理系統(tǒng)的數(shù)據(jù)流程。-3-學院本科畢業(yè)論文(設計)第3章系統(tǒng)運行環(huán)境與系統(tǒng)開發(fā)技術3.1系統(tǒng)運行環(huán)境硬件環(huán)境,CPU(中央處理器):INTEL酷睿I5-5200U,RAM(存):4GB,HDD(硬盤):500G軟件開發(fā)環(huán)境:操作系統(tǒng):Windows10;JDK

19、環(huán)境:JavaPlatformSE8U60;開發(fā)工具:Eclipse8.0;數(shù)據(jù)庫管理軟件:MySQL5.53.2系統(tǒng)開發(fā)技術本系統(tǒng)的開發(fā)主要是使用在Eclipse平臺下的Java語言,并結合了MySQL數(shù)據(jù)庫技術,使此系統(tǒng)具有強大的查詢功能。3.2.1Java簡介Java語言是一個支持網(wǎng)絡計算的面向對象程序設計語言。Java語言吸收了Smalltalk語言和C+語言的優(yōu)點,并增加了其它特性,如支持并發(fā)程序設計、網(wǎng)絡通信、和多媒體數(shù)據(jù)控制等。主要特性如下:Java語言是簡單的。Java語言的語法與C語言和C+語言很接近,使得大多數(shù)程序員很容易學習和使用Java。另一方面,Java丟棄了C+中很

20、少使用的、很難理解的、令人迷惑的那些特性,如操作符重載、多繼承、自動的強制類型轉換。特別地,Java語言不使用指針,并提供了自動的廢料收集,使得程序員不必為存管理而擔憂。Java語言是一個面向對象的。Java語言提供類、接口和繼承等原語,為了簡單起見,只支持類之間的單繼承,但支持接口之間的多繼承,并支持類與接口之間的實現(xiàn)機制(關鍵字為implements)。Java語言全面支持動態(tài)綁定,而C+語言只對虛函數(shù)使用動態(tài)綁定??傊琂ava語言是一個純的面向對象程序設計語言。Java語言是分布式的。Java語言支持Internet應用的開發(fā),在基本的Java應用編程接口中有一個網(wǎng)絡應用編程接口(),

21、它提供了用于網(wǎng)絡應用編程的類庫,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(遠程方法激活)機制也是開發(fā)分布式應用的重要手段。Java語言是健壯的。Java的強類型機制、異常處理、廢料的自動收集等是Java程序健壯性的重要保證。對指針的丟棄是Java的明智選擇。Java的安全檢查機制使得-4-學院本科畢業(yè)論文(設計)Java更具健壯性。Java語言是安全的。Java通常被用在網(wǎng)絡環(huán)境中,為此,Java提供了一個安全機制以防惡意代碼的攻擊。除了Java語言具有的許多安全特性以外,Java對通過網(wǎng)絡下載的類具有一個安全防機制(類ClassLoa

22、der),如分配不同的名字空間以防替代本地的同名類、字節(jié)代碼檢查,并提供安全管理機制(類SecurityManager)讓Java應用設置安全哨兵。Java語言是體系結構中立的。Java程序(后綴為java的文件)在Java平臺上被編譯為體系結構中立的字節(jié)碼格式(后綴為class的文件),然后可以在實現(xiàn)這個Java平臺的任何系統(tǒng)中運行。這種途徑適合于異構的網(wǎng)絡環(huán)境和軟件的分發(fā)。Java語言是可移植的。這種可移植性來源于體系結構中立性,另外,Java還嚴格規(guī)定了各個基本數(shù)據(jù)類型的長度。Java系統(tǒng)本身也具有很強的可移植性,Java編譯器是用Java實現(xiàn)的,Java的運行環(huán)境是用ANSIC實現(xiàn)的。

23、Java語言是解釋型的。如前所述,Java程序在Java平臺上被編譯為字節(jié)碼格式,然后可以在實現(xiàn)這個Java平臺的任何系統(tǒng)中運行。在運行時,Java平臺中的Java解釋器對這些字節(jié)碼進行解釋執(zhí)行,執(zhí)行過程中需要的類在聯(lián)接階段被載入到運行環(huán)境中。Java是高性能的。與那些解釋型的高級腳本語言相比,Java的確是高性能的。事實上,Java的運行速度隨著JIT(Just-In-Time)編譯器技術的發(fā)展越來越接近于C+。Java語言是多線程的。在Java語言中,線程是一種特殊的對象,它必須由Thread類或其子()類來構造,thread(Runnable)的構造子類將一個實現(xiàn)了Runnable接口的

24、對象包裝成一個線程,其二,從Thread類派生出子類并重寫run方法,使用該子類創(chuàng)建的對象即為線程。值得注意的是Thread類已經(jīng)實現(xiàn)了Runnable接口,因此,任何一個線程均有它的run方法,而run方法中包含了線程所要運行的代碼。線程的活動由一組方法來控制。Java語言支持多個線程的同時執(zhí)行,并提供多線程之間的同步機制(synchronized)。Java語言是動態(tài)的。Java語言的設計目標之一是適應于動態(tài)變化的環(huán)境。Java程序需要的類能動態(tài)地被載入到運行環(huán)境,也可以通過網(wǎng)絡來載入所需要的類。這也有利于軟件的升級。另外,Java中的類有一個運行時刻的表示,能進行運行時刻的類型檢查。-5

25、-學院本科畢業(yè)論文(設計)Java語言的優(yōu)良特性使得Java應用具有無比的健壯性和可靠性,這也減少了應用系統(tǒng)的維護費用。Java對對象技術的全面支持和Java平臺嵌的API能縮短應用系統(tǒng)的開發(fā)時間并降低成本。Java的編譯一次,到處可運行的特性使得它能夠提供一個隨處可用的開放結構和在多平臺之間傳遞信息的低成本方式。特別是Java企業(yè)應用編程接口(JavaEnterpriseAPIs)為企業(yè)計算與電子商務應用系統(tǒng)提供了有關技術和豐富的類庫。3.2.2MySQL數(shù)據(jù)庫MySQL是一個后臺數(shù)據(jù)庫管理系統(tǒng),是一個關系數(shù)據(jù)庫管理系統(tǒng)。它功能強大、操作簡便、日益為廣大數(shù)據(jù)庫用戶所喜愛。MySQL,是SUN

26、公司推出的MySQL數(shù)據(jù)庫管理系統(tǒng)。該版本具有使用方便、可伸縮性好、與相關軟件集成程度高等優(yōu)點。MySQL界面友好,易學易用且功能強大,與Windows操作系統(tǒng)完美結合,可以構造網(wǎng)絡環(huán)境數(shù)據(jù)庫甚至分布式數(shù)據(jù)庫,可以滿足企業(yè)與Internet等大型數(shù)據(jù)庫應用。3.3本章小結本章根據(jù)前面課題研究的背景現(xiàn)狀分析與基本容要求基礎上,介紹了系統(tǒng)設計所給予的MVC架構,詳細的介紹了MVC架構的概念和技術特點,介紹了系統(tǒng)開發(fā)的技術路線,分析了系統(tǒng)采用的SQL數(shù)據(jù)庫開發(fā)環(huán)境。-6-學院本科畢業(yè)論文(設計)第4章系統(tǒng)設計4.1數(shù)據(jù)庫與數(shù)據(jù)庫表設計4.1.1數(shù)據(jù)庫介紹所謂數(shù)據(jù)庫(Database)就是按一定組織方

27、式存儲在一起,相互相關的若干數(shù)據(jù)的結合,數(shù)據(jù)庫管理系統(tǒng)(DatabaseManagementSystem)就是一種操作和管理數(shù)據(jù)庫的大型軟件,簡稱DBMS,他們建立在操作系統(tǒng)的基礎上,對數(shù)據(jù)庫進行統(tǒng)一的管理和控制,其功能包括數(shù)據(jù)庫定義,數(shù)據(jù)庫管理,數(shù)據(jù)庫的建立和維護,與操作系統(tǒng)通信等。DBMS通常由數(shù)據(jù)字典,數(shù)據(jù)描述語言與其編譯程序,數(shù)據(jù)操縱(查詢)語言極其編譯程序,數(shù)據(jù)庫管理例行程序等部分組成。關系數(shù)據(jù)庫是以關系模型為基礎的數(shù)據(jù)庫,是根據(jù)表、記錄和字段之間關系進行組織和訪問的一種數(shù)據(jù)庫,它通過若干表(Table)來存取數(shù)據(jù),并且通過關系(Relation)將這些表聯(lián)系在一起,關系數(shù)據(jù)庫提供了

28、成為機構化查詢語言(SQL)標準接口,該接口允許使用多種數(shù)據(jù)庫工具和產(chǎn)品,關系數(shù)據(jù)庫是目前最廣泛應用的數(shù)據(jù)庫。4.1.2實體屬性進銷存系統(tǒng)主要實現(xiàn)從進貨、庫存到銷售的一體化管理,設計商品信息、商品的供貨商、購買商品的客戶等多個實體。(1)供應商實體屬性圖供應商實體包括:編號、名稱、簡稱、地址、郵政編碼、 、聯(lián)系人、聯(lián)系人、開戶行和屬性。如圖4-1。名稱簡稱地址編號郵政編碼供應商開戶行聯(lián)系人聯(lián)系人圖4-1供貨商實體屬性圖(2)商品實體屬性圖商品實體包括:編號、商品名稱、商品簡稱、產(chǎn)地、單位、規(guī)格、包裝、批號、批準文號、商品簡介和供應商屬性。如圖4-2。-7-學院本科畢業(yè)論文(設計)名稱簡稱產(chǎn)地單

29、位編號規(guī)格商品供應商包裝簡介批準文號圖4-2商品實體屬性圖批號(3)客戶實體屬性圖客戶實體包括:客戶編號、客戶名稱、簡稱、地址、郵政編碼、聯(lián)系人電話、 、開戶行和賬號屬性。如圖4-3。編號名稱簡稱地址客戶郵政編碼賬號開戶行聯(lián)系人聯(lián)系人圖4-3客戶實體屬性圖(4)銷售實體屬性圖銷售實體分為銷售主表和銷售明細表兩個實體,它們是一對多的關系。其中銷售主表包括:銷售票號、品種數(shù)、金額、驗收結論、客戶名稱、經(jīng)手人、結算方式、操作員和銷售日期屬性。銷售明細表包括:編號、銷售票號、商品編號、數(shù)量和單價屬性。如圖4-4。銷售票號品種數(shù)金額驗收結論客戶名稱銷售票號商品編號銷售主表1歸屬N銷售詳細表編號經(jīng)手人結算

30、方式操作員銷售日期數(shù)量單價圖4-4銷售實體屬性圖4.1.3數(shù)據(jù)庫表設計數(shù)據(jù)庫在整個管理系統(tǒng)中占據(jù)非常重要的地位,數(shù)據(jù)庫結構設計的好壞直接影響著系統(tǒng)的效率和實現(xiàn)效果。進銷存管理系統(tǒng)采用MySQL5.5版本的數(shù)據(jù)庫,數(shù)據(jù)庫名-8-學院本科畢業(yè)論文(設計)稱為ERP,因篇幅所限,本論文只給出幾個重要數(shù)據(jù)表的表結構。(1)供應商信息表供應商信息表的名稱為tb_gysinfo用于存儲供應商的詳細信息。如表4-1。表4-1供應商信息表字段名稱數(shù)據(jù)類型字段大小是否主鍵說明Idvarchar32主鍵供貨商編號namevarchar50供貨商名稱Jcvarchar20供貨商簡稱addressvarchar100

31、供貨商地址bianmavarchar10郵政編碼Telvarchar15Faxvarchar15Lianvarchar8聯(lián)系人ltelvarchar15聯(lián)系Yhvarchar50開戶銀行mailvarchar30電子(2)商品信息表商品信息表的名稱為tb_spinfo,主要用于存儲商品的詳細信息。如表4-2。表4-2商品信息表字段名稱數(shù)據(jù)類型字段大小是否主鍵說明Idvarchar32主鍵商品編號spnamevarchar50商品名稱Jcvarchar30商品簡稱Cdvarchar50產(chǎn)地Dwvarchar10商品計量單位Ggvarchar10商品規(guī)格Bzvarchar20包裝Phvarchar

32、32批號pzwhvarchar50批準文號memovarchar100備注-9-學院本科畢業(yè)論文(設計)gysnamevarchar50供應商名稱(3)入庫主表入庫主表的名稱為tb_ru_main,主要用于存儲入庫單據(jù)信息。如表4-3。表4-3入庫主表字段名稱數(shù)據(jù)類型字段大小是否主鍵說明rkIDvarchar32主鍵入庫編號Pzsfloat8品種數(shù)量Jemoney8總計金額ysjlvarchar50驗收結論gysnamevarchar100供貨商名稱rkdatedatetime8入庫時間Czyvarchar30操作員Jsrvarchar30經(jīng)手人Jsfsvarchar10結算方式(4)入庫明細

33、表入庫明細表的名稱為tb_ruku_detail,主要用于存儲入庫的詳細信息。如表4-4。表4-4入庫明細表字段名稱數(shù)據(jù)類型字段大小是否主鍵說明Idvarchar50主鍵流水號rkIDvarchar0入庫編號spidvarchar50商品編號Djvarchar8單價s1float8數(shù)量(5)銷售主表銷售主表的名稱為tb_sell_main,主要用于存儲銷售單據(jù)的信息。如表4-5。表4-5銷售主表字段名稱數(shù)據(jù)類型字段大小是否主鍵說明sellIDvarchar30主鍵銷售編號-10-學院本科畢業(yè)論文(設計)Pzsfloat8銷售品種數(shù)Jemoney8總計金額ysjlvarchar50驗收結論khn

34、amevarchar100客戶名稱xsdatedatetime8銷售日期Czyvarchar30操作員Jsrvarchar30經(jīng)手人jsfsvarchar10結算方式(6)銷售明細表銷售明細表的名稱為tb_sell_detail,主要用于存儲銷售的詳細信息。如表4-6。表4-6銷售明細表字段名稱數(shù)據(jù)類型字段大小是否主鍵說明Idvarchar50主鍵流水號sellIDvarchar50銷售編號spidvarchar50產(chǎn)品編號Djmoney8銷售單價Slfloat8銷售數(shù)量(7)客戶信息表客戶信息表的名稱為tb_khinfo,主要用于存儲客戶的信息。如表4-7。表4-7客戶信息表字段名稱數(shù)據(jù)類型

35、長度是否主鍵說明idvarchar50主鍵客戶編號khnamevarchar50客戶名稱jianvarchar50客戶簡稱addressvarchar100客戶地址bianmavarchar50郵政編碼telvarchar50客戶faxvarchar50客戶 lianvarchar50聯(lián)系人ltelvarchar50聯(lián)系人mailvarchar50地址-11-學院本科畢業(yè)論文(設計)xinhangvarchar60開戶行haovarchar60賬號4.2系統(tǒng)功能模塊設計4.2.1公共類設計公共類也是代碼重用的一種形式,他將各個功能模塊經(jīng)常調用的方法提取到共用的Java類中,例如訪問數(shù)據(jù)庫的Da

36、o類容納了所有訪問數(shù)據(jù)庫的方法,并同時管理者數(shù)據(jù)庫的連接和關閉。這樣不但實現(xiàn)了項目代碼的重用,還提高了程序的性能和代碼可讀性。4.2.2系統(tǒng)登錄模塊設計系統(tǒng)登錄也是項目必須開發(fā)的模塊,主要由兩部分組成,一部分是登錄窗體,另一部分是窗體中帶背景圖片的容面板。它是系統(tǒng)的安全門,只有提供正確的用戶名和登錄口令之后,才能進入企業(yè)進銷存管理系統(tǒng)進行進銷存管理工作。創(chuàng)建登錄界面login.jsp:使用html、css來設計頁面js實現(xiàn)動態(tài)效果。創(chuàng)建LoginAction類進行相關的登錄驗證操作。4.2.3進貨單模塊設計進貨單模塊負責添加企業(yè)的進貨信息,他根據(jù)進貨人員提供的單據(jù),將采購商品的名稱、編號、產(chǎn)地

37、、規(guī)格、單價和數(shù)量等信息記錄到數(shù)據(jù)的庫存表中。(1)添加進貨商品:“在進貨單船體點擊“添加”按鈕,會在表格中添加一個空行可以再該空行的第一個字段選擇商品名稱,其他的字段信息會根據(jù)選擇的商品自動填充。這就需要為“添加”按鈕編寫ActionListener動作監(jiān)聽器,在該監(jiān)聽器中實現(xiàn)相應的操作。添加”按鈕的初始化由getTiButton()方法完成,該方法在初始化“添加”按鈕時,為按鈕添加了動作事件監(jiān)聽器。其關鍵代碼如下:privateJButtongetTjButton()if(tjButton=null)tjButton=newJButton();tjButton.setText(添加);-1

38、2-學院本科畢業(yè)論文(設計)tjButton.addActionListener(newActionListener()publicvoidactionPerformed(ActionEvente)/初始化票號java.sql.Datedate=newjava.sql.Date(jhsjDate.getTime();jhsjField.setText(date.toString();StringmaxId=Dao.getRuKuMainMaxId(date);idField.setText(maxId);/完畢表格中沒有編寫的單元stopTableCellEditing();/如果表格中不包含

39、空行,就添加新行for(inti=0;i=table.getRowCount()-1;i+)if(table.getValueAt(i,0)=null)return;DefaultTableModelmodel=(DefaultTableModel)table.getModel();model.addRow(newVector(););returntjButton;(2)進貨統(tǒng)計:當table表格發(fā)生屬性改變事件是,事件監(jiān)聽器首先會檢測發(fā)生的事件類型,也就是判斷發(fā)生了那種更改屬性的事件,如果事件類型是tableCellEditor則說明術語表格編輯事件,這時應該針對表格的修改事件去調用Comp

40、uteInfo()方法執(zhí)行產(chǎn)品進貨的統(tǒng)計業(yè)務并將結果顯示在相應的組件上。(3)商品入庫:再添加了進貨單中的所有商品后,單機“入庫”按鈕可以將這些商品添加到數(shù)據(jù)庫中。這需要在“入庫”按鈕的初始化方法中,為按鈕添加ActionListener動作監(jiān)聽器,在監(jiān)聽器中實現(xiàn)商品入庫的業(yè)務邏輯。-13-學院本科畢業(yè)論文(設計)其關鍵代碼如下:privateJButtongetRukuButton()if(rukuButton=null)rukuButton=newJButton();rukuButton.setText(入庫);rukuButton.addActionListener(newjava.aw

41、t.event.ActionListener()publicvoidactionPerformed(java.awt.event.ActionEvente)stopTableCellEditing();/完畢表格中沒有編寫的單元StringpzsStr=pzslField.getText();/品種數(shù)StringjeStr=hjjeField.getText();/合計金額StringjsfsStr=jsfsComboBox.getSelectedItem().toString();StringjsrStr=jsrComboBox.getSelectedItem()+;/經(jīng)手人Stringcz

42、yStr=jsrComboBox.getSelectedItem()+;StringrkDate=jhsjField.getText();/入庫時間StringysjlStr=ysjlField.getText().trim();/驗收結論Stringid=idField.getText();/票號StringgysName=gysComboBox.getSelectedItem()+;if(jsrStr=null|jsrStr.isEmpty()JOptionPane.showMessageDialog(JinHuoDan_IFrame.this,請?zhí)顚懡?jīng)手人);return;if(ysjl

43、Str=null|ysjlStr.isEmpty()JOptionPane.showMessageDialog(JinHuoDan_IFrame.this,填寫驗收結論);return;if(table.getRowCount()=0)-14-學院本科畢業(yè)論文(設計)JOptionPane.showMessageDialog(JinHuoDan_IFrame.this,填加入庫商品);return;TbRukuMainruMain=newTbRukuMain(id,pzsStr,jeStr,ysjlStr,gysName,rkDate,czyStr,jsrStr,jsfsStr);Setset

44、=ruMain.getTabRukuDetails();introws=table.getRowCount();for(inti=0;irows;i+)TbSpinfospinfo=(TbSpinfo)table.getValueAt(i,0);if(spinfo=null|spinfo.getId()=null|spinfo.getId().isEmpty()continue;StringdjStr=(String)table.getValueAt(i,6);StringslStr=(String)table.getValueAt(i,7);Doubledj=Double.valueOf(d

45、jStr);Integersl=Integer.valueOf(slStr);TbRukuDetaildetail=newTbRukuDetail();detail.setTabSpinfo(spinfo.getId();detail.setTabRukuMain(ruMain.getRkId();detail.setDj(dj);detail.setSl(sl);set.add(detail);booleanrs=Dao.insertRukuInfo(ruMain);if(rs)JOptionPane.showMessageDialog(JinHuoDan_IFrame.this,入庫完成)

46、;DefaultTableModeldftm=newDefaultTableModel();table.setModel(dftm);pzslField.setText(0);-15-學院本科畢業(yè)論文(設計)hpzsField.setText(0);hjjeField.setText(0););returnrukuButton;4.2.4銷售單模塊設計商品銷售時進銷存管理中的重要環(huán)節(jié)之一,進貨商在入庫之后就可以開始銷售。銷售單模塊主要負責根據(jù)經(jīng)手人的銷售單據(jù),操作進銷存管理系統(tǒng)的庫存商品和記錄銷售信息,方便以后查詢和統(tǒng)計。(1)添加銷售商品:”在銷售單窗體中單擊“添加,將向table表格中添加

47、新的空行,操作員可以在空行的第一列字段的商品下來列表中選擇銷售的商品,這兒下拉列表框和進貨單窗體的不同,它不是根據(jù)供貨商字段確定選擇框容,而是包含了數(shù)據(jù)庫中所欲可以銷售的商品。要實現(xiàn)添加商品的功能,需要為“添加”按鈕添加動作監(jiān)聽器,在監(jiān)聽器種實現(xiàn)相應的業(yè)務邏輯。(2)銷售統(tǒng)計:和進貨單的統(tǒng)計功能類似,銷售單也需要統(tǒng)計功能,統(tǒng)計的容包括貨品數(shù)量、品種數(shù)量、合計金額等信息,實現(xiàn)方式也是通過table表格的事件監(jiān)聽器來處理相應的統(tǒng)計業(yè)務(3)商品銷售:在銷售單窗體中添加完銷售商品之后,單擊“銷售”按鈕,將完成本次銷售單的銷售業(yè)務。系統(tǒng)會記錄本次銷售信息,并從庫存表中扣除銷售的商品數(shù)量其關鍵代碼如下:

48、/單擊銷售按鈕保存進貨信息JButtonsellButton=newJButton(銷售);sellButton.addActionListener(newActionListener()publicvoidactionPerformed(ActionEvente)-16-學院本科畢業(yè)論文(設計)stopTableCellEditing();/完畢表格中沒有編寫的單元clearEmptyRow();/清除空行StringhpzsStr=hpzs.getText();/貨品總數(shù)StringpzsStr=pzs.getText();/品種數(shù)StringjeStr=hjje.getText();/合

49、計金額StringjsfsStr=jsfs.getSelectedItem().toString();/結算方式StringjsrStr=jsr.getSelectedItem()+;/經(jīng)手人StringczyStr=czy.getText();/操作員StringrkDate=jhsjDate.toLocaleString();/銷售時間StringysjlStr=ysjl.getText().trim();/驗收結論Stringid=piaoHao.getText();/票號StringkehuName=kehu.getSelectedItem().toString();/供應商名字if(

50、jsrStr=null|jsrStr.isEmpty()JOptionPane.showMessageDialog(XiaoShouDan.this,return;if(ysjlStr=null|ysjlStr.isEmpty()JOptionPane.showMessageDialog(XiaoShouDan.this,return;if(table.getRowCount()=0)JOptionPane.showMessageDialog(XiaoShouDan.this,return;TbSellMainsellMain=newTbSellMain(id,pzsStr,jeStr,ysj

51、lStr,kehuName,rkDate,czyStr,jsrStr,jsfsStr);Setset=sellMain.getTbSellDetails();introws=table.getRowCount();for(inti=0;irows;i+)TbSpinfospinfo=(TbSpinfo)table.getValueAt(i,0);StringdjStr=(String)table.getValueAt(i,6);-17-學院本科畢業(yè)論文(設計)StringslStr=(String)table.getValueAt(i,7);Doubledj=Double.valueOf(dj

52、Str);Integersl=Integer.valueOf(slStr);TbSellDetaildetail=newTbSellDetail();detail.setSpid(spinfo.getId();detail.setTbSellMain(sellMain.getSellId();detail.setDj(dj);detail.setSl(sl);set.add(detail);booleanrs=Dao.insertSellInfo(sellMain);if(rs)JOptionPane.showMessageDialog(XiaoShouDan.this,銷售完成);Defau

53、ltTableModeldftm=newDefaultTableModel();table.setModel(dftm);initTable();pzs.setText(0);hpzs.setText(0);hjje.setText(0););4.2.5庫存盤點模塊設計“庫存盤點模塊主要負責計算庫管理人員的商品盤點數(shù)量和庫存數(shù)量的損益。程序界面將提示當前日期好庫存產(chǎn)品的品種數(shù)量,并在表格中顯示所有庫存產(chǎn)品,在表格的“盤點數(shù)量”一列中輸入相應產(chǎn)品的盤點數(shù)量,損益數(shù)量”字段會自動計算該商品的剩余產(chǎn)品數(shù)量,如果該數(shù)量為整數(shù),說明庫存數(shù)量多于盤點數(shù)量。(1)讀取庫存商品:本模塊窗體的商品表格table

54、組件用于顯示庫存中的所有商品信息,這需要在initTable()方法中初始化表格字段名,并調用Dao類的getKucunInfos()方法讀取庫存數(shù)據(jù)總的所有商品列表,添加到table商品表格組件中。-18-學院本科畢業(yè)論文(設計)(2)統(tǒng)計損益數(shù)量:商品表格組件需要在用戶輸入盤點數(shù)量時,自動計算并更新?lián)p益單元的容,也就是使用庫存商品實際數(shù)量減去商品輸入的盤點數(shù)量,實現(xiàn)自動計算功能的最好方式,就是為表格組件的“盤點數(shù)量”編輯器的編輯組添加按鍵監(jiān)聽器,使用該按鍵監(jiān)聽器可以限制用戶只能輸入數(shù)字信息同時還可以在按鍵事件發(fā)生時進行損益統(tǒng)計。其關鍵代碼如下:/盤點字段的按鍵監(jiān)聽器privateclass

55、PanDianKeyAdapterextendsKeyAdapterprivatefinalJTextFieldfield;privatePanDianKeyAdapter(JTextFieldfield)this.field=field;publicvoidkeyTyped(KeyEvente)if(0123456789+(char)8).indexOf(e.getKeyChar()+)=0)kcStr=(String)table.getValueAt(row,7);tryintpdNum=Integer.parseInt(pdStr);intkcNum=Integer.parseInt(k

56、cStr);if(row=0)table.setValueAt(kcNum-pdNum,row,10);if(e.getKeyChar()!=8)-19-學院本科畢業(yè)論文(設計)field.setEditable(false);catch(NumberFormatExceptione1)field.setText(0);4.3本章小結本章研究的是進銷存管理系統(tǒng)的設計部分,首先介紹了系統(tǒng)的結構設計,完成系統(tǒng)模塊的功能設計,本章共設計了四個系統(tǒng)模塊,分別是:(1)登錄模塊(2)進貨單模塊(3)銷貨單模塊(4)庫存盤點模塊最后設計系統(tǒng)的數(shù)據(jù)庫E-R圖和數(shù)據(jù)庫表。-20-學院本科畢業(yè)論文(設計)第5章

57、系統(tǒng)測試5.1系統(tǒng)軟件測試軟件測試是保證軟件正確性與可靠性的重要環(huán)節(jié)。測試工作涉與到軟件工程的各個開發(fā)階段。5.1.1測試原則在測試中我們遵守以下各項原則:(1)預先估計輸出結果(2)編程人員不測試本人程序。(3)測試例題的設計兼顧有效與無效輸入,正確與錯誤輸入。(4)檢查一個程序是否完成了所有的工作只是測試工作的一半,另一半是要檢查程序是否還有預料之外的副作用。(5)在假設系統(tǒng)有錯的情況下進行測試。5.1.2模塊測試依據(jù)傳統(tǒng)的方法,將系統(tǒng)測試作為軟件丌發(fā)的一個階段,系統(tǒng)測試執(zhí)行工作將在系統(tǒng)開發(fā)完成后開展,很明顯,這樣做不利于BUG的與時暴露。有些缺陷可能會埋藏至后期發(fā)現(xiàn),這時的修復成本將大大

58、提高。我們依據(jù)“全過程測試”的測試理念,在本系統(tǒng)中我們將軟件的開發(fā)和軟的測試緊密的結合在一起,要求要充分關注開發(fā)過程,對開發(fā)過程的各種變化與時做出響應。例如開發(fā)進度的調整可能會引起測試進度與測試策略的調整,需求的變更會影響到測試的執(zhí)行等等;要求對測試的全過程進行全程的跟蹤,例如建立完善的度量與分析機制,通過對自身過程的度量,與時了解過程信息,調整測試策略模塊測試主要對軟件產(chǎn)品的每個模塊單獨的進行測試。(1)登錄測試,如表5-1所示。表5-1登陸測試測試測試用例期望結果實際結果登錄模塊用戶名:tsoft密碼:111能以此賬戶登陸,并具有所應有的權限能以此賬戶登陸,并進行相關操做(2)進貨單測試,

59、如表5-2進貨測試表所示。-21-學院本科畢業(yè)論文(設計)表5-2進貨測試測試測試用例期望結果實際結果進貨單模塊測試添加商品名為:長亮臺燈,數(shù)量:100,單價:能使用上述能編輯信息進貨單模塊可以完成進貨信息的添加50的進貨信息并入庫(3)銷售單測試,如表5-3所示。表5-3銷售單測試測試測試用例期望結果實際結果銷售單模塊測試向明日科技公司銷售商品長亮臺燈50臺完成金額的核算,并完成相關信息的變動完成期望結果(4)庫存盤點測試,如表5-4所示。表5-4庫存盤點測試測試測試用例期望結果實際結果庫存盤點模塊測試查看長亮臺燈的庫存信息長亮臺燈庫存50臺與期望結果一致5.2本章小結明確了系統(tǒng)測試的目標與

60、計劃,對課題的設計與實現(xiàn)進行測試,依據(jù)軟件工程的測試流程,采用軟件測試方法,先制定了測試功能與性能標準,進行測試,通過測試過程中得到的數(shù)據(jù),說明該課題研究的進銷存管理系統(tǒng)符合分析要求-22-學院本科畢業(yè)論文(設計)結論畢業(yè)設計開始時,沒有一點想法,畢竟設計一個好的WEB項目,并不是一個容易的事情。一些Dao模式、框架的概念都比怎么懂,所以在第一個月主要投身于框架的的學習上面。經(jīng)過3個月的學習與思考。最后將其完成。由于自身能力的限制,這個企業(yè)進銷存管理系統(tǒng)仍有很多不完善的地方。在學習期間,我學到了很多東西,之前只是剛剛接觸java,從未想過自己能夠實現(xiàn)這么多的功能,各種界面的設計,數(shù)據(jù)的連接,發(fā)

溫馨提示

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

評論

0/150

提交評論