

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 超市銷售管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)</p><p><b> 學(xué)生姓名: xxx</b></p><p><b> 指導(dǎo)教師:xxx</b></p><p><b> 所在院系:xxx</b></p><p><b> 所學(xué)專業(yè):xxx</
2、b></p><p><b> 研究方向:xxx</b></p><p><b> xxx大 學(xué)</b></p><p> Supermarket sales management system</p><p><b> Name:xxx</b></p>
3、;<p><b> Tutor:xxx</b></p><p> College:xxx</p><p><b> Major:xxx</b></p><p> Direction:xxx</p><p> xxx University</p><p>
4、;<b> xxx</b></p><p><b> xxx</b></p><p><b> 摘 要</b></p><p> 一直以來人們使用傳統(tǒng)人工的方式管理超市的各項(xiàng)工作,這種管理方式存在著許多缺點(diǎn),如:效率低、保密性差,另外時(shí)間一長(zhǎng),將產(chǎn)生大量的冗余文件和數(shù)據(jù),這給查找和統(tǒng)計(jì)等工作帶
5、來了很大的困難。隨著超市規(guī)模的發(fā)展,商品數(shù)量的急劇增加,有關(guān)商品的各種信息量也成倍增長(zhǎng),傳統(tǒng)的人工記憶方式也慢慢的無法適應(yīng)形勢(shì)的變化。只有采用智能化現(xiàn)代化的管理手段才能適應(yīng)時(shí)代的潮流,在計(jì)算機(jī)技術(shù)迅速發(fā)展的今天,將計(jì)算機(jī)技術(shù)應(yīng)用到超市的管理中將極大的改善超市的管理水平。</p><p> 本文就是基于以上的背景,提出了基于B/S模式的超市銷售管理系統(tǒng)。通過本系統(tǒng)可以實(shí)現(xiàn)超市智能化高效化的管理。本系統(tǒng)根據(jù)超市的實(shí)
6、際運(yùn)營(yíng)流程來設(shè)計(jì)實(shí)現(xiàn),主要包括商品銷售模塊、采購進(jìn)貨模塊、庫存管理模塊,此外還提供了系統(tǒng)管理和財(cái)務(wù)管理兩個(gè)模塊實(shí)現(xiàn)了對(duì)本系統(tǒng)的管理和超市運(yùn)營(yíng)狀況的全面分析,用戶根據(jù)它們即可維護(hù)系統(tǒng)和了解超市當(dāng)前的運(yùn)營(yíng)狀況。本文從系統(tǒng)需求、系統(tǒng)設(shè)計(jì)到系統(tǒng)開發(fā)環(huán)境搭建和功能實(shí)現(xiàn)等多個(gè)方面做了全面的研究和分析。首先分析了當(dāng)前超市行業(yè)的管理狀況,然后從經(jīng)濟(jì)和技術(shù)等各個(gè)方面分析了開發(fā)本系統(tǒng)的可行性,接下來進(jìn)行系統(tǒng)設(shè)計(jì)從功能設(shè)計(jì)和數(shù)據(jù)庫設(shè)計(jì)兩個(gè)方面做了詳細(xì)分析,最
7、后以不同用戶類型的功能權(quán)限作為主線介紹了系統(tǒng)的實(shí)現(xiàn)并作出了系統(tǒng)測(cè)試。通過本文即可全面了解本系統(tǒng)。</p><p> 本系統(tǒng)基于B/S結(jié)構(gòu),應(yīng)用MyEclipse開發(fā)平臺(tái),采用JSP語言和ExtJS框架,并以Tomcat作為服務(wù)器Mysql作為數(shù)據(jù)庫進(jìn)行開發(fā)的。</p><p> 關(guān)鍵詞 超市銷售管理;B/S;ExtJS;MVC;JSP</p><p><b
8、> Abstract</b></p><p> Has been the work of the traditional manual way to manage small supermarket, this management approach has many shortcomings, such as: low efficiency, poor security, the othe
9、r over time, will produce a lot of redundant files and data, which givesFind and statistical work has brought great difficulties. With the development of small supermarket scale, the number of commodities increase sharpl
10、y, about a variety of goods the amount of information doubling the traditional artificial memory Only intel</p><p> This article is based on the above background, a small supermarket management system based
11、 on B / S mode. Small supermarket intelligent and efficient management can be achieved through this system. The system is designed and implemented based on the actual operational processes of the supermarket, including m
12、erchandise sales module, purchase module procurement, inventory management module, in addition also provides two modules of the system management and financial management to achieve comprehe</p><p> The sys
13、tem is based on B / S structure, application MyEclipse platform tools, using the JSP language and ExtJS framework and Tomcat as the server Mysql as the database developed.</p><p> Keywords small supermarke
14、t management; B/S; ExtJS; MVC; JSP</p><p><b> 目 錄</b></p><p><b> 緒 論1</b></p><p><b> 1 系統(tǒng)概述2</b></p><p> 1.1 系統(tǒng)背景介紹2</p>
15、;<p> 1.2 系統(tǒng)功能概述2</p><p> 1.3 系統(tǒng)開發(fā)環(huán)境3</p><p> 1.3.1 開發(fā)環(huán)境介紹3</p><p> 1.3.2 開發(fā)環(huán)境搭建3</p><p> 1.3.3 系統(tǒng)實(shí)現(xiàn)模式3</p><p> 2 可行性分析和需求分析5</p>
16、<p> 2.1 可行性研究5</p><p> 2.1.1 經(jīng)濟(jì)可行性5</p><p> 2.1.2 技術(shù)可行性5</p><p> 2.2 系統(tǒng)需求分析5</p><p> 2.2.1 功能需求分析5</p><p> 2.2.2系統(tǒng)性能需求6</p><
17、;p><b> 3 系統(tǒng)設(shè)計(jì)7</b></p><p> 3.1 系統(tǒng)功能設(shè)計(jì)7</p><p> 3.1.1 總體設(shè)計(jì)7</p><p> 3.1.2 詳細(xì)設(shè)計(jì)8</p><p> 3.2 系統(tǒng)用例分析9</p><p> 3.2.1 用例分析9</p>
18、<p> 3.2.2 用例詳細(xì)說明10</p><p> 3.3 數(shù)據(jù)庫需求分析11</p><p> 3.4 創(chuàng)建數(shù)據(jù)庫15</p><p><b> 4 系統(tǒng)實(shí)現(xiàn)20</b></p><p> 4.1 銷售員功能模塊實(shí)現(xiàn)20</p><p> 4.1.1 登
19、錄模塊的實(shí)現(xiàn)20</p><p> 4.1.2 商品銷售模塊的實(shí)現(xiàn)22</p><p> 4.2 管理員功能模塊實(shí)現(xiàn)25</p><p> 4.2.1 系統(tǒng)管理模塊的實(shí)現(xiàn)25</p><p> 4.2.2 商品進(jìn)貨模塊的實(shí)現(xiàn)28</p><p> 4.2.3 商品庫存模塊的實(shí)現(xiàn)30</p&g
20、t;<p> 4.2.4 財(cái)務(wù)管理模塊的實(shí)現(xiàn)32</p><p><b> 5 系統(tǒng)測(cè)試35</b></p><p> 5.1 測(cè)試方案35</p><p> 5.2 測(cè)試用例35</p><p> 5.2.1測(cè)試環(huán)境35</p><p> 5.2.2測(cè)試方案
21、35</p><p> 5.3 測(cè)試結(jié)果36</p><p><b> 結(jié)束語37</b></p><p><b> 致謝38</b></p><p><b> 參考文獻(xiàn)39</b></p><p><b> 緒 論</
22、b></p><p> 隨著人們生活水平的不斷提高,消費(fèi)的日益增長(zhǎng),越來越多的人選擇了方便快捷的超市購物,超市的信息量也不斷增長(zhǎng),所以作為超市的管理人員就需要有一個(gè)自動(dòng)化、智能化的管理系統(tǒng)來完成這些信息的處理。由此我們?cè)O(shè)計(jì)開發(fā)超市銷售管理系統(tǒng)。</p><p> 目前市場(chǎng)上的超市銷售管理系統(tǒng),大部分為基于分布式數(shù)據(jù)庫的網(wǎng)絡(luò)管理系統(tǒng),對(duì)于規(guī)模較小的超市沒有必要花巨資來購買這樣功能全
23、面的管理系統(tǒng)。此外,對(duì)于那樣功能齊全的管理系統(tǒng)也需要花大精力來維護(hù)?;谶@種情況,我們用所學(xué)的知識(shí),可以開發(fā)一種既能節(jié)約資金,又能完成超市日常的銷售管理任務(wù)的系統(tǒng)。</p><p> 本系統(tǒng)所包括的功能模塊主要有:用戶登錄模塊,它是系統(tǒng)的初始界面,用戶必須登錄才可以進(jìn)行相應(yīng)操作,登錄時(shí)系統(tǒng)會(huì)自動(dòng)根據(jù)用戶的權(quán)限給予相應(yīng)的管理主界面。財(cái)務(wù)管理模塊,此模塊可以根據(jù)用戶設(shè)定的時(shí)間段查詢超市的總體營(yíng)業(yè)狀況及銷售、進(jìn)貨等方
24、面的運(yùn)作狀況。商品銷售模塊,此模塊可以銷售商品和盤點(diǎn)當(dāng)日銷售情況。商品進(jìn)貨模塊,此模塊可以進(jìn)購商品和盤點(diǎn)當(dāng)日進(jìn)貨情況。商品庫存模塊,此模塊可以查看庫存信息,進(jìn)行庫存商品的損溢操作等。系統(tǒng)管理模塊,此模塊可以設(shè)置系統(tǒng)信息,設(shè)置商品、供貨商、用戶等基礎(chǔ)信息,還可以查看系統(tǒng)日志等。</p><p> 在系統(tǒng)的安全性方面,超級(jí)管理員可以登錄到任何一個(gè)管理模塊,能夠添加和刪除其他賬戶,改變?nèi)我庖粋€(gè)賬戶的密碼,設(shè)定賬戶的操
25、作權(quán)限。普通用戶只能根據(jù)自己的權(quán)限進(jìn)入相應(yīng)的管理模塊進(jìn)行對(duì)應(yīng)的操作。通過這樣的權(quán)限限制就可以方便的控制系統(tǒng)的安全性。</p><p> 總之,超市銷售管理系統(tǒng)是一個(gè)經(jīng)濟(jì)、實(shí)用的應(yīng)用軟件,適合小規(guī)模的商店和超市。操作難度小,易學(xué)易用??梢源蟠蟮靥岣叱械倪\(yùn)作效率。</p><p><b> 1 系統(tǒng)概述</b></p><p> 1.1 系
26、統(tǒng)背景介紹</p><p> 超市形式在我國于20世紀(jì)90年代初期起步,現(xiàn)在已經(jīng)成為我國零售業(yè)的一種重要形態(tài)。隨著超市高速的發(fā)展,其經(jīng)營(yíng)管理也變得愈加復(fù)雜,早期的售貨員站柜臺(tái)的形式早已不能滿足現(xiàn)有銷售業(yè)的發(fā)展,這樣就迫切地需要引入新的管理技術(shù)。</p><p> 超市形態(tài)具有種種優(yōu)點(diǎn),但在目前狀況下,它仍存在零售業(yè)企業(yè)所共有的落后的一面,如:不能有效地管理每種商品,收款結(jié)算速度慢,容易
27、出現(xiàn)營(yíng)業(yè)差錯(cuò),不宜進(jìn)行商品調(diào)價(jià),盤點(diǎn)效率低等,而且在超市日常管理中,商品的進(jìn)、銷、存等決策以經(jīng)驗(yàn)為主,缺乏實(shí)時(shí)分析功能,管理人員對(duì)及時(shí)傳遞資料的要求始終得不到滿足。隨著超市形態(tài)的高速發(fā)展,其經(jīng)營(yíng)管理也變得愈加復(fù)雜,日常所需要處理的數(shù)據(jù)量也逐漸增大,商業(yè)運(yùn)轉(zhuǎn)的中間環(huán)節(jié)也越來越多,原始的人工管理已無法應(yīng)對(duì)這復(fù)雜的市場(chǎng)。在這樣的背景下,只有依靠現(xiàn)代化的計(jì)算機(jī)信息處理技術(shù)來管理超市,從而節(jié)省出大量的人力、物力,改善員工的工作條件,減輕勞動(dòng)強(qiáng)度,
28、快速反映出商品的進(jìn)、銷、存等狀況和各種反饋信息的分析,才能夠使管理人員快速對(duì)市場(chǎng)的變化做出相應(yīng)的決策,加快超市經(jīng)營(yíng)管理效率。</p><p> 1.2 系統(tǒng)功能概述</p><p> 針對(duì)行業(yè)的發(fā)展現(xiàn)狀,綜合應(yīng)用所學(xué)知識(shí),設(shè)計(jì)超市銷售管理系統(tǒng)。本系統(tǒng)可以實(shí)現(xiàn)銷售、采購、倉儲(chǔ)等超市基本業(yè)務(wù)的綜合銷售管理,還可以實(shí)現(xiàn)財(cái)務(wù)的綜合統(tǒng)計(jì),為超市的現(xiàn)代化管理提供便利、可靠的保障。</p>
29、;<p> 根據(jù)不同的業(yè)務(wù)流程,將系統(tǒng)進(jìn)行不同的功能模塊劃分,每個(gè)模塊各司其職,完成各自的業(yè)務(wù)管理任務(wù)。如商品銷售模塊可以進(jìn)行商品的銷售和盤點(diǎn)當(dāng)日的銷售信息等,財(cái)務(wù)管理模塊可以查詢超市的綜合營(yíng)業(yè)狀況,查詢銷售和進(jìn)貨的狀況等。它們互相之間共享營(yíng)業(yè)數(shù)據(jù),各自又有不同的展現(xiàn)和用戶接口形式。體現(xiàn)了功能的靈活實(shí)現(xiàn)。</p><p> 1.3 系統(tǒng)開發(fā)環(huán)境</p><p> 1.3
30、.1 開發(fā)環(huán)境介紹</p><p> 本系統(tǒng)使用MyEclipse作為開發(fā)工具,使用Tomcat為服務(wù)器,使用Firefox為默認(rèn)瀏覽器。開發(fā)前需要首先安裝JDK以支持環(huán)境的搭建。因?yàn)橄到y(tǒng)要使用ExtJS這個(gè)JS框架,開發(fā)前首先在MyEclipse中安裝插件Spket,以更好的支持ExtJS開發(fā)。在Firefox中安裝組件Firebug調(diào)試工具,它在開發(fā)調(diào)試JavaScript過程中十分便利。</p>
31、;<p> 1.3.2 開發(fā)環(huán)境搭建</p><p> ?。?)安裝JDK以支持Java開發(fā)環(huán)境,整合MyEclipse和Tomcat服務(wù)器,有一個(gè)統(tǒng)一便利的集成開發(fā)環(huán)境。</p><p> ?。?)在MyEclipse中安裝插件Spket,它是一款全面支持JavaScript的免費(fèi)開發(fā)工具,其體積小巧,它就像是為EXT量身定做的一樣。插件Spket安裝后默認(rèn)沒有提供對(duì)EX
32、T的支持,我們需要將EXT庫添加到列表中,并將其設(shè)為默認(rèn)。這樣在開發(fā)ExtJS的時(shí)候可以有相應(yīng)提示。</p><p> ?。?)瀏覽器Firefox對(duì)ExtJS的支持很好,我們使用它作為默認(rèn)瀏覽器。Firebug是它的一個(gè)組件,它用于調(diào)試JavaScript相當(dāng)方便,它可以顯示動(dòng)態(tài)生成的DOM,甚至可以在Firebug里直接對(duì)DOM進(jìn)行修改,而這些修改會(huì)反映到顯示頁面上。Firebug可以查看Ajax方式發(fā)送和接
33、收的各種信息,還可以查看發(fā)送的參數(shù)以及返回的狀態(tài)和信息。Firebug安裝相當(dāng)簡(jiǎn)單,在Firefox中搜索,在網(wǎng)頁中點(diǎn)擊安裝即可。</p><p> 1.3.3 系統(tǒng)實(shí)現(xiàn)模式</p><p> 本系統(tǒng)采用B/S結(jié)構(gòu),使用JSP/Servlet技術(shù),前臺(tái)使用RIA富客戶端的ExtJS框架,整體上采用MVC模式來實(shí)現(xiàn)。下面詳細(xì)介紹這些概念。</p><p> ?。?
34、) 在網(wǎng)絡(luò)程序中,有C/S結(jié)構(gòu)和B/S結(jié)構(gòu)之分,其中C/S是客戶端(Client)/服務(wù)器(Server)模式,這種模式的客戶端中需要安裝一個(gè)客戶端軟件,客戶端軟件負(fù)責(zé)與服務(wù)器進(jìn)行數(shù)據(jù)交換。B/S是瀏覽器(Browser)/服務(wù)器(Server)模式,客戶端只要有一款瀏覽器就可以和服務(wù)器實(shí)現(xiàn)數(shù)據(jù)交互,Web應(yīng)用程序就是B/S模式。</p><p> (2) JSP全稱是Java Server Pages,是由S
35、un Microsystems公司倡導(dǎo)、眾多公司參與開發(fā)建立的一種動(dòng)態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn)。JSP技術(shù)以Java語言作為腳本語言(Java是一種成熟的跨平臺(tái)的程序設(shè)計(jì)語言)。JSP具有非常突出的開放性、跨平臺(tái)性和高效性。Servlet是一種Java編程語言類,用來擴(kuò)展通過響應(yīng)-請(qǐng)求編程模型服務(wù)應(yīng)用程序訪問的服務(wù)器功能。盡管Servlet能夠響應(yīng)任何類型的請(qǐng)求,但是它們一般用來擴(kuò)展由服務(wù)器支持的應(yīng)用程序。</p><p>
36、 ?。?) ExtJS可以用來開發(fā)RIA也即富客戶端的AJAX應(yīng)用,是一個(gè)用javascript寫的,主要用于創(chuàng)建前端用戶界面,是一個(gè)與后臺(tái)技術(shù)無關(guān)的前端ajax框架。其無論從UI界面上CSS樣式的應(yīng)用,到數(shù)據(jù)解析上的異常處理,都可算是一款不可多得的JavaScript客戶端技術(shù)的精品。本系統(tǒng)使用ExtJS實(shí)現(xiàn)了One Page, One Application即一個(gè)頁面就是一個(gè)應(yīng)用。</p><p> ?。?)
37、本系統(tǒng)采用MVC結(jié)構(gòu)設(shè)計(jì)模式。MVC架構(gòu)是"Model –View -Controller"的縮寫,中文翻譯為"模型-視圖-控制器"。MVC應(yīng)用程序總是由這三個(gè)部分組成。Event(事件)導(dǎo)致Controller改變Model或View,或者同時(shí)改變兩者。只要Controller改變了Models的數(shù)據(jù)或者屬性,所有依賴的View都會(huì)自動(dòng)更新。類似的,只要Controller改變了View,Vie
38、w會(huì)從潛在的Model中獲取數(shù)據(jù)來刷新自己。</p><p> 模型是應(yīng)用程序的主體部分,表示業(yè)務(wù)數(shù)據(jù)和業(yè)務(wù)邏輯。數(shù)據(jù)模型主要指實(shí)體對(duì)象的數(shù)據(jù)保存(持續(xù)化)。業(yè)務(wù)模型實(shí)現(xiàn)應(yīng)用程序的業(yè)務(wù)邏輯,比如將一張訂單保存到數(shù)據(jù)庫,從數(shù)據(jù)庫獲取訂單。一個(gè)模型能為多個(gè)視圖提供數(shù)據(jù)。視圖是用戶看到并與之交互的界面,向用戶顯示有關(guān)的數(shù)據(jù),并能接收用戶的輸入數(shù)據(jù),但是它并不進(jìn)行任何實(shí)際的業(yè)務(wù)處理。視圖可以向模型查詢業(yè)務(wù)狀態(tài),但不能改
39、變模型,它還能接收模型發(fā)出的數(shù)據(jù)更新事件,從而對(duì)用戶界面進(jìn)行同步更新??刂破鹘邮苡脩舻妮斎氩⒄{(diào)用模型和視圖去完成用戶的需求。如當(dāng)用戶單擊頁面中的提交按鈕來發(fā)送表單內(nèi)容時(shí),控制器接受請(qǐng)求并調(diào)用相應(yīng)的模型組件去處理請(qǐng)求,然后更新相應(yīng)視圖來顯示模型返回的數(shù)據(jù)。</p><p> 控制層在數(shù)據(jù)和應(yīng)用客戶之間擔(dān)當(dāng)一個(gè)調(diào)節(jié)者,它實(shí)現(xiàn)了業(yè)務(wù)邏輯的控制,并且響應(yīng)客戶端和數(shù)據(jù)層之間的交換,它接受客戶端的請(qǐng)求,將請(qǐng)求轉(zhuǎn)發(fā)到系統(tǒng)服務(wù)
40、,并把系統(tǒng)服務(wù)返回的結(jié)果返回到客戶端。</p><p> 模型、視圖與控制器的分離,使得一個(gè)模型可以具有多個(gè)顯示視圖。如果用戶通過某個(gè)視圖的控制器改變了模型的數(shù)據(jù),所有其它依賴于這些數(shù)據(jù)的視圖都應(yīng)反映到這些變化。因此,無論何時(shí)發(fā)生了何種數(shù)據(jù)變化,控制器都會(huì)將變化通知所有的視圖,導(dǎo)致顯示的更新。這實(shí)際上是一種模型的變化-傳播機(jī)制。</p><p> 2 可行性分析和需求分析</p&
41、gt;<p><b> 2.1 可行性研究</b></p><p> 可行性研究(Feasibility Study),是指在調(diào)查的基礎(chǔ)上,通過市場(chǎng)分析、技術(shù)分析、財(cái)務(wù)分析和國民經(jīng)濟(jì)分析,對(duì)各種投資項(xiàng)目的技術(shù)可行性與經(jīng)濟(jì)合理性進(jìn)行的綜合評(píng)價(jià)。</p><p> 2.1.1 經(jīng)濟(jì)可行性</p><p> 作為超市的銷售管理
42、系統(tǒng),由于其數(shù)據(jù)量相對(duì)較小,并且在數(shù)據(jù)處理上不是很復(fù)雜,所以從項(xiàng)目開發(fā)的角度來說其開發(fā)周期會(huì)比較短,它的開發(fā)成本不會(huì)很高。由于系統(tǒng)數(shù)據(jù)量相對(duì)較少,從系統(tǒng)運(yùn)行的角度來看,對(duì)計(jì)算機(jī)的性能要求相對(duì)來說也不是很高,所以在其管理上所需費(fèi)用要相對(duì)較少。從本系統(tǒng)的投入費(fèi)用、收益、投資回報(bào)周期等方面來看,本系統(tǒng)都是可行的。</p><p> 2.1.2 技術(shù)可行性</p><p> 隨著互聯(lián)網(wǎng)的迅速
43、發(fā)展,基于Internet的B/S架構(gòu)應(yīng)用程序逐漸被人們所關(guān)注?;贘AVAEE規(guī)范的系統(tǒng)設(shè)計(jì)實(shí)現(xiàn)已經(jīng)非常成熟。能夠很好的實(shí)現(xiàn)B/S架構(gòu)的軟件。</p><p> 無論是從經(jīng)濟(jì)方面還是從技術(shù)方面分析的情況上都可以看出,開發(fā)超市銷售管理系統(tǒng),實(shí)現(xiàn)超市銷售管理的計(jì)算機(jī)化是非常必要的,也是可行的。因?yàn)槭褂糜?jì)算機(jī)化的超市銷售管理系統(tǒng)可以很好的改變目前超市銷售管理工作的現(xiàn)狀,能夠提高工作效率。</p>&l
44、t;p> 2.2 系統(tǒng)需求分析</p><p> 所謂“需求分析”,是指對(duì)要解決的問題進(jìn)行詳細(xì)的分析,弄清楚問題的要求,包括需要輸入什么數(shù)據(jù),要得到什么結(jié)果,最后應(yīng)輸出什么??梢哉f,在軟件工程當(dāng)中的“需求分析”就是確定要計(jì)算機(jī)“做什么”。</p><p> 2.2.1 功能需求分析</p><p> 根據(jù)超市的實(shí)際運(yùn)營(yíng)情況進(jìn)行分析,通常它們沒有獨(dú)立的倉
45、庫,進(jìn)貨和銷售商品都是在同一場(chǎng)所完成,在此,我們即按照這一實(shí)際的情況進(jìn)行系統(tǒng)設(shè)計(jì)。超市的基本業(yè)務(wù)狀況有銷售、進(jìn)貨、庫存等,此外系統(tǒng)中還要設(shè)置商品、用戶、權(quán)限等必要的系統(tǒng)信息,還可以查看超市運(yùn)行財(cái)務(wù)狀況。</p><p> 根據(jù)超市的業(yè)務(wù)流程,必須要設(shè)計(jì)實(shí)現(xiàn)的模塊有商品銷售模塊,以實(shí)現(xiàn)商品銷售的基本業(yè)務(wù)。采購進(jìn)貨模塊,以實(shí)現(xiàn)商品采購進(jìn)貨的基本業(yè)務(wù)。庫存管理模塊,實(shí)現(xiàn)商品的綜合管理業(yè)務(wù)。此外可以添加輔助功能模塊,系
46、統(tǒng)管理和財(cái)務(wù)管理,分別實(shí)現(xiàn)對(duì)系統(tǒng)的維護(hù)和超市營(yíng)業(yè)狀況的分析查詢。</p><p> 2.2.2系統(tǒng)性能需求</p><p> 實(shí)用性:方便可快捷的實(shí)現(xiàn)商品在銷售、采購和庫存等方面的信息操作。整個(gè)系統(tǒng)實(shí)現(xiàn)商品信息的統(tǒng)一編碼,并由系統(tǒng)管理員集中管理,可以促進(jìn)系統(tǒng)管理員的工作效率,并有效減少成本和繁瑣的工作量。</p><p> 易操作性:本系統(tǒng)在銷售、商品管理等重
47、要環(huán)節(jié),不需輸入任何復(fù)雜的信息,管理員只需通過瀏覽器便可進(jìn)行數(shù)據(jù)的錄入、查詢和修改等工作。</p><p> 適應(yīng)性:該系統(tǒng)對(duì)于軟硬件要求并不是趨于高檔,能實(shí)現(xiàn)廣泛應(yīng)用。本系統(tǒng)是B/S模式,可以實(shí)現(xiàn)同時(shí)讓多個(gè)用戶訪問和操作。同時(shí)支持動(dòng)態(tài)添加基本信息,增加的商品供貨商等都可以隨時(shí)添加。</p><p> 易維護(hù)性:可以方便的維護(hù)系統(tǒng),可以使用工具導(dǎo)出數(shù)據(jù)庫數(shù)據(jù),清空階段性數(shù)據(jù)。實(shí)現(xiàn)系統(tǒng)數(shù)
48、據(jù)處理的輕負(fù)荷。</p><p> 安全性:系統(tǒng)采用不同的權(quán)限級(jí)別,不同的用戶有不同的操作權(quán)限,實(shí)現(xiàn)了很好的安全認(rèn)證。</p><p><b> 3 系統(tǒng)設(shè)計(jì)</b></p><p> 3.1 系統(tǒng)功能設(shè)計(jì)</p><p> 超市系統(tǒng)功能的設(shè)計(jì)首先進(jìn)行總體設(shè)計(jì)說明系統(tǒng)功能設(shè)計(jì)的設(shè)計(jì)思想和設(shè)計(jì)原則,在根據(jù)總體設(shè)計(jì)做
49、詳細(xì)的功能模塊設(shè)計(jì)。實(shí)現(xiàn)一體化的設(shè)計(jì)思路。</p><p> 3.1.1 總體設(shè)計(jì)</p><p><b> ?。?)設(shè)計(jì)思想:</b></p><p> (1)系統(tǒng)分成幾個(gè)相對(duì)獨(dú)立的模塊,但這些模塊都進(jìn)行集中式管理。每個(gè)模塊都可以完成自己特定的功能,如財(cái)務(wù)、銷售、進(jìn)貨等等。</p><p> ?。?)分層的模塊化程
50、序設(shè)計(jì)思想,整個(gè)系統(tǒng)采用模塊化結(jié)構(gòu)設(shè)計(jì)。作為應(yīng)用程序有較強(qiáng)的可操作性和擴(kuò)展性。如程序中操作數(shù)據(jù)庫時(shí),在Util層中獲取數(shù)據(jù)庫連接,在DAO層中操作數(shù)據(jù)庫完成CRUD操作。這樣使程序?qū)哟谓Y(jié)構(gòu)分明,便于維護(hù)拓展。</p><p> ?。?)合理的數(shù)據(jù)流設(shè)計(jì),在應(yīng)用系統(tǒng)設(shè)計(jì)中,相對(duì)獨(dú)立的模塊間以數(shù)據(jù)流相互連接,使各模塊間的耦合性較低,方便系統(tǒng)運(yùn)行,提高系統(tǒng)安全性。</p><p><b&g
51、t; ?。?)設(shè)計(jì)原則:</b></p><p> 為了使本系統(tǒng)功能齊全完備,操作簡(jiǎn)便,最大限度的提高軟件的質(zhì)量,從而滿足用戶的實(shí)際需要,在設(shè)計(jì)開發(fā)過程中遵循如下原則:</p><p> (1)合法性原則:依據(jù)小型超市實(shí)際的工作情況,進(jìn)行諸如商品進(jìn)貨、銷售等工作。</p><p> ?。?)實(shí)用性原則:適合商品信息管理工作的實(shí)際需求,并能夠處理一些特
52、殊情況的要求,此外,盡可能預(yù)留空間,以便擴(kuò)充功能。</p><p> ?。?)準(zhǔn)確性原則:對(duì)輸入的相關(guān)資料建立檢錯(cuò)機(jī)制,及時(shí)報(bào)錯(cuò),使用戶能夠及時(shí)準(zhǔn)確的輸入合法資料(如:類型匹配,長(zhǎng)度不超限等)。</p><p> ?。?)易操作原則:要求設(shè)計(jì)的系統(tǒng)功能齊全,接口友好,操作方便,必要的地方進(jìn)行提示。</p><p> (5)安全性原則:該系統(tǒng)的管理員具有可設(shè)置登錄賬
53、戶,修改密碼的權(quán)限,不同的用戶類型有不同的操作權(quán)限。</p><p> 3.1.2 詳細(xì)設(shè)計(jì)</p><p> 本系統(tǒng)除了登錄模塊外,主頁中共實(shí)現(xiàn)五個(gè)完整的功能模塊,分別是財(cái)務(wù)管理、商品銷售管理、商品進(jìn)貨管理、商品庫存管理和系統(tǒng)管理。系統(tǒng)根據(jù)不同的用戶角色又有不同的功能模塊體現(xiàn),其中銷售人員的功能結(jié)構(gòu)圖如圖3-1所示:</p><p> 圖3-1 銷售人員功能
54、結(jié)構(gòu)圖</p><p> 管理員的對(duì)應(yīng)的系統(tǒng)功能結(jié)構(gòu)圖,如圖3-2所示。</p><p> 圖3-2 系統(tǒng)功能結(jié)構(gòu)圖</p><p> 財(cái)務(wù)管理模塊包括營(yíng)業(yè)綜合統(tǒng)計(jì)、收銀報(bào)表查詢、結(jié)賬單據(jù)查詢、進(jìn)貨報(bào)表查詢、進(jìn)貨單據(jù)查詢。財(cái)務(wù)管理模塊中可以根據(jù)設(shè)定的時(shí)間段,查詢對(duì)應(yīng)的營(yíng)業(yè)信息。</p><p> 商品銷售模塊包括銷售商品、今日盤點(diǎn)。商
55、品銷售模塊中系統(tǒng)自動(dòng)將所有商品按照類別分類顯示,銷售人員可以選定商品或直接輸入商品編號(hào)進(jìn)行銷售操作,此外還可以查看當(dāng)日盤點(diǎn)信息。</p><p> 商品進(jìn)貨模塊包括采購進(jìn)貨、今日盤點(diǎn)。商品進(jìn)貨模塊中也會(huì)自動(dòng)顯示所有商品,采購人員可以選定商品進(jìn)行采購操作,還可查看當(dāng)日進(jìn)貨盤點(diǎn)信息。</p><p> 商品庫存模塊包括庫存預(yù)警、庫存信息查詢、損溢處理、損益查詢。商品庫存模塊中可以查看庫存預(yù)
56、警,查看庫存的詳細(xì)信息。進(jìn)行庫存的損溢操作,查看損益信息等?;诔羞\(yùn)營(yíng)的實(shí)際情況并不設(shè)置商品出庫的功能。</p><p> 系統(tǒng)管理模塊包括用戶設(shè)置、商品管理、供貨商管理、商品類別管理、員工管理、權(quán)限管理、登錄日志、系統(tǒng)信息。系統(tǒng)管理模塊中可以設(shè)置用戶信息,商品、商品類別、供貨商等信息??梢蕴砑訂T工并設(shè)置員工的權(quán)限。系統(tǒng)會(huì)自動(dòng)查詢出登錄日志和設(shè)定的系統(tǒng)信息并做出相應(yīng)展現(xiàn)。管理員可以添加賬戶類型,并設(shè)置相應(yīng)的權(quán)
57、限。</p><p> 3.2 系統(tǒng)用例分析</p><p> 對(duì)系統(tǒng)做角色用例分析,這樣可以很好地體現(xiàn)系統(tǒng)各個(gè)模塊的設(shè)計(jì)思路,體現(xiàn)系統(tǒng)功能模塊設(shè)計(jì)的必要性。</p><p> 3.2.1 用例分析</p><p> 用例分析是干什么用的呢?要說明這個(gè)問題,我們看看下面幾個(gè)概念。</p><p> 角色(Ac
58、tor)是與系統(tǒng)交互的人或事。所謂與“系統(tǒng)交互”指的是角色向系統(tǒng)發(fā)送消息、從系統(tǒng)中接收信息,以及在系統(tǒng)中的信息交換。使用用例與系統(tǒng)互相交流的任何人或事都是角色。比如,某人使用系統(tǒng)中提供的用例,則該人就是角色。</p><p> 用例是對(duì)包括變量在內(nèi)的一組動(dòng)作序列的描述,系統(tǒng)執(zhí)行這些動(dòng)作,并產(chǎn)生可觀察到的系列結(jié)果。我們可以這樣通俗的理解,用例是參與者想要系統(tǒng)做的某件事情。</p><p>
59、 根據(jù)用例和角色的概念,通過對(duì)超市銷售管理系統(tǒng)需求的了解,可以得到如圖3-3所示的分析結(jié)果:</p><p> 圖3-3 系統(tǒng)用例圖</p><p> 在圖3-3中像人一樣的圖形就是角色,通過對(duì)超市銷售管理系統(tǒng)的需求分析可知系統(tǒng)默認(rèn)有管理員角色,管理員擁有所有系統(tǒng)權(quán)限,它可以添加其他用戶和設(shè)置其權(quán)限;圖中橢圓代表的是用例(這里分析的是系統(tǒng)整體上的功能);中間的箭頭將角色與用例連接起來
60、,代表的是對(duì)應(yīng)的角色可以使用的用例,有一個(gè)箭頭就代表對(duì)應(yīng)的角色可以使用用例,沒有箭頭則表示對(duì)應(yīng)的角色不能使用該用例。</p><p> 3.2.2 用例詳細(xì)說明</p><p> 光有用例分析是不夠的,用例只是程序的功能界定,需求概述也僅僅對(duì)每個(gè)功能提了個(gè)名字,想要實(shí)現(xiàn)系統(tǒng)的功能還必須知道每個(gè)功能的詳細(xì)內(nèi)容,深入了解用戶在完成系統(tǒng)的某個(gè)功能時(shí)需要做些什么事。下面就讓我們來看看圖中用例的
61、詳細(xì)說明。</p><p><b> ?。?)系統(tǒng)登錄</b></p><p> 所有的用戶都可以登錄,系統(tǒng)會(huì)自動(dòng)加載與其權(quán)限對(duì)應(yīng)的主界面。</p><p><b> ?。?)財(cái)務(wù)管理</b></p><p> 可以根據(jù)設(shè)定的時(shí)間段查看超市整體的營(yíng)業(yè)狀況,查看這一時(shí)間內(nèi)銷售或進(jìn)貨的報(bào)表,查看某一
62、結(jié)賬單據(jù)的詳細(xì)等等。</p><p><b> ?。?)商品銷售</b></p><p> 可以輸入商品編號(hào)或商品樹中選擇商品,進(jìn)行銷售商品的操作,盤點(diǎn)當(dāng)日的銷售狀況。</p><p><b> ?。?)采購進(jìn)貨</b></p><p> 可以輸入商品編號(hào)或商品樹中選擇商品,進(jìn)行采購商品的操作,
63、盤點(diǎn)當(dāng)日的采購狀況。</p><p><b> (5)商品庫存</b></p><p> 查看庫存預(yù)警,商品少于一定數(shù)量則自動(dòng)顯示在預(yù)警頁面中。查看庫存詳細(xì)信息。進(jìn)行庫存商品的損溢操作,查看損溢信息等。</p><p><b> ?。?)系統(tǒng)管理</b></p><p> 設(shè)置系統(tǒng)運(yùn)行的必要信
64、息,添加商品、商品類別,供貨商信息,添加員工設(shè)置權(quán)限,查看登錄日志,查看系統(tǒng)信息等。</p><p> 3.3 數(shù)據(jù)庫需求分析</p><p> 數(shù)據(jù)庫在一個(gè)系統(tǒng)中占有非常重要的地位,數(shù)據(jù)設(shè)計(jì)的優(yōu)劣將直接對(duì)應(yīng)用系統(tǒng)的效率以及實(shí)現(xiàn)的效果產(chǎn)生影響。合理的數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)可以提高數(shù)據(jù)存取效率,保證數(shù)據(jù)完整性和一致性,從而有利于程序的實(shí)現(xiàn)。設(shè)計(jì)數(shù)據(jù)庫系統(tǒng)時(shí)應(yīng)該首先充分了解系統(tǒng)需求的各個(gè)方面的需求
65、,包括現(xiàn)有的和將來可能增加的需求。</p><p> 目前商業(yè)應(yīng)用中最主要的是關(guān)系數(shù)據(jù)庫。 Oracle、DB2、Sybase、MS SQL Server、MySQL等都是關(guān)系數(shù)據(jù)庫。本系統(tǒng)選用MySQL數(shù)據(jù)庫。MySQL是當(dāng)前應(yīng)用最廣泛的開源數(shù)據(jù)庫軟件,在非商業(yè)用途下可免費(fèi)使用。MySQL精小但是執(zhí)行效率高,運(yùn)行穩(wěn)定,深受歡迎。</p><p> 需求具體體現(xiàn)在各種信息的提供、保存、
66、更新和查詢上,這就要求數(shù)據(jù)庫結(jié)構(gòu)能充分滿足各種信息的輸出和輸入。通過收集基本數(shù)據(jù)、數(shù)據(jù)結(jié)構(gòu)以及數(shù)據(jù)處理的流程,組成一份詳盡的數(shù)據(jù)詞典,為后面的具體設(shè)計(jì)打下基礎(chǔ)。</p><p> 在仔細(xì)分析和調(diào)查系統(tǒng)的基礎(chǔ)上,針對(duì)超市銷售管理系統(tǒng)的需求,通過對(duì)超市運(yùn)營(yíng)的流程和數(shù)據(jù)進(jìn)行分析,設(shè)計(jì)如下所示的數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu):</p><p> 用戶信息:包括用戶名稱、系統(tǒng)啟用時(shí)間、用戶地址、聯(lián)系電話、營(yíng)業(yè)
67、時(shí)間。其對(duì)應(yīng)的實(shí)體屬性圖如圖3-4所示:</p><p> 圖3-4 用戶信息實(shí)體屬性圖</p><p> 權(quán)限信息:包括用戶類型編號(hào)、用戶類型名稱、財(cái)務(wù)管理權(quán)限、商品銷售權(quán)限、商品進(jìn)貨權(quán)限、商品庫存管理權(quán)限、系統(tǒng)管理權(quán)限。(其中TRUE=1和FALSE=0)其對(duì)應(yīng)的實(shí)體屬性圖如圖3-5所示:</p><p> 圖3-5 權(quán)限信息實(shí)體屬性圖</p&g
68、t;<p> 員工信息:包括員工工號(hào)、員工姓名、員工密碼、用戶類型。其對(duì)應(yīng)的實(shí)體屬性圖如圖3-6所示:</p><p> 圖3-6 員工信息實(shí)體屬性圖</p><p> 日志信息:包括日志編號(hào)、員工工號(hào)、登錄時(shí)間、退出時(shí)間、登錄IP。其對(duì)應(yīng)的實(shí)體屬性圖如圖3-7所示:</p><p> 圖3-7 日志信息實(shí)體屬性圖</p>&
69、lt;p> 供貨商信息:包括供貨商編號(hào)、供貨商名稱、聯(lián)系人、聯(lián)系電話、聯(lián)系地址。其對(duì)應(yīng)的實(shí)體屬性圖如圖3-8所示:</p><p> 圖3-8 供貨商信息實(shí)體屬性圖</p><p> 商品類別信息:包括類別編號(hào)、類別名稱、類別說明。其對(duì)應(yīng)的實(shí)體屬性圖如圖3-9所示:</p><p> 圖3-9 商品類別信息實(shí)體屬性圖</p><p
70、> 商品信息:包括商品編號(hào)、商品名稱、單位、類別、成本價(jià)、單價(jià)。其對(duì)應(yīng)的實(shí)體屬性圖如圖3-10所示:</p><p> 圖3-10 商品信息實(shí)體屬性圖</p><p> 商品庫存信息:包括商品編號(hào)、庫存數(shù)量。其對(duì)應(yīng)的實(shí)體屬性圖如圖3-11所示:</p><p> 圖3-11 商品庫存信息實(shí)體屬性圖</p><p> 損溢信息:
71、包括損溢編號(hào)、商品編號(hào)、供貨商、損溢數(shù)量、損溢標(biāo)注、損溢說明、損溢日期、操作員。其對(duì)應(yīng)的實(shí)體屬性圖如圖3-12所示:</p><p> 圖3-12 損溢信息實(shí)體屬性圖</p><p> 銷售商品信息:包括賬單號(hào)、商品編號(hào)、銷售數(shù)量、應(yīng)收金額、折扣率、實(shí)收金額、銷售日期、操作員。其對(duì)應(yīng)的實(shí)體屬性圖如圖3-13所示:</p><p> 圖3-13 銷售商品信息
72、實(shí)體屬性圖</p><p> 采購商品信息:包括帳單號(hào)、商品編號(hào)、供貨商、進(jìn)貨數(shù)量、支付金額、進(jìn)貨日期、操作員。其對(duì)應(yīng)的實(shí)體屬性圖如圖3-14所示:</p><p> 圖3-14 采購商品信息實(shí)體屬性圖</p><p><b> 3.4 創(chuàng)建數(shù)據(jù)庫</b></p><p> 我們選用MySQL數(shù)據(jù)庫,首先創(chuàng)建超
73、市銷售管理系統(tǒng)數(shù)據(jù)庫market,創(chuàng)建數(shù)據(jù)庫的SQL語句為:create database market default character set utf8;,并使用當(dāng)前數(shù)據(jù)庫“use market”開始創(chuàng)建表:</p><p> 其中,用戶信息表如表3-1所示,表名user,主鍵user_name。</p><p> 表3-1 用戶信息表</p><p>
74、 用戶信息表中存儲(chǔ)系統(tǒng)超市名稱、地址、聯(lián)系電話等信息。設(shè)定后它會(huì)自動(dòng)加載到主頁的系統(tǒng)信息上,每次登錄時(shí)會(huì)自動(dòng)顯示出來。</p><p> 權(quán)限信息表如表3-2所示,表名userlimit,主鍵user_type_id。</p><p> 表3-2 權(quán)限信息表</p><p> 權(quán)限表中擁有某個(gè)權(quán)限TRUE=1,沒有權(quán)限FALSE=0,向權(quán)限表中加入初始數(shù)據(jù),定
75、義用戶類型“admin”管理員擁有所有權(quán)限,SQL語句為“insert into userlimit values(null,'admin',1,1,1,1,1);”。</p><p> 員工信息表如表3-3所示,表名person,主鍵per_id。</p><p> 表3-3 員工信息表</p><p> 系統(tǒng)默認(rèn)使用員工工號(hào)進(jìn)行登錄,管理員
76、可以添加員工設(shè)定其工號(hào)和密碼,并設(shè)置其權(quán)限類型。這里向員工表中加入初始數(shù)據(jù),加入管理員賬戶其SQL語句為“insert into person values(1111,'admin','1111',1);”,即管理員工號(hào):1111,密碼:1111。這樣啟用系統(tǒng)后便可以使用此賬戶進(jìn)行系統(tǒng)初始化操作了。員工使用其工號(hào)登錄時(shí),系統(tǒng)會(huì)自動(dòng)根據(jù)其用戶類型確定其權(quán)限,并加載對(duì)應(yīng)的UI。</p><
77、p> 日志信息表如表3-4所示,表名log,主鍵log_id。</p><p> 表3-4 日志信息表</p><p> 用戶登錄時(shí)系統(tǒng)會(huì)自動(dòng)記錄登錄員工的工號(hào)和其登錄時(shí)間、登錄IP地址等信息,當(dāng)用戶退出時(shí)系統(tǒng)會(huì)自動(dòng)記錄其時(shí)間并更新對(duì)應(yīng)記錄。</p><p> 供貨商信息表如表3-5所示,表名provider,主鍵pv_id。</p>&
78、lt;p> 表3-5 供貨商信息表</p><p> 設(shè)定供貨商信息,在采購進(jìn)貨時(shí)會(huì)加載供用戶選擇,每筆訂單中的記錄都可以設(shè)定各自的供貨商信息。</p><p> 商品類別信息表如表3-6所示,表名category,主鍵cg_id。</p><p> 表3-6 商品類別信息表</p><p> 設(shè)定商品類別后,添加商品的時(shí)候便
79、可以根據(jù)商品類別添加,系統(tǒng)也會(huì)按照商品類別分類顯示。</p><p> 商品信息表如表3-7所示,表名sp,主鍵sp_id。</p><p> 表3-7 商品信息表</p><p> 添加商品后,進(jìn)行進(jìn)貨、銷售、損溢等操作時(shí)系統(tǒng)會(huì)自動(dòng)將所有商品按照商品類別分類展示出來,供用戶選擇使用。</p><p> 商品庫存信息表如表3-8所示,
80、表名stock,主鍵sp_id。</p><p> 表3-8 商品庫存信息表</p><p> 通過查詢商品庫存表可以查看庫存預(yù)警信息和詳細(xì)的庫存信息。表中沒有的冗余字段查詢的時(shí)候使用表的聯(lián)合查詢來實(shí)現(xiàn)。</p><p> 損益信息表如表3-9所示,表名sy,主鍵sy_id。</p><p> 表3-9 損溢信息表</p>
81、<p> 庫存商品會(huì)有損溢情況,這里設(shè)置這個(gè)表,產(chǎn)生商品損溢時(shí)進(jìn)行記錄同時(shí)更新商品庫存表。</p><p> 銷售商品信息表如表3-10所示,表名sell,主鍵s_bill,sp_id。</p><p> 表3-10 銷售商品信息表</p><p> 銷售商品信息表使用聯(lián)合主鍵“primary key(s_bill,sp_id)”,通過賬單號(hào)和
82、商品ID可以確定這個(gè)表中的一條記錄。通過這個(gè)表可以查詢銷售記錄,形成財(cái)務(wù)銷售信息,借此以輔助提高超市的決策水平。</p><p> 采購商品信息表如表3-11所示,表名buy,主鍵b_bill,sp_id。</p><p> 表3-11 采購商品信息表</p><p> 采購商品信息表使用聯(lián)合主鍵“primary key(b_bill,sp_id)”,通過賬單
83、號(hào)和商品ID可以確定這個(gè)表中的一條記錄。通過這個(gè)表可以查詢采購記錄,形成財(cái)務(wù)進(jìn)貨信息,借此以輔助提高超市的決策水平。</p><p><b> 4 系統(tǒng)實(shí)現(xiàn)</b></p><p> 根據(jù)前面的分析和設(shè)計(jì),以功能模塊為單位逐個(gè)進(jìn)行編碼實(shí)現(xiàn),這里以不同用戶角色進(jìn)入系統(tǒng)(這里以銷售人員和系統(tǒng)管理員為例進(jìn)行分析說明),分析其對(duì)應(yīng)的各個(gè)功能模塊的實(shí)現(xiàn)方法,展示其實(shí)現(xiàn)效果。
84、</p><p> 4.1 銷售員功能模塊實(shí)現(xiàn)</p><p> 銷售人員只是負(fù)責(zé)商品的銷售工作,他們可以登錄系統(tǒng),并進(jìn)行商品的銷售和銷售的盤點(diǎn)工作。這里便介紹登錄模塊和商品銷售模塊。</p><p> 4.1.1 登錄模塊的實(shí)現(xiàn)</p><p> 登錄頁面是系統(tǒng)的初始界面,用戶只有登錄成功才會(huì)出現(xiàn)系統(tǒng)主界面,可以進(jìn)行相應(yīng)操作。它是系
85、統(tǒng)的門戶,登錄后實(shí)現(xiàn)了用戶的權(quán)限區(qū)分。實(shí)現(xiàn)的登錄界面和信息驗(yàn)證如圖4-1所示:</p><p><b> 圖4-1 登錄界面</b></p><p> 用戶登錄模塊會(huì)自動(dòng)校驗(yàn)用戶輸入的信息,符合要求后才可以提交。登錄成功自動(dòng)進(jìn)入系統(tǒng)主界面(系統(tǒng)根據(jù)用戶類型對(duì)應(yīng)的用戶權(quán)限,向用戶展示出對(duì)應(yīng)的操作主界面),登錄失敗會(huì)有相應(yīng)提示。登錄模塊實(shí)現(xiàn)的流程如圖4-2所示:<
86、;/p><p> 圖4-2登錄模塊實(shí)現(xiàn)流程圖</p><p> 本模塊遵循MVC模式使用ExtJS實(shí)現(xiàn)其前臺(tái)使用Servlet處理后臺(tái)邏輯。修改項(xiàng)目中web.xml配置,將歡迎界面改為login.jsp,在項(xiàng)目中創(chuàng)建login.jsp登錄頁面,引入EXT,使用ExtJS創(chuàng)建登錄界面。</p><p> 創(chuàng)建login.js文件,使用EXT實(shí)現(xiàn)登錄界面和登錄信息校驗(yàn)
87、,及Ajax提交登錄信息。系統(tǒng)后臺(tái)接收登錄請(qǐng)求信息并加以處理,ServletLogin.java接收請(qǐng)求并交由業(yè)務(wù)處理類LoginBean.java進(jìn)行處理,它調(diào)用DAO層各個(gè)類,實(shí)現(xiàn)登錄信息的驗(yàn)證,并將驗(yàn)證結(jié)果返回。其源代碼如下:</p><p> public boolean action(HttpServletRequest request) {</p><p> boolean
88、 msg = false;</p><p> int typeid = 0;</p><p> int per_id = Integer.parseInt(request.getParameter("per_id"));</p><p> String pw = request.getParameter("per_password
89、");</p><p> PersonDAO pDAO = PersonDAOFactory.getPersonDAOInstance();</p><p><b> try {</b></p><p> typeid = pDAO.queryId(per_id, pw);</p><p> } cat
90、ch (Exception e) {e.printStackTrace();}</p><p> if(typeid == 0) { //登錄驗(yàn)證失敗</p><p> return msg;}else { //登錄成功</p><p> perid = String.valueOf(per_id);</p><p>
91、 UserlimitDAO ulDAO = UserlimitDAOFactory.getUserlimitDAOInstance();</p><p><b> try {</b></p><p> Userlimit ul = ulDAO.query(typeid); //獲取用戶權(quán)限</p><p> ulstr = ul.
92、toCtrl();</p><p> } catch (Exception e1) {e1.printStackTrace();}</p><p> LogDAO lDAO = LogDAOFactory.getLogDAOInstance();</p><p> Log l = new Log();</p><p> l.setPe
93、r_id(per_id);</p><p> l.setLogin_time(new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));</p><p> l.setLogout_time(new java.text.SimpleDateFormat("yyyy-MM
94、-dd HH:mm:ss").format(new Date()));</p><p> l.setLogin_ip(request.getRemoteAddr()); //獲取客戶端IP</p><p> try {logid = lDAO.insert(l); //設(shè)定登錄日志</p><p> } catch (Exceptio
95、n e) {msg = false;e.printStackTrace();}</p><p> msg = true; }return msg; }</p><p> … //get/set方法}</p><p> 完成功能代碼后,便可實(shí)現(xiàn)系統(tǒng)的整個(gè)登錄過程。</p><p> 4.1.2 商品銷售模塊的實(shí)現(xiàn)</p&g
96、t;<p> 超市系統(tǒng)的一個(gè)重要功能就是商品銷售,本系統(tǒng)提供一個(gè)簡(jiǎn)易的商品銷售接口,更加接近實(shí)際。同時(shí)商品銷售模塊中提供今日盤點(diǎn)功能,隨時(shí)查看銷售信息。這里以商品銷售為例,介紹其具體實(shí)現(xiàn)。</p><p> 創(chuàng)建商品銷售的JS文件sellsp.js,其中實(shí)現(xiàn)了商品信息的加載提示(商品樹),添加商品時(shí)信息的校驗(yàn),賬單中商品的查看,賬單的提交等功能。其中添加商品的表單和商品樹以及賬單商品的表格之間實(shí)
97、現(xiàn)了交互。首先</p><p> 前臺(tái)界面的運(yùn)行效果如圖4-3所示:</p><p> 圖4-3 商品銷售管理-商品銷售界面</p><p> 銷售商品時(shí)點(diǎn)擊左側(cè)商品樹并選擇所需商品,其編號(hào)會(huì)自動(dòng)加載到添加商品的表單中,或直接填寫商品編號(hào)也可,再填寫商品數(shù)量設(shè)定折扣率等信息后點(diǎn)擊添加按鈕,商品會(huì)自動(dòng)添加上方的賬單中,添加完畢點(diǎn)擊提交賬單來完成結(jié)算。銷售商品的實(shí)
98、現(xiàn)流程如圖4-4所示:</p><p> 圖4-4 商品銷售管理-銷售商品實(shí)現(xiàn)流程圖</p><p> 使用ExtJS實(shí)現(xiàn)前臺(tái)界面,實(shí)現(xiàn)了前臺(tái)的界面后,添加后臺(tái)代碼實(shí)現(xiàn)Servlet和業(yè)務(wù)數(shù)據(jù)操作??刂破鱏ervlet會(huì)調(diào)用Model層的業(yè)務(wù)實(shí)現(xiàn)類SellspBean.java,其中編碼前需要加入處理Json數(shù)據(jù)的jar包。其源代碼如下:</p><p> p
99、ublic class SellspBean {</p><p> public boolean action(HttpServletRequest request) {</p><p> String data = request.getParameter("jsonData");</p><p> boolean msg = true;
100、</p><p> List<Sell> sl = new ArrayList<Sell>();</p><p> JSONArray ja = JSONArray.fromObject(data); //處理Json數(shù)據(jù)</p><p> String bill = TheBill.getBillInstance();</p
101、><p> for (int i = 0; i < ja.size(); i++) {</p><p> JSONObject jo = ja.getJSONObject(i);</p><p> Sell s = new Sell();</p><p> s.setS_bill(bill);</p><p>
102、; s.setSp_id((Integer) jo.get("sp_id"));</p><p> s.setS_count((Integer) jo.get("s_count"));</p><p> s.setS_ys(Double.parseDouble((String) jo.get("s_ys")));</p
103、><p> s.setS_rate(Double.parseDouble(String.valueOf(jo.get("s_rate"))));</p><p> s.setS_ss(Double.parseDouble((String) jo.get("s_ss")));</p><p> s.setS_time((Str
104、ing) jo.get("s_time"));</p><p> s.setPer_id(Integer.parseInt((String) request.getSession().getAttribute("per_id")));</p><p> sl.add(s);</p><p><b> }<
105、/b></p><p> SellDAO sDAO = SellDAOFactory.getSellDAOInstance();</p><p><b> try {</b></p><p> sDAO.insert(sl); //添加銷售信息</p><p> } catch (Exception
106、e) {</p><p> msg = false;</p><p> e.printStackTrace();}</p><p> return msg;}}</p><p> 實(shí)現(xiàn)了控制器Controller和業(yè)務(wù)模型Model后,便可以實(shí)現(xiàn)銷售商品的功能模塊了。</p><p> 4.2 管理員功
107、能模塊實(shí)現(xiàn)</p><p> 管理員擁有系統(tǒng)的所有權(quán)限,首先登錄系統(tǒng),登錄后可以操作所有的功能模塊。管理員的登錄模塊和商品銷售模塊和普通銷售人員的模塊是相同的,實(shí)現(xiàn)方式相同,這里便不再贅述,只做其他模塊的介紹。</p><p> 4.2.1 系統(tǒng)管理模塊的實(shí)現(xiàn) </p><p> 用戶登錄成功后,可以進(jìn)行各種操作。這時(shí)系統(tǒng)中要有數(shù)據(jù),系統(tǒng)管理模塊中各個(gè)功能項(xiàng)用
108、來初始化系統(tǒng)數(shù)據(jù),如設(shè)定用戶信息,添加商品,設(shè)置賬戶和權(quán)限等等。此模塊中各個(gè)功能項(xiàng)使用相同的實(shí)現(xiàn)模式,這里以權(quán)限管理為例,介紹其具體實(shí)現(xiàn)。</p><p> 首先介紹系統(tǒng)主頁,本系統(tǒng)是One Page, One Application模式,各個(gè)頁面使用ExtJS實(shí)現(xiàn),只要?jiǎng)?chuàng)建各個(gè)頁面的JS文件并在主頁index.jsp中引入即可。界面的布局和顯示效果都是由ExtJS來實(shí)現(xiàn)。創(chuàng)建主頁后引入各個(gè)主頁布局的JS文件(
109、如:index.js、index.tab.js、index.tree.js等),使用它們實(shí)現(xiàn)的主頁界面如圖4-5所示:</p><p> 圖4-5 超市銷售管理系統(tǒng)主界面</p><p> 系統(tǒng)管理中的權(quán)限管理實(shí)現(xiàn)流程如圖4-6所示:</p><p> 圖4-6 系統(tǒng)設(shè)置-權(quán)限管理實(shí)現(xiàn)流程圖</p><p> 創(chuàng)建系統(tǒng)管理中權(quán)限管理的
110、JS文件sysqx.js實(shí)現(xiàn)權(quán)限管理的界面。其中包含了信息校驗(yàn),Ajax提交信息,自動(dòng)加載信息等實(shí)現(xiàn)。權(quán)限的CRUD等請(qǐng)求提交到控制器ServletSysqx.java這個(gè)Servlet中,它會(huì)調(diào)用Model層各個(gè)處理類加以處理并返回處理結(jié)果,顯示到頁面中。ServletSysqx的源代碼如下:</p><p> public void doPost(HttpServletRequest request, Ht
111、tpServletResponse response) throws ServletException, IOException {</p><p> request.setCharacterEncoding("UTF-8");</p><p> SysqxBean sqx = new SysqxBean(); //調(diào)用Model層業(yè)務(wù)處理類</p>
112、<p> boolean msg = sqx.action(request);</p><p> response.setCharacterEncoding("UTF-8");</p><p> if(sqx.getIs().equals("qey")) {</p><p> response.setCon
113、tentType("text/javascript;application/x-json");</p><p><b> if(msg) {</b></p><p> response.getWriter().print("{success:true,root:"+ sqx.getUll().toString() + &qu
114、ot;}");</p><p><b> }else {</b></p><p> response.getWriter().print("{success:false}");</p><p><b> }</b></p><p> }else if(sqx.g
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)設(shè)計(jì)---超市商品銷售管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
- 畢業(yè)設(shè)計(jì)(論文)超市銷售管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 畢業(yè)設(shè)計(jì)---超市銷售系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 超市銷售系統(tǒng)畢業(yè)設(shè)計(jì)
- 超市銷售管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
- 超市管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)【畢業(yè)設(shè)計(jì)】
- 畢業(yè)設(shè)計(jì)---基于網(wǎng)絡(luò)超市商品銷售管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- delphisql超市銷售系統(tǒng)畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)---超市配送運(yùn)輸管理系統(tǒng)實(shí)現(xiàn)與設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)--超市庫存管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 超市銷售管理信息系統(tǒng)畢業(yè)設(shè)計(jì)
- 超市管理系統(tǒng)畢業(yè)設(shè)計(jì)---超市管理系統(tǒng)
- 小型超市庫存管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)(論文)小型超市管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 畢業(yè)設(shè)計(jì)--在線服裝銷售管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
- 畢業(yè)設(shè)計(jì)--在線服裝銷售管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
- 超市管理系統(tǒng)畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)---超市管理系統(tǒng)
- 畢業(yè)設(shè)計(jì)----超市管理系統(tǒng)
- 畢業(yè)設(shè)計(jì)---商品銷售管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
評(píng)論
0/150
提交評(píng)論