基于JAVA超市進(jìn)銷存管理系統(tǒng)畢業(yè)設(shè)計.doc_第1頁
基于JAVA超市進(jìn)銷存管理系統(tǒng)畢業(yè)設(shè)計.doc_第2頁
基于JAVA超市進(jìn)銷存管理系統(tǒng)畢業(yè)設(shè)計.doc_第3頁
基于JAVA超市進(jìn)銷存管理系統(tǒng)畢業(yè)設(shè)計.doc_第4頁
基于JAVA超市進(jìn)銷存管理系統(tǒng)畢業(yè)設(shè)計.doc_第5頁
已閱讀5頁,還剩44頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

摘 要由于超市行業(yè)的競爭越來越強,超市規(guī)模的發(fā)展不斷擴(kuò)大,商品數(shù)量和種類急劇增加,有關(guān)商品的信息量也隨之增長。超市隨時都需要對商品各種信息進(jìn)行統(tǒng)計分析。超市銷售管理系統(tǒng)是基于J2EE的技術(shù)架構(gòu),使用JSP構(gòu)建動態(tài)網(wǎng)頁和Servlet組件,使用Tomcat作為web服務(wù)器, 用JDBC連接的MySql數(shù)據(jù)庫作為存儲對象,在設(shè)計和完成的過程中加深對數(shù)據(jù)庫查詢方法的理解,也進(jìn)一步的了解MVC的設(shè)計模式。系統(tǒng)主要實現(xiàn)的功能:管理員信息的管理、銷售管理、員工管理、供應(yīng)商管理。通過上述功能實現(xiàn)對進(jìn)貨、銷售及員工等基本的信息采集和處理,輔助提高超市的決策水平;使用該系統(tǒng),可以提升超市的管理水平和運作效率,降低經(jīng)營成本, 提高管理人員的效益,增強超市擴(kuò)張力。關(guān)鍵詞: J2EE;Servlet;JSP;MySql;銷售管理AbstractWith the competition between supermarkets becoming stronger and stronger, supermarkets themselves becoming larger and larger, and the quantity as well as the varieties of merchandise increasing sharply, the quantity of information about merchandise is becoming larger, too. The supermarket needs to be ready to make statistical analysis of all the information about the merchandise all the time. This system is based on the technological architecture of Java 2 Platform Enterprise Edition, use of JSP Construction of dynamic pages and Servlet as its components,using Tomcat as a web server, using the MySql database as a storage object and visiting to the database are through module JDBC link, in the design and complete the process of deepening the understanding of the database query methods, but also a better understanding of the MVC design pattern.The system compromises the following modules: user right management, sales management, staff management and supplier management, hence managing the recording and inquiring of the information about purchases, sales and employees. Supermarkets may make better decisions by collecting and processing some basic information. Through this system, the management and operational efficiency can be improved, the operating cost can be reduced, the efficiency of the staff members can be promoted and the supermarkets expandability can become stronger.Key words: J2EE;Servlet;JSP;MySql;sales management目錄1緒論12開發(fā)環(huán)境及開發(fā)工具的介紹22.1關(guān)于WEB22.2J2EE的優(yōu)勢22.3JSP語言和HTML語言32.4關(guān)于Servlet32.5MySql數(shù)據(jù)庫42.5.1MySql的優(yōu)勢42.6Tomcat服務(wù)器52.6.1Tomcat 服務(wù)器簡介52.6.2TomCat的優(yōu)勢53需求分析和可行性分析73.1系統(tǒng)用戶及其功能分析73.2系統(tǒng)的模塊劃分73.3系統(tǒng)運行環(huán)境83.4技術(shù)可行性83.5操作可行性84系統(tǒng)總體設(shè)計94.1設(shè)計思想94.2系統(tǒng)功能模塊圖104.3實體關(guān)系圖104.4數(shù)據(jù)庫設(shè)計144.5系統(tǒng)的用例圖184.6系統(tǒng)登錄時序圖215系統(tǒng)的詳細(xì)設(shè)計225.1系統(tǒng)模塊的劃分225.2模塊流程和具體實現(xiàn)225.2.1用戶登錄模塊225.2.2商品的銷售管理模塊245.2.3員工管理模塊285.2.4供應(yīng)商管理模塊295.2.5管理員信息管理模塊316系統(tǒng)測試346.1模塊測試34結(jié)束語36致 謝37參考文獻(xiàn)38附錄 部分源代碼391 緒論隨著現(xiàn)代科學(xué)技術(shù)的迅猛發(fā)展,計算機技術(shù)已經(jīng)滲透到商業(yè)領(lǐng)域,成為各行業(yè)必不可少的工具,特別是Internet技術(shù)的推廣和信息高速公路的建立,使IT產(chǎn)業(yè)在市場競爭中越發(fā)顯示出其獨特的優(yōu)勢。超市形態(tài)的高速發(fā)展,其經(jīng)營管理也變得愈加復(fù)雜,日常所需要處理的數(shù)據(jù)量也逐漸增大,商業(yè)運轉(zhuǎn)的中間環(huán)節(jié)也越來越多,對于超市的資源管理,信息的存儲和處理也顯得迫切需要,要適應(yīng)市場競爭,就需要有高效的處理方式和管理方法,因此加快超市的信息化進(jìn)程是必可少的。原始的人工管理已無法應(yīng)對這復(fù)雜的市場。依靠現(xiàn)代化的計算機信息處理技術(shù)來管理超市,節(jié)省了大量的人力、物力,提高了員工的工作效率,減輕了勞動強度,使管理人員快速對市場的變化做出相應(yīng)的決策,加快超市經(jīng)營管理效率。通過這個系統(tǒng)的開發(fā),我將細(xì)致的分析如何基于J2EE協(xié)議,運用Servlet,JDBC,MySql等技術(shù)實現(xiàn)一個超市銷售管理系統(tǒng)的。這次設(shè)計,基本上實現(xiàn)了超市管理所必需的幾個功能,例如管理員模塊中,設(shè)有超級管理員和普通管理員,管理員的權(quán)限不同,超級管理員有管理普通管理員的權(quán)限。在系統(tǒng)設(shè)計過程中,我盡量采用易懂易讀的人機界面,使用戶可以在短期內(nèi)完全掌握,力求數(shù)據(jù)的完整和處理的正確性。在此基礎(chǔ)上優(yōu)化程序代碼,加速系統(tǒng)運行和減少對系統(tǒng)資源的占用。2 開發(fā)環(huán)境及開發(fā)工具的介紹2.1 關(guān)于WEBWEB是一組原則:互聯(lián)網(wǎng)作為其唯一的平臺,利用集體智慧,數(shù)據(jù),沒有軟件發(fā)布周期,輕量級編程。WEB的主要特點就是用戶可以通過瀏覽器從WEB系統(tǒng)上獲取信息,用戶既是WEB系統(tǒng)的消費者(信息獲取者),同時也是這個系統(tǒng)的內(nèi)容制造者。WEB還有一個很重要的特點就是其是動態(tài)的,表現(xiàn)在交互性上,它實現(xiàn)了超連接,用戶的瀏覽順序和所到站點完全由用戶自己決定。另外用戶通過填寫表單(FORM)的形式向服務(wù)器提交請求,服務(wù)器可以根據(jù)用戶的請求返回相應(yīng)信息。在WEB2.0中,用戶的角色則被提高到了一個不同的位置,它更加重視用戶的交互作用。WEB擁有一個被稱為無狀態(tài)的協(xié)議,這是因為服務(wù)器在發(fā)送給客戶機應(yīng)答信息后便遺忘了此次交互。在有狀態(tài)的協(xié)議中客戶機與服務(wù)器要記住許多關(guān)于彼此和它們的各種請求與應(yīng)答信息。2.2 J2EE的優(yōu)勢J2EE(Java 2 Platform Enterprise Edition)是使用Java技術(shù)開發(fā)企業(yè)級應(yīng)用的一種事實上的工業(yè)標(biāo)準(zhǔn),它是Java技術(shù)不斷適應(yīng)和促進(jìn)企業(yè)級應(yīng)用過程的產(chǎn)物(目前,Java平臺有三個版本:適用于小型設(shè)備和智能卡的J2ME(Java 2 Platform Micro Edition)、適用于桌面系統(tǒng)的J2SE(Java 2 Platform Standard Edition)和適用于企業(yè)級應(yīng)用的J2EE(Java 2 Platform Enterprise Edition))。J2EE是一個標(biāo)準(zhǔn),而不是一個現(xiàn)成的產(chǎn)品。各個平臺開發(fā)商根據(jù)J2EE規(guī)范分別開發(fā)了不同的J2EE應(yīng)用服務(wù)器,J2EE應(yīng)用服務(wù)器是J2EE企業(yè)級應(yīng)用的部署平臺。因此,使用J2EE技術(shù)開發(fā)的企業(yè)級應(yīng)用可以部署在各種J2EE應(yīng)用服務(wù)器上。采用J2EE的目的是為了克服傳統(tǒng)Client/Server模式的弊病,迎合Browser/Server架構(gòu)的潮流,為了應(yīng)用Java技術(shù)開發(fā)服務(wù)器端應(yīng)用提供一個平臺獨立的、可移植的、多用戶的、安全的和基于標(biāo)準(zhǔn)的企業(yè)級平臺,從而簡化企業(yè)應(yīng)用的開發(fā)、管理和部署。其主要的優(yōu)點是:高效的開發(fā),持續(xù)性服務(wù),支持異構(gòu)環(huán)境,可伸縮性,穩(wěn)定的可用性。由于J2EE的這些優(yōu)點使得采用J2EE應(yīng)用架構(gòu)系統(tǒng)具備可擴(kuò)充性,當(dāng)系統(tǒng)平臺發(fā)生變化時,系統(tǒng)能夠和新平臺很好的融合在一起,這樣使得系統(tǒng)具有很好的伸縮性。為了推廣并規(guī)范化使用J2EE架構(gòu)企業(yè)級應(yīng)用的體系架構(gòu),Sun同時給出了一個建議性的J2EE應(yīng)用設(shè)計模型:J2EE Blueprints。J2EE Blueprints提供了實施J2EE企業(yè)級應(yīng)用的體系架構(gòu)、設(shè)計模式和相關(guān)的代碼,通過應(yīng)用J2EE Blueprints所描述的體系模型,能夠部分簡化架構(gòu)企業(yè)級應(yīng)用這項復(fù)雜的工作。2.3 JSP語言和HTML語言HTML(Hyper Text Markup Language 超文本標(biāo)記語言)是一種用來制作超文本文檔的簡單標(biāo)記語言。HTML文檔,它能獨立于各種操作系統(tǒng)平臺;其通過利用各種標(biāo)記(tags)來標(biāo)識文檔的結(jié)構(gòu)以及標(biāo)識超鏈接(Hyperlink)的信息,能描述了文檔的結(jié)構(gòu)格式,但并不能精確地定義文檔信息必須如何顯示和排列,而只是建議Web瀏覽器(如Mosiac,Netscape等)應(yīng)該如何顯示和排列這些信息,最終在用戶面前的顯示結(jié)果取決于Web瀏覽器本身的顯示風(fēng)格及其對標(biāo)記的解釋能力。 而JSP語言是一種建立動態(tài)網(wǎng)頁的技術(shù)標(biāo)準(zhǔn),在傳統(tǒng)的HTML語言中插入Java程序段(Scriptlet)和JSP標(biāo)記(tag),從而形成JSP文件(*.jsp)。JSP技術(shù)使用Java編程語言編寫類XML的tags和scriptlets,來封裝產(chǎn)生動態(tài)網(wǎng)頁的處理邏輯。網(wǎng)頁還能通過tags和scriptlets訪問存在于服務(wù)端的資源的應(yīng)用邏輯。JSP將網(wǎng)頁邏輯與網(wǎng)頁設(shè)計和顯示分離,支持可重用的基于組件的設(shè)計,使基于Web的應(yīng)用程序的開發(fā)變得迅速和容易。 Web服務(wù)器在遇到訪問JSP網(wǎng)頁的請求時,首先執(zhí)行其中的程序段,然后將執(zhí)行結(jié)果連同JSP文件中的HTML代碼一起返回給客戶。插入的Java程序段可以操作數(shù)據(jù)庫、重新定向網(wǎng)頁等,以實現(xiàn)建立動態(tài)網(wǎng)頁所需要的功能。 JSP與Servlet一樣,是在服務(wù)器端執(zhí)行的,通常返回該客戶端的就是一個HTML文本,因此客戶端只要有瀏覽器就能瀏覽。服務(wù)器在頁面被客戶端請求以后對這些Java代碼進(jìn)行處理,然后將生成的HTML頁面返回給客戶端的瀏覽器。Servlet 是JSP的技術(shù)基礎(chǔ),而且大型的Web應(yīng)用程序的開發(fā)需要Java Servlet和JSP配合才能完成。JSP具備了Java技術(shù)的簡單易用,完全的面向?qū)ο螅哂衅脚_無關(guān)性且安全可靠,主要面向因特網(wǎng)的所有特點。2.4 關(guān)于ServletServlet是基于Http協(xié)議的, 運行在web服務(wù)器中的程序,與傳統(tǒng)的從命令行啟動的Java應(yīng)用程序不同。Servlet是運行在web容器中,這個web容器可以控制Servlet對象的生命周期,控制請求由Servlet對象處理。Servlet可以用來生成動態(tài)的Web頁面,可以針對不同的請求作出不同的響應(yīng),可以實現(xiàn)頁面的流轉(zhuǎn),Servlet可以充當(dāng)MVC模式中的Controller模塊,他可以控制信息的流向。Servlet由Web服務(wù)器進(jìn)行加載,該Web服務(wù)器必須包含Servlet的Java虛擬機。Servlet,是接受來自網(wǎng)絡(luò)的請求(form表單,以及其他的請求),并對不同請求作出不同的響應(yīng)。MVC即Model-View-Controller的縮寫,是一種常用的設(shè)計模式。MVC 減弱了業(yè)務(wù)邏輯接口和數(shù)據(jù)接口之間的耦合,以及讓視圖層更富于變化,MVC可以讓整個邏輯很清晰,這種思想和思維和人的思維很接近,很容易被理解。在本系統(tǒng)中承擔(dān)MVC中Controller角色的是一個Servlet。JSP完成View的角色,JavaBean是框架中的Model。MVC框架圖如圖2-1所示: Controller 連接了模型和視圖,判斷請求交給哪個模型,調(diào)用視圖顯示模型處理用戶請求結(jié)果 Model封裝了用戶數(shù)據(jù)和處理數(shù)據(jù)的業(yè)務(wù)邏輯 View提供了用戶界面,將用戶輸入數(shù)據(jù)傳遞給控制器或?qū)⒛P蛿?shù)據(jù)顯示給用戶用戶請求業(yè)務(wù)請求狀態(tài)改變狀態(tài)查詢圖2-1 MVC框架圖2.5 MySql數(shù)據(jù)庫數(shù)據(jù)庫(Database)是一系列信息資源的集合。對于任何一個項目來講數(shù)據(jù)庫是必不可少的,因為一個項目對應(yīng)著的大量數(shù)據(jù)的不可能存在價格昂貴且不安全的內(nèi)存中在中。一個數(shù)據(jù)庫中,與一個項目有關(guān)的所有信息都可以叫做一條記錄(Record)。每一條記錄都是由一系列的字段(Field)組成的。一系列記錄的集合就構(gòu)成了數(shù)據(jù)表格,及我們常說的表(Table)。對于一個簡單的“平面文件”的數(shù)據(jù)庫來說,它僅包含了一個數(shù)據(jù)表格,而對一個“關(guān)系型”數(shù)據(jù)庫來說,它卻包含兩個或兩個以上的數(shù)據(jù)表格,表格的各字段之間存在這一種或多種關(guān)系通??梢园堰@種關(guān)系叫做“鏈接”。2.5.1 MySql的優(yōu)勢MySQL作為一種開放源碼數(shù)據(jù)庫,以其簡單易用的特點廣泛被廣大用戶采用,MySQL雖然是免費的,但同Oracle, Sybase, Informix, Db2等商業(yè)數(shù)據(jù)庫一樣,具有數(shù)據(jù)庫系統(tǒng)的通用性: 1) 數(shù)據(jù)庫管理系統(tǒng)。我們知道,所謂的數(shù)據(jù)庫就是一些結(jié)構(gòu)化的數(shù)據(jù)的聯(lián)合體,要提供對這些數(shù)據(jù)的存取、增加、修改、刪除或更加復(fù)雜的數(shù)據(jù)抽取等操作,需要有一個支撐系統(tǒng),這就是數(shù)據(jù)庫管理系統(tǒng)(DBMS),MySQL完全具有這方面的功能。 2) 關(guān)系型數(shù)據(jù)庫管理系統(tǒng)。在數(shù)據(jù)庫的發(fā)展歷程中,曾出現(xiàn)過多種不同形式的數(shù)據(jù)庫系統(tǒng),但關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS)以其優(yōu)越性而被廣為采用,象現(xiàn)在幾種廣泛使用的數(shù)據(jù)庫全為關(guān)系型數(shù)據(jù)庫。同樣,MySQL也是關(guān)系型的數(shù)據(jù)庫系統(tǒng),支持標(biāo)準(zhǔn)的結(jié)構(gòu)化查詢語言(Structured Query Language)。 3) 開放源碼數(shù)據(jù)庫。同商業(yè)性的數(shù)據(jù)庫相比,這是MySQL最大的特點。MySQL的源碼是公開的,這就意味著任何人,只要遵守GPL的規(guī)則都可以對MySQL的源碼使用、修改以符合自己特殊的需求。4) 技術(shù)特點。MySQL是C/S架構(gòu)的服務(wù)器,服務(wù)器端是多線程的,為客戶端提供了不同的程序接口和鏈接庫,如C、C+、Java、Perl、PHP、Tcl等,也提供了簡單的管理工具,如mysqladmin,mysql等。MySQL有如此多的特點,又由于其免費的特點,這就給許多的中小應(yīng)用提供了不錯的選擇。 尤其是對一些中小企業(yè),無論是從降低成本,還是從性能方面,采用MySQL作為其數(shù)據(jù)支 撐系統(tǒng),都是一種可行的方案。但也應(yīng)當(dāng)注意,采用MySQL作為應(yīng)用數(shù)據(jù)庫,就意味著所有的問題都需要自己解決,要承擔(dān)一定的風(fēng)險。2.6 Tomcat服務(wù)器2.6.1 Tomcat 服務(wù)器簡介Tomcat是web服務(wù)器的一種,那么它就有web服務(wù)器的基本功能:1.接受請求2.請求的合法性檢查,包括安全性屏蔽3.針對請求獲取并制作數(shù)據(jù),包括Java腳本和程序、CGI腳本和程序、為文件設(shè)置適當(dāng)?shù)腗IME類型來對數(shù)據(jù)進(jìn)行前期處理和后期處理4.把信息發(fā)送給提出請求的客戶機Tomcat是一個免費的開源的Serlvet容器,最新的Servlet和JSP規(guī)范總能在Tomcat中得到體現(xiàn)。Tomcat中采用了Servlet容器:Catalina,完整的實現(xiàn)了Servlet2.3和Jsp1.2規(guī)范。由于Java的跨平臺特性,基于Java的Tomcat也具有跨平臺性。2.6.2 TomCat的優(yōu)勢Tomcat不僅僅是一個Servlet容器,它也具有傳統(tǒng)的Web服務(wù)器的功能:處理Html頁面。但是,它的處理靜態(tài)Html的能力與Apache相比就不盡人意。故可以將Tomcat和Apache集成到一塊,讓Apache處理靜態(tài)Html,而Tomcat處理Jsp和Servlet.這種集成只需要修改一下Apache和Tomcat的配置文件即可。Tomcat服務(wù)器的安裝和配置在開始安裝之前,要先安裝JDK,安裝好后設(shè)置環(huán)境變量,步驟為:右擊“我的電腦”=屬性=高級=環(huán)境變量=新建; 在系統(tǒng)環(huán)境變量中增加一個環(huán)境變量,變量名為JAVA_HOME,其值為JDK的安裝路徑。驗證有沒有安成功的方法是在DOS窗口中輸入命令javac,根據(jù)返回信息判斷。 然后再安裝TOMCAT。安裝完后,也在系統(tǒng)環(huán)境變量中增加一個環(huán)境變量,變量名為CATALINA_HOME,變量值為Tomcat的安裝路徑,不需到bin目錄,如:CATALINA_HOME=d:Tomcat 5.0;最后還要在系統(tǒng)變量名CLASSPATH的之后加上“;%CATALINA_HOME%commonlib”,這是一定要注意的。這些都完成后,打開Tomcat服務(wù)器,啟動瀏覽器,在地址欄上輸入:http:/localhost:8080,若出現(xiàn)以下界面說明安裝成功。在Tomcat中,應(yīng)用程序的部署很簡單,只需將應(yīng)用程序放到Tomcat的webapp目錄下,Tomcat會自動檢測到這個文件。在瀏覽器中訪問這個應(yīng)用的JSP時,通常第一次會很慢,因為Tomcat要將JSP轉(zhuǎn)化為Servlet文件,然后編譯。編譯以后,訪問將會很快。3 需求分析和可行性分析3.1 系統(tǒng)用戶及其功能分析為了便于超市的管理,超市管理員的權(quán)限必須有所差異。系統(tǒng)用戶主要分為兩種:超級管理員和普通管理員。超級管理員就是超市的總經(jīng)理,普通管理員對應(yīng)超市各部門的管理員。超級管理員和普通管理員都有修改自己信息的權(quán)限,但是普通管理員不能自己修改其用戶名和其所在部門,若需要修該或發(fā)生調(diào)到,必須由超級管理員來修改。其他權(quán)限一樣,都可以進(jìn)行銷售管理,員工管理,供應(yīng)商的管理,管理的操作都會記錄下來。3.2 系統(tǒng)的模塊劃分本系統(tǒng)實現(xiàn)一個超市后臺管理所具有的基本功能,包括商品的進(jìn)貨管理,查看進(jìn)貨表單;商品的庫存管理,操作商品的上架數(shù);對上架商品的模糊查詢和關(guān)鍵字查詢;對商品信息進(jìn)行增刪改查,設(shè)置商品的上架價格,數(shù)量;商品銷售量信息查詢的實現(xiàn);部門的增加和修改;普通員工信息的查詢、增加和刪除;管理員的登錄,管理員個人資料修改,超級管理員可以對普通管理員進(jìn)行增刪改查,對于登錄的不同管理員進(jìn)行的操作做相應(yīng)的記錄;供應(yīng)商信息的增加、刪除和修改。主要模塊劃分如下:1. 供應(yīng)商管理:實現(xiàn)供應(yīng)商信息的增加、修改和刪除,按選擇條件的精確查找和模糊查找。2.銷售管理:實現(xiàn)商品的進(jìn)貨,其中涉及到到供貨商,若沒有供應(yīng)商不能完成進(jìn)貨;同一批進(jìn)貨對應(yīng)同一個進(jìn)貨單號。進(jìn)貨表單的查詢,記錄下商品進(jìn)貨時的初始信息,和實施該操作的管理員信息。進(jìn)完貨后,到庫存管理,庫存的管理就是實現(xiàn)庫存量的查詢,實現(xiàn)商品的上架;對已上架商品的管理主要實現(xiàn)已上架商品信息的模糊和關(guān)鍵字查詢;信息的修改,其中包括商品的上架數(shù)的修改和價格的修改,商品的刪除;商品銷售信息的統(tǒng)計查詢,包括已售出數(shù)量,庫存量,進(jìn)貨量。3.員工管理:普通員工的模糊查找和精確查找、增加、刪除和修改普通員工信息;增加部門和修改部門信息,得到該部門的總體人數(shù),部門信息發(fā)生變化時,相應(yīng)的員工信息發(fā)生變化,員工轉(zhuǎn)向其他部門時,相應(yīng)的部門的總?cè)藬?shù)發(fā)生變化。為信息的安全考慮,管理員的信息不在普通員工信息列表。4. 權(quán)限管理:不管是超級管理員還是普通管理員都可以對自己的信息進(jìn)行修改;作為超級管理員可以對普通管理員的信息進(jìn)行修改,刪除和添加普通管理員的權(quán)限;若普通管理員所在部門發(fā)生改變,則部門的信息相應(yīng)的發(fā)生變化。3.3 系統(tǒng)運行環(huán)境硬件需求: 硬盤20G/內(nèi)存256M及以上配置,要求為銷售分配足夠的數(shù)據(jù)庫磁盤空間推薦配置:硬盤40G/內(nèi)存512M操作系統(tǒng)需求: Windows2000及以上操作系統(tǒng) ( 推薦 ) ,也可以使用 Sun Solaris 等 Linux 操作系統(tǒng)數(shù)據(jù)庫軟件需求: MySql數(shù)據(jù)庫(推薦)中間件軟件需求:Tomcat系列服務(wù)器。3.4 技術(shù)可行性超市銷售管理系統(tǒng),可以基于J2EE平臺,采用Java語言 ,數(shù)據(jù)量小,任何一個數(shù)據(jù)庫都可以滿足要求。實現(xiàn)過程中可以用JDBC,Hibernate等連接數(shù)據(jù)庫,并可以使用SQL語句進(jìn)行查詢、插入、刪除、更新等操作,功能實現(xiàn)不復(fù)雜。已經(jīng)學(xué)習(xí)過數(shù)據(jù)庫、軟件工程等相關(guān)課程,而語言基本思想大致是一樣的,Java語言掌握起來應(yīng)該沒有問題。再者,網(wǎng)上信息特別豐富,可以上網(wǎng)查找有關(guān)資料,在技術(shù)方面有指導(dǎo)老師可以進(jìn)行指導(dǎo),還可以上網(wǎng)查詢相關(guān)資料。因此,在技術(shù)方面實現(xiàn)本系統(tǒng)是不存在問題的。3.5 操作可行性 由于本系統(tǒng)是基于Java語言開發(fā)的,它具有跨平臺性,可以運行在Linux和windows下。軟件操作界面簡潔,軟件的操作簡單、易學(xué)易用,非計算機專業(yè)人士都能熟練使用。由技術(shù)可行性、操作可行性的研究,可以得出結(jié)論,超市銷售管理系統(tǒng)的開發(fā)是完全可行的。4 系統(tǒng)總體設(shè)計4.1 設(shè)計思想由于考慮到C/S架構(gòu)的種種弊端,如在數(shù)據(jù)庫應(yīng)用中,數(shù)據(jù)的儲存管理功能是“透明”的,沒有對底層的數(shù)據(jù)庫操作進(jìn)行封裝,都是在應(yīng)用程序中,造成了擴(kuò)展性,安全性方面不是很好;C/S之間的協(xié)議不一定是WEB協(xié)議,造成了平臺的獨立性;C/S架構(gòu)中有很多服務(wù)層的功能是在客戶端實現(xiàn)的,客戶端要處理大量數(shù)據(jù),這樣造成服務(wù)器的負(fù)重過輕; 重要的是C/S架構(gòu)高昂的維護(hù)成本且投資大,因為C/S架構(gòu),要選擇適當(dāng)?shù)臄?shù)據(jù)庫平臺來實現(xiàn)數(shù)據(jù)庫數(shù)據(jù)的真正“統(tǒng)一”,使分布于兩地的數(shù)據(jù)同步完全交由數(shù)據(jù)庫系統(tǒng)去管理,但邏輯上兩地的操作者要直接訪問同一個數(shù)據(jù)庫才能有效實現(xiàn),有這樣一些問題,如果需要建立“實時”的數(shù)據(jù)同步,就必須在兩地間建立實時的通訊連接,保持兩地的數(shù)據(jù)庫服務(wù)器在線運行,網(wǎng)絡(luò)管理工作人員既要對服務(wù)器維護(hù)管理,又要對客戶端維護(hù)和管理,這需要高昂的投資和復(fù)雜的技術(shù)支持,維護(hù)成本很高,維護(hù)任務(wù)量大。 而且針對不同的操作系統(tǒng)系統(tǒng)開發(fā)不同版本的軟件,由于產(chǎn)品的更新?lián)Q代十分快,代價高和低效率已經(jīng)不適應(yīng)工作需要。在Java這樣的跨平臺語言出現(xiàn)之后,B/S架構(gòu)更是猛烈沖擊C/S,并對其形成威脅和挑戰(zhàn)。 故本系統(tǒng)采用基于B/S架構(gòu)下的多層結(jié)構(gòu)應(yīng)用系統(tǒng)總的來說,采用分層結(jié)構(gòu)的設(shè)計思想,可以讓每個層由一組相關(guān)的類或組件構(gòu)成,共同完成特定的功能。層與層之間存在自上而下的依賴關(guān)系,上層組件會依賴下層組件的API,而下層組件則不依賴于上層組件。例如:表述層依賴于業(yè)務(wù)邏輯層,而業(yè)務(wù)邏輯層依賴于數(shù)據(jù)庫層。并且每個層對對上層公開API,但具體的實現(xiàn)細(xì)節(jié)對外透明。當(dāng)某一層發(fā)生變化,只要API不變,不會影響其他層的實現(xiàn)。系統(tǒng)的分層結(jié)構(gòu)圖如下所示:B/S結(jié)構(gòu)簡單的說就是三層,分別為客戶機軟件(即瀏覽器)、應(yīng)用程序服務(wù)器和數(shù)據(jù)庫服務(wù)器,用戶的所有請求都由應(yīng)用程序服務(wù)器來處理。系統(tǒng)的整體架構(gòu)如下圖4-1: JSP頁面servlet業(yè)務(wù)邏輯DAO層MySql數(shù)據(jù)庫數(shù)據(jù)持久化支持服務(wù)數(shù)據(jù)訪問服務(wù)業(yè)務(wù)邏輯服務(wù)務(wù)顯示圖4-1 系統(tǒng)架構(gòu)圖DAO層實現(xiàn)對數(shù)據(jù)庫的各種操作,主要是SQL語句執(zhí)行的數(shù)據(jù)更新、插入和刪除,其中用JDBC實現(xiàn)對數(shù)據(jù)庫的連接。業(yè)務(wù)邏輯層實現(xiàn)的是對DAO層的調(diào)用,實現(xiàn)該有的業(yè)務(wù)邏輯。表述層用JSP組件實現(xiàn)。4.2 系統(tǒng)功能模塊圖根據(jù)需求分析,系統(tǒng)主要分為四個主要功能模塊,功能模塊圖如下:超市銷售管理系統(tǒng)銷 售 管 理員 工 管 理供 應(yīng) 商 管 理權(quán) 限 管 理進(jìn)貨管理貨存管理商品銷售信息部門管理普通員工管理修改 個人信息管理員信息上架商品管理供應(yīng)商信息圖 4-2 功能模塊圖4.3 實體關(guān)系圖1. 管理員:為了區(qū)分管理員的權(quán)限,用權(quán)限屬性來表示。密碼是用來管理員登錄該系統(tǒng)時驗證合法性的,部門名稱表示管理員所屬的部門,名字對應(yīng)的是管理員名字。其中編號是標(biāo)識管理員唯一性的屬性,完全與業(yè)務(wù)邏輯無關(guān),在數(shù)據(jù)庫表中設(shè)置編號為順序自動增加的。其他對應(yīng)的都是管理員的基本信息,比如說住址,名字、性別、年齡。聯(lián)系電話。和實體部門之間是多對一的關(guān)系,一個部門可以設(shè)定對個管理員。管理員實體對應(yīng)的E-R圖如下:管理員電話密碼性別部門名稱編號名字年齡權(quán)限地址 圖 4-3 管理員E-R圖2.部門:部門有三個屬性,部門名,部門編號和部門總?cè)藬?shù),部門編號作為一個部門的唯一標(biāo)識。每當(dāng)增加一個普通員工或普通管理員時,都要選擇所在部門,對應(yīng)的就是該部門的總?cè)藬?shù)要發(fā)生改變,當(dāng)部門名發(fā)生變化時,對應(yīng)的原來是該部門的員工的信息也要發(fā)生變化。部門實體對應(yīng)的E-R圖如下:部門編號部門名部門部門人數(shù) 圖 4-4 部門E-R圖3員工:部門名稱表示的是員工所屬的部門,和部門實體關(guān)系是多對一的關(guān)系,一個部門有多個員工。員工的唯一標(biāo)識屬性就是員工編號,其中屬性工作時間表示的是員工的參加工作時間,這是手動輸入的,便于修改。員工名表示員工的姓名。超市可以有相同名字的員工。實體對應(yīng)的E-R圖如下:員工員工編號員工名性別年齡工作時間電話部門名稱員工住址圖 4-5 員工E-R圖4.供應(yīng)商:屬性供應(yīng)商編號,是供應(yīng)商的唯一性標(biāo)識。其中很重要的屬性有供應(yīng)商供貨的類型以及供貨日期,供應(yīng)商每次供貨后,在對應(yīng)的進(jìn)貨表單中要顯示交易的日期即供貨日期和供應(yīng)商品的類型,便于進(jìn)貨的管理。其他對應(yīng)的是供貨商名稱,聯(lián)系電話和地址。供貨商實體對應(yīng)的E-R圖如下: 供應(yīng)商供貨日期供應(yīng)商編號名字聯(lián)系電話地址供貨類型圖 4-6 供應(yīng)商E-R圖5.商品:由于商品對應(yīng)的信息很多,有進(jìn)貨信息,庫存信息,銷售信息。進(jìn)貨涉及到屬性比較多,其中要記錄所進(jìn)貨的商品信息和提供商品的供應(yīng)商信息,其屬性有進(jìn)貨單編號,每次進(jìn)貨會有不同的商品,那么不同的商品對應(yīng)同一個進(jìn)貨單編號,表示這些商品是同一次的進(jìn)貨。操作員對應(yīng)該次進(jìn)貨的負(fù)責(zé)人即當(dāng)前的系統(tǒng)的操作員。商品編號、商品類型、商品名稱、進(jìn)貨量、價格分別描述的是進(jìn)貨商品的編號,商品是屬于食品、電器等中的哪一種類型,商品名,該商品的進(jìn)貨量和進(jìn)貨價格。供貨商編號表示提供商品的供應(yīng)商編號,若輸入供應(yīng)商編號不存在,則不能完成該次進(jìn)貨。進(jìn)貨商品信息對應(yīng)的E-R圖如下:進(jìn)貨商品信息 進(jìn)貨日期供應(yīng)商編號操作員名字進(jìn)貨單編號價格進(jìn)貨量商品編號商品類型商品名稱圖 4-7 進(jìn)貨商品信息E-R圖再就是庫存,庫存反映的是某一種商品在庫存中的數(shù)量,商品編號用來標(biāo)識商品,庫存量表示該類商品在倉庫中的剩余量。當(dāng)進(jìn)貨同一種商品時,庫存中該商品編號對應(yīng)的庫存量發(fā)生變化。商品類型、商品名稱和進(jìn)貨商品信息中的屬性表示的意思是一樣的。庫存實體對應(yīng)的E-R圖如下:庫存商品信息商品編號庫存量商品類型商品名稱 圖 4-8 庫存商品信息E-R圖已上架商品信息表示的是已經(jīng)從庫存中到柜臺上賣的商品信息,屬性商品編號是商品的唯一標(biāo)識,上架數(shù)表示的是商品拿到柜臺上賣的商品數(shù)。銷售價表示的是商品賣出去的價格,庫存量表示商品在庫存中的剩余量。已上架商品信息實體E-R圖如下:上架商品信息商品編號上架數(shù)銷售價庫存量圖 4-9 上架商品信息E-R圖新增上架商品信息表示在庫存中有但還未拿到柜臺上賣的商品信息,包含五種屬性:商品編號,商品名稱,商品類型,上架數(shù)和售價。其中上架數(shù)和售價分別表示的是新商品要拿到柜臺上賣的數(shù)量和價格。 新增上架商品信息商品編號商品類型商品名稱上架數(shù)售價圖 4-10 新增上架商品信息E-R圖6.實體之間存在依賴關(guān)系。一個部門對應(yīng)多個員工,并且一個部門還存在一個或多個管理員。但一個系統(tǒng)的超級管理員只有一位。管理員和商品間的關(guān)系是管理員從供應(yīng)商那里進(jìn)貨,對商品上架。供應(yīng)商編號建立供應(yīng)商和進(jìn)貨之間的關(guān)系。實體之間的關(guān)系圖如下:管理員上架1已上架商品信息n增加1進(jìn)貨商品信息n部門編號部門1n部門編號員工1n商品編號庫存商品信息n1新增上架商品信息n圖 4-11實體間E-R圖4.4 數(shù)據(jù)庫設(shè)計 數(shù)據(jù)庫對于數(shù)據(jù)存儲的實現(xiàn)通過表的形勢,總體上一個實體對應(yīng)一個數(shù)據(jù)庫表,實體之間存在的依賴關(guān)系,那么體現(xiàn)在數(shù)據(jù)庫中就是數(shù)據(jù)庫表的關(guān)聯(lián)關(guān)系。在程序設(shè)計中DAO層中充分的應(yīng)用這種關(guān)系的是SQL語句,SQL語句實現(xiàn)表之間的鏈接。其中涉及到非空性和字段長度的限制。下面介紹該系統(tǒng)用到的數(shù)據(jù)庫表。1. 進(jìn)貨表用來存儲進(jìn)貨商品具體信息,設(shè)計出stock表如下:表 4-1 stock表主要字段數(shù)據(jù)類型長度屬性描述id字符型6非空進(jìn)貨單號 Cargo_ID 字符型6非空商品編號 Stock_Num整型8非空進(jìn)貨量 Stock_Price浮點型總的8位,小數(shù)點后3位非空進(jìn)價 Stock_Date日期型格式為xxxx-xx-xx非空進(jìn)價日期 Pro_ID 字符型6非空供應(yīng)商編號 Mana_Name字符串型15非空管理員名對應(yīng)于MySql數(shù)據(jù)庫的進(jìn)貨表的建表語句如下:CREATE TABLE stock( id char(6) NOT NULL, Cargo_ID char(6) NOT NULL, Stock_Num int(8) NOT NULL, Stock_Price double(8,3) NOT NULL, Stock_Date date NOT NULL, Pro_ID char(6) NOT NULL, Mana_Name varchar(15) NOT NULL) SET DEFAULT CHARSET=UTF8;2. 庫存表專門用來存放商品的編號和庫存量,設(shè)計出的storage表如下:表4-2 storage表主要字段數(shù)據(jù)類型長度屬性描述Cargo_ID字符型6主鍵商品編號Storage_Num整型6非空庫存量其對應(yīng)于MySql數(shù)據(jù)庫的建表語句為: CREATE TABLE storage( Cargo_ID char(6) NOT NULL, Storage_Num int(8) NOT NULL, PRIMARY KEY (Cargo_ID) SET DEFAULT CHARSET=utf8;3. 商品信息表是為了提高數(shù)據(jù)庫中數(shù)據(jù)的存儲效率和減少數(shù)據(jù)庫表的數(shù)據(jù)冗余,專門用來存儲商品的詳細(xì)信息,設(shè)計出的cargo表如下:表4-3 cargo表主要字段數(shù)據(jù)類型長度屬性描述Cargo_ID字符型6主鍵商品編號Cargo_Name字符串型50非空商品名稱Cargo_Type字符串型20非空商品類型其對應(yīng)MySql數(shù)據(jù)庫的建表語句為:CREATE TABLE cargo ( Cargo_ID char(6) NOT NULL, Cargo_Name varchar(50) NOT NULL, Cargo_Type varchar(20) NOT NULL, PRIMARY KEY (Cargo_ID) SET DEFAULT CHARSET=utf8;4. 銷售表用來存儲上架商品的信息,設(shè)計的sell表如下:表4-4 sell表主要字段數(shù)據(jù)類型長度屬性描述Cargo_ID字符型6主鍵商品編號Sell_Num整型8非空商品上架數(shù)Sell_Price總的8位,小數(shù)點后3位8非空售價其對應(yīng)MySql數(shù)據(jù)庫的建表語句為:CREATE TABLE sell(Cargo_ID char(6) NOT NULL,Sell_Num int(8) NOT NULL,Sell_Price double(8,3) NOT NULL,PRIMARY KEY (Cargo_ID) SET DEFAULT CHARSET=utf8;5. 供應(yīng)商表記錄提供商品的商家的具體信息,provider表的設(shè)計如下:表4-5 provider表主要字段數(shù)據(jù)類型長度屬性描述Pro_ID字符型6主鍵供應(yīng)商編號Pro_Name字符串型20非空供應(yīng)商名Pro_Tel字符串型11非空供應(yīng)商聯(lián)系電話Pro_Address字符串型50非空供應(yīng)商地址Cargo_Type字符型20非空商品類型Pro_Date日期型格式為xxxx-xx-xx非空供貨日期實體對應(yīng)于MySql數(shù)據(jù)庫的建表語句為:CREATE TABLE provider ( Pro_ID char(6) NOT NULL, Pro_Name varchar(20) NOT NULL, Pro_Tel varchar(11) NOT NULL, Pro_Address varchar(50) NOT NULL, Cargo_Type char(20) NOT NULL, Pro_Date date NOT NULL, PRIMARY KEY (Pro_ID) SET DEFAULT CHARSET=utf8;6. 部門表用來記錄部門信息,department表設(shè)計對應(yīng)如下:表4-6 department表主要字段數(shù)據(jù)類型長度屬性描述Dep_ID字符型4主鍵部門編號Dep_Name字符串型10非空部門名稱Emp_Num整型4默認(rèn)值為0部門員工數(shù)對應(yīng)于MySql數(shù)據(jù)庫的其建表語句為:CREATE TABLE department( Dep_ID char(4) NOT NULL, Dep_Name varchar(10) NOT NULL, Emp_Num int(4) default value=0, PRIMARY KEY (Dep_ID) SET DEFAULT CHARSET=utf8;7. 員工表用來記錄員工的具體信息,employee表的設(shè)計如下:表4-7 employees表主要字段數(shù)據(jù)類型長度屬性描述Emp_ID整型4主鍵員工編號Emp_Name字符串型15非空員工姓名Emp_Sex字符型2非空性別Emp_Age整型3非空年齡Emp_Date日期型格式為xxxx-xx-xx非空開始工作日期Emp_Address字符串型50非空地址Emp_Tel字符串型11非空聯(lián)系電話Dep_Name字符型10非空所屬部門名該實體對應(yīng)于MySql數(shù)據(jù)庫的建表語句為:CREATE TABLE employee ( Emp_ID int(4) NOT NULL auto_increment, Emp_Name varchar(15) NOT NULL, Emp_Sex char(2) NOT NULL, Emp_Age int(3) NOT NULL, Emp_Date date NOT NULL, Emp_Address varchar(50) NOT NULL, Emp_Tel varchar(11) NOT NULL, Dep_Name char(10) NOT NULL, PRIMARY KEY (Emp_ID) SET DEFAULT CHARSET=utf8; Emp_ID字段采用順序自動增加,默認(rèn)情況下為1。8. 管理員表存儲管理的具體信息,manager表的設(shè)計如下:表4-8 manager表主要字段數(shù)據(jù)類型長度屬性描述Mana_Id整型4主鍵管理員編號Mana_Name字符串型15非空管理員名字Mana_PWD字符串型10非空管理員密碼Popedom字符串型2非空權(quán)限Mana_Sex字符串型2非空性別Mana_Age字符串型3非空年齡Mana_Dep字符串型10非空所屬部門Mana_Tel字符串型11非空聯(lián)系電話Mana_Address字符串型50非空地址對應(yīng)于MySql數(shù)據(jù)庫的管理員實體的建表語句為:CREATE TABLE manager(Mana_Id int(4) NOT NULL auto_increment, Mana_Name varchar(15) NOT NULL, Mana_PWD varchar(10) NOT NULL, Popedom varchar(2) NOT NULL, Mana_Sex varchar(2) NOT NULL, Mana_Age varchar(3) NOT NULL, Mana_Dep varchar(10) NOT NULL, Mana_Tel varchar(11) NOT NULL, Mana_Address varchar(50) NOT NULL, PRIMARY KEY (Mana_Id) SET DEFAULT CHARSET=utf8;Mana_Id字段采用順序自動增加; Popedom表示管理員的權(quán)限,0表示超級管理員,1表示普通管理員; Mana_Dep是部門表中對應(yīng)的部門名,兩表之間的關(guān)系是多對多的關(guān)系。4.5 系統(tǒng)的用例圖下面是系統(tǒng)的用例圖,通過圖我們可以看到,管理員登陸系統(tǒng)后可以進(jìn)行權(quán)限管理,進(jìn)貨管理,供應(yīng)商管理,庫存管理等。管理員是有權(quán)限之分的,超級管理員可以添加普通管理員,可以修改普通管理員信息,比如修改普通管理員的權(quán)限密碼。對于一個超級管理員,他具有最大權(quán)限,在管理員管理中,它可以對普通管理員進(jìn)行增刪改查。圖 4-12 管理員用例圖超級管理員的用例圖:圖 4-13 超級管理員用例圖權(quán)限管理部分:圖 4-14 權(quán)限管理用例圖銷售管理部分:圖 4-15 銷售管理用例圖供應(yīng)商管理部分:圖 4-16 供應(yīng)商管理用例圖員工管理部分:圖 4-17 員工管理用例圖普通管理員的用例圖和超級管理員的用例圖除了在權(quán)限管理的部分有些不同,基本上相同,以下是普通管理在權(quán)限管理部分的用例圖:圖 4-18 普通管理員用例圖4.6 系統(tǒng)登錄時序圖 下面是管理員登錄時的時序圖:反映的是用戶登錄整個程序的流程以及發(fā)出的動作,先交由編碼過濾器處理,再交由相應(yīng)的Servlet處理,Servlet調(diào)用該實體對應(yīng)的DAO中的方法,調(diào)用底層數(shù)據(jù)庫數(shù)據(jù),返回到相應(yīng)的JSP頁面。最后作為響應(yīng)返回給客戶端。圖 4-19 登錄時序圖5 系統(tǒng)的詳細(xì)設(shè)計5.1 系統(tǒng)模塊的劃分該系統(tǒng)總體上分為四個模塊:商品的銷售管理:實現(xiàn)商品的進(jìn)貨,庫存,上架等信息的增加、刪除和查詢。員工管理:實現(xiàn)部門信息的增加和修改。員工信息的查詢,增加和刪除。供應(yīng)商管理:供應(yīng)商信息的增加、刪除和查詢。管理員信息管理:分別實現(xiàn)超級管理員和普通管理員的權(quán)限管理,超級管理員對普通管理員信息的增加,刪除和修改。5.2 模塊流程和具體實現(xiàn)說明

溫馨提示

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

評論

0/150

提交評論