版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 畢業(yè)設(shè)計(jì)題目 超市進(jìn)銷存管理系統(tǒng) 完成日期 2010年11月12日目 錄摘要1關(guān)鍵字1第1章 概述2第2章 系統(tǒng)開發(fā)的技術(shù)基礎(chǔ)22.1 Java概述22.2 SQL Server 2000簡介22.3 Eclipse簡介32.4 系統(tǒng)運(yùn)行壞境3第3章 系統(tǒng)分析33.1 可行性分析33.1.1 技術(shù)可行性33.1.2 經(jīng)濟(jì)可行性33.1.3 操作可行性43.1.4 運(yùn)行可行性43.1.5 法律可行性43.2 系統(tǒng)需求分析43.2.1 職能分析43.2.2 功能分析53.2.3 附加功能6第4章 系統(tǒng)設(shè)計(jì)64.1 數(shù)據(jù)庫設(shè)計(jì)64.1.1 E-R圖74.1.2 使用PowerDesigner建模8
2、4.1.3 數(shù)據(jù)字典94.2 功能模塊設(shè)計(jì)124.3 輸入輸出設(shè)計(jì)及實(shí)現(xiàn)14第5章 系統(tǒng)測(cè)試與發(fā)布235.1 單元測(cè)試概述235.2 什么是單元測(cè)試245.3 系統(tǒng)打包發(fā)布245.4 API參考文檔24第6章 總結(jié)與展望25附錄26參考文獻(xiàn)26超市進(jìn)銷存管理系統(tǒng) 摘 要最初的超市進(jìn)銷存管理都是靠人力來完成的,但隨著在市場經(jīng)濟(jì)的引導(dǎo)下,我國的超市經(jīng)營規(guī)模日益擴(kuò)大,銷售額和門店數(shù)大幅度增加,許多超市正向品種多樣化發(fā)展,需要處理大量的信息,時(shí)刻要更新產(chǎn)品銷售信息,不斷添加商品信息,并對(duì)商品的各種信息進(jìn)行統(tǒng)計(jì)分析。因此,在超市管理中引進(jìn)現(xiàn)代化的辦公軟件,實(shí)現(xiàn)超市商品信息的處理,從而方便管理人員的決策和
3、管理,解除后顧之憂。本系統(tǒng)主要完成對(duì)超市的管理,包括顧客管理、廠家管理、商品管理、退貨管理,購物車管理,采購管理、個(gè)人管理,管理員管理,系統(tǒng)管理等幾個(gè)方面。系統(tǒng)可以完成對(duì)各類信息的瀏覽、查詢、添加、刪除、修改等功能。系統(tǒng)采用C/S架構(gòu),采用SQL Server 2000來設(shè)計(jì)數(shù)據(jù)庫,并使用當(dāng)前優(yōu)秀的集成開發(fā)工具Eclipse并安裝MyEclipse插件,項(xiàng)目運(yùn)行環(huán)境為JDK1.6。開發(fā)模式采用敏捷開發(fā)模式,使用CVS進(jìn)行協(xié)同開發(fā),代碼書寫格式規(guī)范,注釋詳細(xì)。關(guān)鍵字:Java 、SQL Server 、超市、Eclipse、MyEclipse、進(jìn)銷存管理系統(tǒng)、Swing第1章 概述超市進(jìn)銷存管理
4、系統(tǒng)是一個(gè)典型的信息管理系統(tǒng)(MIS),其開發(fā)主要包括后臺(tái)數(shù)據(jù)庫的建立和維護(hù)以及前端界面程序的開發(fā)兩個(gè)方面。超市進(jìn)銷存管理系統(tǒng)在設(shè)計(jì)上體現(xiàn)了人性化和“以人為本”的精神。界面設(shè)計(jì)上親切友好,簡單直觀,便于操作。系統(tǒng)的核心是進(jìn)貨、銷售和庫存三者之間的聯(lián)系,每一個(gè)表的修改都將會(huì)牽扯到其它的表,當(dāng)完成進(jìn)貨、銷售和退貨操作時(shí)系統(tǒng)會(huì)自動(dòng)地完成相對(duì)應(yīng)信息的修改。查詢功能也是系統(tǒng)的核心之一,在系統(tǒng)中可以進(jìn)行模糊查詢和精確查詢,其目的都是為了方便用戶使用,以求更快的查找到相應(yīng)的基本信息。利用超市管理系統(tǒng)可以在以下幾個(gè)方面提高超市管理的水平:ü 提高管理效率ü 提高銷售額ü 降低人工
5、成本ü 降低采購成本ü 商業(yè)數(shù)據(jù)智能分析ü 高效決策第2章 系統(tǒng)開發(fā)的技術(shù)基礎(chǔ)2.1 Java概述Java,是由Sun Microsystems公司于1995年5月推出的Java程序設(shè)計(jì)語言和Java平臺(tái)的總稱。用Java實(shí)現(xiàn)的HotJava瀏覽器(支持Java applet)顯示了Java的魅力:跨平臺(tái)、動(dòng)態(tài)的Web、Internet計(jì)算。從此,Java被廣泛接受并推動(dòng)了Web的迅速發(fā)展,常用的瀏覽器現(xiàn)在均支持Java applet。2.2 SQL Server 2000簡介SQL Server 是一個(gè)關(guān)系數(shù)據(jù)庫管理系統(tǒng),它最初是由Microsoft Sybas
6、e 和Ashton-Tate三家公司共同開發(fā)的,于1988 年推出了第一個(gè)OS/2 版本。在Windows NT 推出后,Microsoft與Sybase 在SQL Server 的開發(fā)上就分道揚(yáng)鑣了。Microsoft 將SQL Server 移植到Windows NT系統(tǒng)上,專注于開發(fā)推廣SQL Server 的Windows NT 版本;Sybase 則較專注于SQL Server在UNIX 操作系統(tǒng)上的應(yīng)用。在本系統(tǒng)使用的是Microsoft SQL Server ,以后簡稱為SQL Server或MS SQL Server。2.3 Eclipse簡介Eclipse 是一個(gè)開放源代碼的
7、、基于 Java 的可擴(kuò)展開發(fā)平臺(tái)。就其本身而言,它只是一個(gè)框架和一組服務(wù),用于通過插件組件構(gòu)建開發(fā)環(huán)境。幸運(yùn)的是,Eclipse 附帶了一個(gè)標(biāo)準(zhǔn)的插件集,包括 Java 開發(fā)工具(Java Development Tools,JDT)。2.4 系統(tǒng)運(yùn)行壞境為了保證系統(tǒng)穩(wěn)定、良好、無故障的運(yùn)行,應(yīng)保證:1) 計(jì)算機(jī)硬件在586等級(jí)以上。2) 因?yàn)椴捎肧QL Server 2000數(shù)據(jù)庫,所以操作系統(tǒng)最低需要安裝Windows 2000。系統(tǒng)要求操作系統(tǒng)為中文WIN2000,WINXP,WIN2003,WIN7。3) 裝有Microsoft SQL Server 2000 SP4的補(bǔ)丁程序。4)
8、 屏幕分辨率800X600以上。第3章 系統(tǒng)分析3.1 可行性分析根據(jù)超市進(jìn)銷存管理系統(tǒng)概要說明書和超市進(jìn)銷存管理系統(tǒng)詳細(xì)說明書中的系統(tǒng)可行性分析的要求,指定系統(tǒng)可行性研究報(bào)告如下。3.1.1 技術(shù)可行性從技術(shù)角度分析,這項(xiàng)開發(fā)工作所涉及的專業(yè)技術(shù)為:Java編程技術(shù)、Swing、J2SE、SQL Server2000、JDBC。由于開發(fā)中涉及Microsoft SQL Server 2000的應(yīng)用,所以最好使用Windows2000以上的版本或Windows XP版本。3.1.2 經(jīng)濟(jì)可行性采用計(jì)算機(jī)管理不但可以提高工作效率,而且還可以節(jié)省人力、物力、財(cái)力,這樣原來幾個(gè)人干的工作現(xiàn)在一個(gè)人就
9、完全可以勝任。因此單從節(jié)省的職工工資、提高工作效率而避免各種直接或間接的經(jīng)濟(jì)損失角度來看,該系統(tǒng)實(shí)際所能夠起到的作用將會(huì)遠(yuǎn)遠(yuǎn)大于投入的開發(fā)費(fèi)用,所以從經(jīng)濟(jì)上是完全可行的。3.1.3 操作可行性開發(fā)所采用的工具是MyEclipse,開發(fā)出的應(yīng)用程序均是圖形化界面,操作員幾乎不用記住任何DOS命令就可以直接操作此軟件。另外,軟件的操作員大多已經(jīng)會(huì)基本的Windows操作,即便不會(huì)操作Windows,經(jīng)過短期的培訓(xùn)也能熟練地使用本軟件,所以在操作上也是可行的。3.1.4 運(yùn)行可行性本系統(tǒng)經(jīng)過精心設(shè)計(jì)開發(fā),比較緊湊,項(xiàng)目比較小,所以對(duì)軟硬的要求并不高,運(yùn)行投入也相對(duì)較少,現(xiàn)在普通的電腦都能夠滿足條件,
10、因此,本系統(tǒng)在運(yùn)行上是可行的。3.1.5 法律可行性經(jīng)過參閱學(xué)生管理手冊(cè)中學(xué)生處分、獎(jiǎng)勵(lì)、畢業(yè)等相關(guān)內(nèi)容,本系統(tǒng)的設(shè)計(jì)與開發(fā)完全符合學(xué)校規(guī)定,更無任何與法律相抵觸的方面。因此,本系統(tǒng)在法律上是可行的。綜上所述,此系統(tǒng)開發(fā)目標(biāo)已明確,在技術(shù)和經(jīng)濟(jì)等方面都可行,不會(huì)存在問題,并且投入少、效率高。因此認(rèn)為該超市進(jìn)銷存管理系統(tǒng)可以開發(fā)。3.2 系統(tǒng)需求分析超市進(jìn)銷存系統(tǒng)必須提供顧客信息、廠家信息、采購信息、銷售信息、庫存信息和財(cái)務(wù)信息的基礎(chǔ)設(shè)計(jì):提供強(qiáng)大的精確查找和模糊查找信息的功能,可以分不同權(quán)限、不同用戶對(duì)該系統(tǒng)進(jìn)行操作。另外,該系統(tǒng)還必須保證數(shù)據(jù)的安全性、完整性和準(zhǔn)確性。超市進(jìn)銷存管理系統(tǒng)的目標(biāo)
11、是實(shí)現(xiàn)超市信息化管理,減少盲目采購、降低采購成本、合理控制庫存、減少資金占用并提升超市綜合競爭力。時(shí)間就是金錢,效率就是生命。超市進(jìn)銷存管理系統(tǒng)能夠?yàn)槌泄?jié)省大量人力資源,減少管理費(fèi)用,從而間接為超市節(jié)約成本,提高超市效率。3.2.1 職能分析通過與超市人員進(jìn)行交流,發(fā)現(xiàn)超市管理系統(tǒng)需要滿足來自多個(gè)不同用戶的要求。在超市經(jīng)營中,按照人員的職能分為五大類,分別是顧客、營業(yè)員、采購員、經(jīng)理、系統(tǒng)管理員。顧客顧客是超市的上帝,超市的一切都是為顧客服務(wù)的!顧客的要求就是能購買到實(shí)惠的商品。顧客按類型又可以分為三種:1.普通顧客:購買商品(無積分,無須注冊(cè))2.會(huì)員:購買商品送積分,辦會(huì)員卡免費(fèi),有充值
12、功能!如果充值金額大于100,每充100元送5元,積分用于節(jié)日促銷活動(dòng)。3.貴賓:會(huì)員積分達(dá)到一定的數(shù)量時(shí),可以轉(zhuǎn)成貴賓卡,購買商品送更多的積分,有充值功能!如果充值金額大于100,每充100元送5元,積分用于節(jié)日促銷活動(dòng)。貴賓擁有更多的權(quán)利。采購員采購員的要求是查看經(jīng)理指派給自己的所有采購信息并按規(guī)定完成任務(wù),即去聯(lián)系廠家并按規(guī)定驗(yàn)收采購的商品,并退回不合格的采購商品。修改自己的賬號(hào)密碼。營業(yè)員營業(yè)員的要求是銷售商品給顧客,添加購物車信息、可以查看、查找、添加、修改顧客信息、但不可以刪除顧客信息。并做好記錄顧客因各種原因而退貨的商品信息。修改自己的賬號(hào)密碼。經(jīng)理經(jīng)理的要求是能夠查看1)采購、
13、2)銷售、3)庫存、4)商品、5)營業(yè)額等信息從而進(jìn)行高效決策,如:下達(dá)采購信息;添加刪除用戶,即雇傭和解雇職員。修改自己的賬號(hào)密碼。系統(tǒng)管理員系統(tǒng)管理員只具有管理用戶和管理系統(tǒng)的權(quán)限,不具備所有用戶的權(quán)限,即沒有采購員、營業(yè)員、經(jīng)理等角色的權(quán)限。修改自己的賬號(hào)密碼。3.2.2 功能分析通過與超市管理人員進(jìn)行反復(fù)的討論,最終確定系統(tǒng)應(yīng)該實(shí)現(xiàn)以下功能:1) 對(duì)商品信息的變動(dòng)進(jìn)行處理在商品的采購和銷售過程中,商品信息總是在不斷變化的,比如商品價(jià)格的調(diào)整、商品信息的修改、新商品信息的增加以及舊商品信息的刪除,因此設(shè)計(jì)系統(tǒng)時(shí)必須考慮到這些情況。商品信息有商品編號(hào)、商品名、商品數(shù)量、商品規(guī)格、商品價(jià)格、
14、廠家名等屬性。2) 對(duì)用戶信息的變動(dòng)進(jìn)行處理需考慮到職員的雇傭和解雇、所以用戶信息的修改及刪除也是要有的。3) 對(duì)采購信息的變動(dòng)進(jìn)行處理采購員在采購的過程中采購信息也在不斷發(fā)生改變,因此也要充分考慮。采購信息有采購編號(hào)、采購日期、商品廠家、采購員、商品價(jià)格、商品規(guī)格、商品數(shù)量等屬性。4) 對(duì)銷售信息的變動(dòng)進(jìn)行處理營業(yè)員在銷售的過程中銷售信息也在不斷發(fā)生改變,如顧客買到了劣質(zhì)產(chǎn)品要求退貨,因此也要充分考慮。5) 查詢及統(tǒng)計(jì)功能要求可以根據(jù)指定的條件對(duì)廠家信息、顧客信息、商品信息、采購信息、銷售信息進(jìn)行查詢和對(duì)每天賬務(wù)的收入支出進(jìn)行統(tǒng)計(jì)查詢!查詢又分為精確查詢和模糊查詢。3.2.3 附加功能為了能
15、當(dāng)超市增加新的業(yè)務(wù)需求時(shí)能方便的升級(jí)系統(tǒng),所以系統(tǒng)應(yīng)當(dāng)具有良好的擴(kuò)張性。也需要能夠與第三方產(chǎn)品對(duì)接,比如:與短信平臺(tái)對(duì)接以提供短信發(fā)送和接收功能。與聲訊系統(tǒng)對(duì)接,提供自動(dòng)呼叫服務(wù)。與郵件系統(tǒng)對(duì)接以發(fā)送和接受郵件。第4章 系統(tǒng)設(shè)計(jì)根據(jù)系統(tǒng)分析的描述以及與超市人員的溝通,實(shí)現(xiàn)目標(biāo)如下:l 界面設(shè)計(jì)簡潔、友好、美觀大方。l 操作簡單、快捷方便。l 數(shù)據(jù)存儲(chǔ)安全、可靠。l 信息分類清晰、準(zhǔn)確。l 強(qiáng)大的查詢功能,保證數(shù)據(jù)查詢的靈活性。l 提供銷售排行榜,為管理員提供真實(shí)的數(shù)據(jù)信息。l 提供靈活、方便的權(quán)限設(shè)置功能,使整個(gè)系統(tǒng)的管理分工明確。l 對(duì)用戶輸入的數(shù)據(jù),系統(tǒng)進(jìn)行嚴(yán)格的數(shù)據(jù)檢驗(yàn),盡可能排除人為的
16、錯(cuò)誤。由于此系統(tǒng)是一個(gè)典型的客戶/服務(wù)器(C/S)體系結(jié)構(gòu)的數(shù)據(jù)庫應(yīng)用程序,因此具體設(shè)計(jì)階段主要分兩大部分進(jìn)行:數(shù)據(jù)庫的設(shè)計(jì)和各種功能模塊及頁面的設(shè)計(jì)。從運(yùn)用的技術(shù)角度分析,即SQL Server部分的設(shè)計(jì)和Java部分的設(shè)計(jì)。下面,我們將從這兩個(gè)方面對(duì)系統(tǒng)的設(shè)計(jì)進(jìn)行闡述。4.1 數(shù)據(jù)庫設(shè)計(jì)超市進(jìn)銷存管理系統(tǒng)是一個(gè)基于C/S架構(gòu)的應(yīng)用程序,它可以直接在本地計(jì)算機(jī)上運(yùn)行,而不需要向Web應(yīng)用那樣部署到指定的服務(wù)器中。所以這個(gè)超市進(jìn)銷存管理系統(tǒng)在本地計(jì)算機(jī)上安裝了SQL Server 2000數(shù)據(jù)庫服務(wù)器,將數(shù)據(jù)庫和應(yīng)用程序放在同一個(gè)計(jì)算機(jī)中,可以節(jié)省開銷、提升系統(tǒng)安全性。另外,本系統(tǒng)也可以在網(wǎng)絡(luò)
17、內(nèi)的其他計(jì)算機(jī)中運(yùn)行,但是這需要將數(shù)據(jù)庫對(duì)外開放、會(huì)降低數(shù)據(jù)安全性,其數(shù)據(jù)庫運(yùn)行環(huán)境如下:Ø 硬件平臺(tái):ü CPU:Inter E2180 2GHzü 內(nèi)存:2GBü 硬盤空間:160GBØ 軟件平臺(tái):ü 操作系統(tǒng):Windows XP SP3ü 數(shù)據(jù)庫:SQL Server 2000超市進(jìn)銷存管理系統(tǒng)的數(shù)據(jù)庫設(shè)計(jì)采用關(guān)系數(shù)據(jù)模型理論,有關(guān)系的元素組成一張表,表與表之間用外鍵保持一致性,用主鍵的方式確保記錄的唯一性。涉及的表有充值表、顧客表、廠家表、商品表、日志表、財(cái)務(wù)表、退貨表、銷售表、購物車表、采購表和用戶表共十一張表。
18、超市管理系統(tǒng)模塊分為:登錄模塊、顧客管理模塊、廠家管理模塊、商品管理模塊、退貨管理模塊、購物車管理模塊、采購管理模塊、個(gè)人管理模塊、管理員管理模塊和系統(tǒng)管理模塊共十大模塊。為了方便數(shù)據(jù)庫的設(shè)計(jì),縮小開發(fā)周期,我用PowerDesigner軟件把表都設(shè)計(jì)好,然后自動(dòng)生成數(shù)據(jù)庫的建表SQL語句。在對(duì)數(shù)據(jù)庫進(jìn)行訪問時(shí)我用到了MVC設(shè)計(jì)模式中DAO(Data Access Object)技術(shù)封裝對(duì)數(shù)據(jù)庫的查詢、刪除、插入等各種操作,這樣提高數(shù)據(jù)庫訪問的透明性和系統(tǒng)的靈活性。4.1.1 E-R圖超市進(jìn)銷存管理系統(tǒng)主要實(shí)現(xiàn)從進(jìn)貨、退貨、庫存到銷售的一體化信息管理,涉及到了顧客信息、廠家信息、商品信息等多個(gè)
19、實(shí)體。下面簡單介紹幾個(gè)關(guān)鍵的實(shí)體E-R圖。顧客實(shí)體E-R圖超市進(jìn)銷存管理系統(tǒng)將記錄所有的顧客信息,顧客實(shí)體包括顧客編號(hào)、顧客姓名、顧客性別、顧客年齡、顧客聯(lián)系電話、顧客聯(lián)系地址、顧客電子郵箱、顧客類型、顧客可用余額、顧客可用積分等屬性,顧客E-R圖如圖1所示。顧客編號(hào)顧客顧客姓名顧客性別顧客年齡顧客聯(lián)系電話顧客聯(lián)系地址顧客電子郵箱顧客類型顧客可用余額顧客可用積分圖1廠家實(shí)體E-R圖廠家編號(hào)廠家廠家名稱廠家負(fù)責(zé)人廠家聯(lián)系電話廠家地址超市進(jìn)銷存管理系統(tǒng)將記錄所有的廠家信息,廠家實(shí)體包括廠家編號(hào)、廠家名稱、廠家負(fù)責(zé)人、廠家聯(lián)系電話、廠家地址等屬性,廠家E-R圖如圖2所示。圖2商品實(shí)體E-R圖超市進(jìn)銷
20、存管理系統(tǒng)將記錄所有的商品信息,商品實(shí)體包括商品編號(hào)、商品名稱、商品數(shù)量、商品規(guī)格、商品價(jià)格、商品廠家名等屬性,商品E-R圖如圖3所示。商品編號(hào)商品商品名稱商品數(shù)量商品規(guī)格商品價(jià)格商品廠家名圖34.1.2 使用PowerDesigner建模在數(shù)據(jù)庫概念設(shè)計(jì)中已經(jīng)分析了本系統(tǒng)中主要的數(shù)據(jù)實(shí)體對(duì)象,通過這些實(shí)體可以得出數(shù)據(jù)表結(jié)構(gòu)的基本模型,最終實(shí)施到數(shù)據(jù)庫中,形成完整的數(shù)據(jù)結(jié)構(gòu)。本系統(tǒng)使用PowerDesigner工具完成數(shù)據(jù)庫建模,使用的版本為12.5。使用該工具生成的模型如圖4下:圖4 超市進(jìn)銷存管理系統(tǒng)的模型4.1.3 數(shù)據(jù)字典表1 充值表表名數(shù)據(jù)表說明t_addmoney存儲(chǔ)充值信息的數(shù)據(jù)
21、表字段名稱數(shù)據(jù)類型是否主鍵字段說明AddMoneyIDint(自增序列)是充值編號(hào),顧客記錄的唯一標(biāo)識(shí)BuyerIDint顧客IDBuyerNamevarchar(20)顧客名AddMoneyfloat充值DonateMoneyfloat贈(zèng)送AddMoneyDatedatetime時(shí)間UserNamevarchar(20)用戶名Balancefloat卡內(nèi)余額表2 顧客表表名數(shù)據(jù)表說明t_buyer存儲(chǔ)顧客信息的數(shù)據(jù)表字段名稱數(shù)據(jù)類型是否主鍵字段說明BuyerIDint(自增序列)是顧客編號(hào),顧客記錄的唯一標(biāo)識(shí)BuyerNamevarchar(10)顧客姓名BuyerSexvarchar(4)
22、顧客性別BuyerAgeint顧客年齡BuyerPhonevarchar(20)顧客聯(lián)系電話BuyerAddressvarchar(50)顧客聯(lián)系地址BuyerEmailvarchar(20)顧客電子郵箱BuyerTypeint顧客類型為0表示普通顧客,為1表示會(huì)員,為2表示貴賓BuyerBalancefloat顧客可用余額BuyerScoreint顧客用用積分表3 廠家表表名數(shù)據(jù)表說明t_factory存儲(chǔ)廠家(供貨商)信息的數(shù)據(jù)表字段名稱數(shù)據(jù)類型是否主鍵字段說明FactoryIDint(自增序列)是廠家編號(hào),廠家記錄的唯一標(biāo)識(shí)FactoryNamevarchar(20)廠家名稱Factor
23、yManagervarchar(10)廠家經(jīng)理(負(fù)責(zé)人)FactoryPhonevarchar(10)廠家聯(lián)系電話FactoryAddressvarchar(50)廠家地址表4 商品庫存表表名數(shù)據(jù)表說明t_goods存儲(chǔ)商品信息的數(shù)據(jù)表字段名稱數(shù)據(jù)類型是否主鍵字段說明GoodsIDint(自增序列)是商品編號(hào),商品記錄的唯一標(biāo)識(shí)GoodsNOvarchar(20)商品條形碼編號(hào)GoodsNamevarchar(10)商品名稱GoodsNumint商品數(shù)量GoodsTypevarchar(10)商品規(guī)格GoodsPricefloat商品價(jià)格FactoryNamevarchar(20)商品廠家名表
24、5 日志表表名數(shù)據(jù)表說明t_money存儲(chǔ)日志信息的數(shù)據(jù)表字段名稱數(shù)據(jù)類型是否主鍵字段說明LogIDint(自增序列)是日志編號(hào),日志記錄的唯一標(biāo)識(shí)LogDatedatetime日志日期IpAddressvarchar(20)IP地址UserNamevarchar(20)用戶名LogContentvarchar(20)日志內(nèi)容表6 財(cái)務(wù)表表名數(shù)據(jù)表說明t_money存儲(chǔ)財(cái)務(wù)信息的數(shù)據(jù)表字段名稱數(shù)據(jù)類型是否主鍵字段說明MoneyIDint(自增序列)是財(cái)務(wù)編號(hào),財(cái)務(wù)記錄的唯一標(biāo)識(shí)UserNamevarchar(20)用戶名MoneyBalancefloat金額MoneyContentvarcha
25、r(50)內(nèi)容MoneyDatedatetime日期表7 退貨表表名數(shù)據(jù)表說明t_quitgoods存儲(chǔ)退貨信息的數(shù)據(jù)表字段名稱數(shù)據(jù)類型是否主鍵字段說明QuitGoodsIDint(自增序列)是退貨編號(hào),退貨記錄的唯一標(biāo)識(shí)GoodsIDint退貨商品IDQuitReaseontext退貨原因QuitGoodsTypeint退貨類型為0表示銷售退貨,為1表示采購?fù)素決uitGoodsNumint退貨數(shù)量UserNamevarchar(20)用戶名表8 銷售表表名數(shù)據(jù)表說明t_sell存儲(chǔ)銷售信息的數(shù)據(jù)表字段名稱數(shù)據(jù)類型是否主鍵字段說明SellIDint(自增序列)是銷售編號(hào),銷售記錄的唯一標(biāo)識(shí)U
26、serNamevarchar(20)用戶名BuyerNamevarchar(20)顧客名ShopCarIDvarchar(50)購物車IDGoodsNumint數(shù)量TotalMoneyfloat總金額GetMoneyfloat實(shí)收金額PayMoneyfloat找零金額SellDatedatetime銷售日期表9 購物車表表名數(shù)據(jù)表說明t_shopcar存儲(chǔ)購物車信息的數(shù)據(jù)表字段名稱數(shù)據(jù)類型是否主鍵字段說明ShopCarIDvarchar(50)是購物車編號(hào),前面是XX-XX-XX(日期)后面是四位銷售流水號(hào)GoodsIDint商品IDGoodsNamevarchar(10)商品名稱GoodsT
27、ypevarchar(10)商品規(guī)格BuyGoodsNumint購買數(shù)量GoodsPricefloat商品單價(jià)BuyerNamevarchar(20)顧客名UserNamevarchar(20)用戶名表10 采購表表名數(shù)據(jù)表說明t_stock存儲(chǔ)采購信息的數(shù)據(jù)表字段名稱數(shù)據(jù)類型是否主鍵字段說明StockIDint(自增序列)是采購編號(hào),采購記錄的唯一標(biāo)識(shí)GoodsIDint商品IDUserIDint用戶IDFactoryIDint廠家IDStockDatedatetime采購日期StockPricefloat采購價(jià)格SellPricefloat銷售價(jià)格>=采購價(jià)格*1.25表11 用戶表
28、表名數(shù)據(jù)表說明t_user存儲(chǔ)用戶信息的數(shù)據(jù)表字段名稱數(shù)據(jù)類型是否主鍵字段說明UserIDint(自增序列)是用戶編號(hào),用戶記錄的唯一標(biāo)識(shí)UserNamevarchar(10)用戶登陸系統(tǒng)時(shí)所用的用戶名稱UserPwdvarchar(20)用戶密碼UserPhonevarchar(20)用戶聯(lián)系電話UserAddressvarchar(50)用戶聯(lián)系地址UserTypeint用戶類型為0表示管理員、為1表示經(jīng)理、為2表示營業(yè)員、為3表示采購員4.2 功能模塊設(shè)計(jì)根據(jù)以上對(duì)超市管理系統(tǒng)數(shù)據(jù)庫的分析,一個(gè)標(biāo)準(zhǔn)的超市進(jìn)銷存管理系統(tǒng)應(yīng)該實(shí)現(xiàn)的主要的功能模塊有:登錄模塊、采購管理模塊、退貨管理模塊、商品
29、信息管理模塊、購物車管理模塊、用戶管理模塊、顧客管理模塊、廠家管理模塊、統(tǒng)計(jì)管理模塊、管理員管理模塊。(共十大模塊)下面對(duì)這些功能模塊作下簡單的介紹。登錄模塊用于驗(yàn)證用戶的登錄。不同的用戶成功登錄后顯示的窗體是不一樣的。這是每個(gè)系統(tǒng)都應(yīng)該具有的功能,在這里我要特別的介紹一下了。別小看了一個(gè)普通的登錄模塊,它包含的用戶需求可以是有幾十條的。比如:用戶不能重復(fù)登錄,輸入三次密碼錯(cuò)誤后,應(yīng)該鎖定用戶的賬號(hào),記住密碼功能等等。顧客管理模塊這個(gè)模塊用于維護(hù)顧客的資料。系統(tǒng)中顧客分為三種:貴賓、會(huì)員、普通顧客。類型為0表示普通顧客,為1表示會(huì)員,為2表示貴賓,系統(tǒng)默認(rèn)有一個(gè)BuyerID為0的普通顧客。其
30、都有如下幾個(gè)基本信息:顧客ID、顧客名、性別、年齡、地址、電話、E-mail、顧客類別。顧客的信息是超市一個(gè)很重要的市場資源、必須持久性的保存到數(shù)據(jù)庫中,同時(shí)為了數(shù)據(jù)的安全性,應(yīng)定期將數(shù)據(jù)備份到其他介質(zhì)上保存或把數(shù)據(jù)打印成資料保管起來。顧客管理包括:增加顧客、刪除顧客、修改顧客、查詢顧客。為了方便,加入了準(zhǔn)確查詢和模糊查詢。廠家管理模塊這個(gè)模塊用于維護(hù)廠家的資料。系統(tǒng)中廠家有如下幾個(gè)基本的信息:廠家ID、廠家名稱、廠家經(jīng)理、廠家聯(lián)系電話、廠家地址。廠家的信息也是超市的一個(gè)很重要的信息,所以必須是管理員或經(jīng)理才能查看。同時(shí)為了數(shù)據(jù)的安全性,應(yīng)定期將數(shù)據(jù)備份到其他介質(zhì)上保存或把數(shù)據(jù)打印成資料保管起
31、來。廠家管理模塊包括:增加廠家信息、刪除廠家信息、修改廠家信息、查詢廠家信息。為了方便,加入了準(zhǔn)確查詢和模糊查詢。商品管理模塊這個(gè)模塊用戶維護(hù)商品的資料。當(dāng)超市中出現(xiàn)了由于商品價(jià)格定價(jià)過高而導(dǎo)致商品不暢銷的商品時(shí),可以更新商品的價(jià)格信息。系統(tǒng)中商品都有如下幾個(gè)基本信息:商品ID、商品名稱、商品數(shù)量、商品規(guī)格、商品價(jià)格、商品廠家名。商品信息管理包括:更新商品信息、查詢商品信息。為了方便,加入了準(zhǔn)確查詢和模糊查詢。退貨管理模塊用于對(duì)采購了問題產(chǎn)品而退貨和顧客購買了問題產(chǎn)品而退貨的信息進(jìn)行登記。采購員對(duì)應(yīng)采購?fù)素?,工作流程:?duì)超市的采購?fù)素浻涗涍M(jìn)行詳細(xì)記錄。營業(yè)員對(duì)應(yīng)銷售退貨,工作流程:對(duì)超市的銷售
32、退貨記錄進(jìn)行詳細(xì)記錄。為了方便,加入了準(zhǔn)確查詢和模糊查詢。購物車管理模塊用于營業(yè)員管理超市的銷售業(yè)務(wù),其主要功能是讓營業(yè)員進(jìn)行銷售信息的添加及查詢。為了讓經(jīng)理和系統(tǒng)管理員了解銷售情況!購物車管理模塊工作流程是:營業(yè)員先掃描顧客購物車?yán)锩娴纳唐?,然后確定顧客是普通顧客還是會(huì)員,是付現(xiàn)金還是刷卡,最后打印出銷售小票。并把銷售記錄進(jìn)行詳細(xì)的記錄。為了方便,加入了準(zhǔn)確查詢和模糊查詢。采購管理模塊用于采購員管理超市的采購業(yè)務(wù),其主要功能是完成超市采購信息的添加及查詢。工作流程是:經(jīng)理通過查看超市的銷售狀況和對(duì)庫存進(jìn)行盤點(diǎn),對(duì)庫存不足的商品進(jìn)行采購,并下達(dá)采購信息,指派給相對(duì)應(yīng)的采購員去完成,采購員則接受
33、經(jīng)理的命令,去廠家采購商品,并驗(yàn)收入庫,還要對(duì)超市的采購記錄進(jìn)行詳細(xì)記錄。為了方便,加入了準(zhǔn)確查詢和模糊查詢。個(gè)人管理模塊用戶系統(tǒng)用戶修改自己的賬號(hào)密碼和修改自己的個(gè)人信息。不同的用戶只能夠修改自己的密碼和個(gè)人信息。提高了系統(tǒng)的安全性和準(zhǔn)確性。個(gè)人管理模塊還有換班管理以及局域網(wǎng)聊天子系統(tǒng)等功能,方便用戶的特殊需求,如超市職工需請(qǐng)假,則可以通過換班管理,和其他人交接班,以方便超市的正常運(yùn)轉(zhuǎn)。局域網(wǎng)聊天是為了經(jīng)理給超市職工下達(dá)通知以及超市職工向經(jīng)理匯報(bào)情況等提供方便,提高工作效率,異地協(xié)同辦公。管理員管理模塊用于給系統(tǒng)分配登錄用戶。不同的用戶具有不同的權(quán)限,權(quán)限管理可以提高系統(tǒng)的安全性。系統(tǒng)用戶分
34、為四種級(jí)別的用戶,系統(tǒng)管理員、經(jīng)理、營業(yè)員和采購員。其都有如下幾個(gè)基本信息:用戶ID、用戶名、用戶密碼、用戶電話、用戶地址、用戶類別。系統(tǒng)默認(rèn)有一個(gè)系統(tǒng)管理員admin,密碼設(shè)置為admin,系統(tǒng)管理員能夠操作系統(tǒng)中所有的功能。用戶管理包括對(duì)經(jīng)理、營業(yè)員、采購員等用戶進(jìn)行添加和刪除等管理。工作流程:1、負(fù)責(zé)系統(tǒng)登錄用戶的管理。為了方便,加入了準(zhǔn)確查詢和模糊查詢。系統(tǒng)管理模塊系統(tǒng)管理是軟件最基本、最重要的信息。其包含有查看系統(tǒng)日志、查看銷售信息、查看充值信息和收入支出統(tǒng)計(jì)等功能。查看系統(tǒng)日志要求對(duì)該系統(tǒng)的使用情況進(jìn)行記錄,如何時(shí)何地何人使用過該超市進(jìn)銷存管理系統(tǒng),以及對(duì)重要信息的增刪改進(jìn)行記錄,
35、方便經(jīng)理進(jìn)行查閱。查看銷售信息、查看充值信息和收入支出統(tǒng)計(jì)等功能模塊用于管理員或經(jīng)理了解超市的經(jīng)營情況,從而做出重要性的高校決策。提高管理效率!4.3 輸入輸出設(shè)計(jì)及實(shí)現(xiàn)運(yùn)行該系統(tǒng)出現(xiàn)登錄窗體,如圖5所示。圖5關(guān)鍵代碼如下:public class Login private JTextField userNameField;private JTextField userPwdField;private JButton confirmBtn;private JButton cancelBtn;private JFrame loginFrame;/* * 初始化窗體并給按鈕添加監(jiān)聽事件 */pu
36、blic void init() initFrame();/ 給窗口添加監(jiān)聽事件/ 接收窗口事件的抽象適配器類(匿名內(nèi)部類)loginFrame.addWindowListener(new WindowAdapter() Overridepublic void windowClosing(WindowEvent e) System.exit(0);/ 關(guān)閉窗口時(shí)調(diào)用System.exit(0)關(guān)閉Java虛擬機(jī));/ 給登錄按鈕添加監(jiān)聽事件confirmBtn.addActionListener(new ActionListener() public void actionPerformed(
37、ActionEvent e) String userName = userNameField.getText();String userPwd = userPwdField.getText();if (userName.equals("") && userPwd.equals("") JOptionPane.showMessageDialog(null, "用戶名或密碼不能為空!");return; else if (new UserDAO().judge(userName, userPwd) /將用戶登錄情況寫入系統(tǒng)
38、日志new Common().addLog(userName, "登錄系統(tǒng)");loginFrame.setVisible(false);new MainManage(userName).init(); else JOptionPane.showMessageDialog(null, "用戶名或密碼錯(cuò)誤!"););/ 給取消按鈕添加監(jiān)聽事件cancelBtn.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) System.exit(0););
39、/ 給密碼文本框添加監(jiān)聽事件userPwdField.addKeyListener(new KeyListener() public void keyPressed(KeyEvent e) if (e.getKeyCode() = 10) / 返回與此事件中的鍵相關(guān)聯(lián)的整數(shù) keyCode。String userName = userNameField.getText();String userPwd = userPwdField.getText();if (userName.equals("") && userPwd.equals(""
40、) JOptionPane.showMessageDialog(null, "用戶名或密碼不能為空!");return; else if (new UserDAO().judge(userName, userPwd) / 將用戶登錄情況寫入系統(tǒng)日志new Common().addLog(userName, "登錄系統(tǒng)");loginFrame.setVisible(false);new MainManage(userName).init(); else JOptionPane.showMessageDialog(null, "用戶名或密碼錯(cuò)誤!
41、");public void keyReleased(KeyEvent e) public void keyTyped(KeyEvent e) );/* * 初始化窗體 */private void initFrame() loginFrame = new JFrame("登錄超市進(jìn)銷存管理系統(tǒng)");/ 設(shè)置窗口的顯示位置和大小loginFrame.setBounds(400, 300, 380, 300);/ 設(shè)置窗口的大小固定loginFrame.setResizable(false);/ 設(shè)置窗口的布局格式loginFrame.setLayout(null)
42、;/ 添加圖片 Icon icon = new ImageIcon("resabout2.jpg");JLabel aboutLabel = new JLabel(icon);/ 創(chuàng)建具有指定圖像的/ JLabel實(shí)例。該標(biāo)簽在其顯示區(qū)內(nèi)垂直和水平居中對(duì)齊。aboutLabel.setBounds(0, 0, 380, 150);loginFrame.add(aboutLabel);/ 添加用戶名JLabel userNameLabel = new JLabel("用戶名:");userNameLabel.setBounds(5, 155, 60, 20
43、);loginFrame.add(userNameLabel);userNameField = new JTextField();userNameField.setBounds(70, 155, 300, 20);loginFrame.add(userNameField);/ 添加密碼JLabel userPwdLabel = new JLabel("密碼:");userPwdLabel.setBounds(5, 180, 60, 20);loginFrame.add(userPwdLabel);userPwdField = new JPasswordField();use
44、rPwdField.setBounds(70, 180, 300, 20);userPwdField.setFocusable(true);loginFrame.add(userPwdField);confirmBtn = new JButton("登錄");confirmBtn.setBounds(70, 220, 60, 20);loginFrame.add(confirmBtn);cancelBtn = new JButton("取消");cancelBtn.setBounds(220, 220, 60, 20);loginFrame.add(ca
45、ncelBtn);loginFrame.setVisible(true);public static void main(String args) / TODO Auto-generated method stubnew Login().init();輸入用戶名、密碼后進(jìn)入超市進(jìn)銷存管理系統(tǒng)主窗體界面如下圖所示。圖6選擇“購物車管理”/“添加購物車信息”按鈕,在彈出的窗體中進(jìn)行對(duì)銷售信息的操作。如下圖所示。圖7關(guān)鍵代碼實(shí)現(xiàn):public void init() initFrame();/ 給窗體添加監(jiān)聽事件shopCarManageFrame.addWindowListener(new Win
46、dowAdapter() public void windowClosing(WindowEvent e) shopCarManageFrame.setVisible(false););/ 給商品ID文本框添加監(jiān)聽事件,敲入商品ID后回車得到商品的基本信息goodsIDField.addKeyListener(new KeyListener() public void keyPressed(KeyEvent e) if (e.getKeyCode() = 10) / 返回與此事件中的鍵相關(guān)聯(lián)的整數(shù) keyCode。if (goodsIDField.getText().trim().equals
47、("")| new Common().isLetter(goodsIDField.getText().toString().trim() JOptionPane.showMessageDialog(null, "請(qǐng)輸入正確的商品ID!"); else con = DBConn.getConn();String sql = "select * from t_goods where goodsID = ?"try int goodsID = Integer.parseInt(goodsIDField.getText().trim();ps
48、 = con.prepareStatement(sql);ps.setInt(1, goodsID);rs = ps.executeQuery();if (rs.next() goodsNameField.setText(rs.getString("GoodsName");goodsPriceField.setText(rs.getString("GoodsPrice");goodsTypeField.setText(rs.getString("GoodsType");goodsVO = new GoodsDAO().findVOBy
49、GoodsID(goodsID); else JOptionPane.showMessageDialog(null,"你輸入的商品ID不存在!");goodsIDField.setText(""); catch (SQLException e1) / TODO Auto-generated catch blocke1.printStackTrace(); finally DBConn.freeConn(con);public void keyReleased(KeyEvent e) public void keyTyped(KeyEvent e) );/
50、 給購買按鈕添加監(jiān)聽事件purchaseBtn.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) if(data.size()=0)JOptionPane.showMessageDialog(null, "至少要買點(diǎn)什么吧?");elseint buyerType = buyerVO.getBuyerType();if (buyerType != 0) / 作判斷,如果卡上的余額不足以付賬,則提示該充值了!if(sumPrice>buyerVO.getBu
51、yerBalance()JOptionPane.showMessageDialog(null, "卡上金額不足,請(qǐng)充值!");shopCarManageFrame.setVisible(false);new AddMoneyForVIPFrame(buyerVO,userName).init();elsenew PurchaseManageForVIP(shopCarID, userName, buyerVO, sum,sumPrice).init();shopCarManageFrame.setVisible(false); else new PurchaseManage(shopCarID, userName, buyerVO, sum,sumPrice).init();shopCarManageFrame.setVisible(false););/ 給購買數(shù)量文本框添加監(jiān)聽事件buyGoodsNumField.addKeyListener(new KeyListener() public
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《皮膚性病學(xué)濕疹》課件
- 行政后勤財(cái)務(wù)報(bào)銷審核
- 母親節(jié) 營銷新視角
- 體育行業(yè)話務(wù)員工作總結(jié)
- 餐飲行業(yè)服務(wù)員的服務(wù)宗旨
- 體育場館的衛(wèi)生清潔
- 2023-2024年企業(yè)主要負(fù)責(zé)人安全培訓(xùn)考試題考題
- 2023-2024安全培訓(xùn)考試題及答案(新)
- 函授??飘厴I(yè)自我鑒定15篇
- 課題研究報(bào)告
- 建筑施工安全生產(chǎn)隱患識(shí)別圖集(鋼結(jié)構(gòu)工程)
- 城市道路與開放空間低影響開發(fā)雨水設(shè)施
- 電氣二次危險(xiǎn)點(diǎn)分析及控制措施
- 初中必背古詩文138首
- 藍(lán)色國家科學(xué)基金4.3杰青優(yōu)青人才科學(xué)基金答辯模板
- DLT 5434-2021 電力建設(shè)工程監(jiān)理規(guī)范表格
- 2024年房屋交接確認(rèn)書
- 拓展低空經(jīng)濟(jì)應(yīng)用場景實(shí)施方案
- 北京市東城區(qū)2023-2024學(xué)年八年級(jí)上學(xué)期期末生物試題【含答案解析】
- 天皰瘡臨床分期與治療方案研究
- 開放系統(tǒng)10861《理工英語(4)》期末機(jī)考真題及答案(第102套)
評(píng)論
0/150
提交評(píng)論