超市收銀系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)說(shuō)明書(shū)_第1頁(yè)
超市收銀系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)說(shuō)明書(shū)_第2頁(yè)
超市收銀系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)說(shuō)明書(shū)_第3頁(yè)
超市收銀系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)說(shuō)明書(shū)_第4頁(yè)
超市收銀系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)說(shuō)明書(shū)_第5頁(yè)
已閱讀5頁(yè),還剩38頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

畢業(yè)設(shè)計(jì)說(shuō)明書(shū)題目:超市收銀系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)產(chǎn)品設(shè)計(jì)工藝設(shè)計(jì)方案設(shè)計(jì)類型:學(xué)生姓名:學(xué)號(hào):_________________學(xué)院:軟件學(xué)院專業(yè):軟件技術(shù)(軟件開(kāi)發(fā)方向)班級(jí):學(xué)校指導(dǎo)教師:企業(yè)指導(dǎo)教師:2016年05月03日目錄TOC\o"1-3"\u1.緒論 11.1項(xiàng)目開(kāi)發(fā)主要技術(shù)java介紹 緒論雖然在當(dāng)今的21世紀(jì),各種商場(chǎng)的收銀系統(tǒng)都很齊全,但是不免會(huì)有些許的不足,比如傳統(tǒng)的按單結(jié)算,但是我想開(kāi)發(fā)一款既能收銀服務(wù),又能管理超市的各項(xiàng)業(yè)務(wù),比如銷售模塊,庫(kù)存模塊,商品模塊,進(jìn)退貨模塊等,這樣一來(lái)就比傳統(tǒng)的收銀系統(tǒng)在功能上和經(jīng)濟(jì)上更加方便快捷,因?yàn)楝F(xiàn)在市場(chǎng)上的競(jìng)爭(zhēng)與日俱增,不僅僅是軟件這方面的競(jìng)爭(zhēng)了,更是各行各業(yè)的事情,一款簡(jiǎn)單方便的收銀系統(tǒng)肯定是必須的,自此我選擇了超市收銀這個(gè)系統(tǒng),以我最大的努力設(shè)計(jì)出獨(dú)具一格且富有經(jīng)濟(jì)性的軟件,節(jié)省人力物力!僅靠計(jì)算機(jī)輕松實(shí)現(xiàn)收銀與管理,不管是效率還是速度都遠(yuǎn)遠(yuǎn)超過(guò)人工!尤其是本系統(tǒng)的后臺(tái)管理,可謂是萬(wàn)事俱備。本系統(tǒng)采用了eclipse開(kāi)發(fā)java項(xiàng)目,Oracle作為數(shù)據(jù)庫(kù)的開(kāi)發(fā)軟件,取名為emp,利用jdbc技術(shù)進(jìn)行連接用來(lái)保存各種數(shù)據(jù),商品管理模塊實(shí)現(xiàn)了添加商品以及進(jìn)出貨管理,用戶管理實(shí)現(xiàn)了用戶信息添加比如收銀員、管理員、會(huì)員、顧客等和用戶信息查詢,庫(kù)存查詢模塊實(shí)現(xiàn)了快速瀏覽查詢和較為詳細(xì)的查詢,信息查詢模塊實(shí)現(xiàn)了根據(jù)商品編號(hào)和條形碼來(lái)查詢商品的信息,銷售管理功能模塊實(shí)現(xiàn)了可以查詢商品的銷售的相關(guān)信息,可以顯示已經(jīng)銷售掉的商品的名稱、商品編碼、銷售數(shù)量、銷售金額、銷售日期以及金額??偠灾@款超市收銀系統(tǒng)的開(kāi)發(fā)對(duì)我對(duì)企業(yè)一定有很大的幫助。1.1項(xiàng)目開(kāi)發(fā)主要技術(shù)java介紹Java是由SunMicrosystems公司于1995年5月推出的Java面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言和Java平臺(tái)的總稱。由JamesGosling和同事們共同研發(fā),并在1995年正式推出。JAVA語(yǔ)言的主要特征有以下幾點(diǎn):1.Java語(yǔ)言是簡(jiǎn)單的:Java語(yǔ)言的語(yǔ)法與C語(yǔ)言和C++語(yǔ)言很接近,使得大多數(shù)程序員很容易學(xué)習(xí)和使用。另一方面,Java丟棄了C++中很少使用的、很難理解的、令人迷惑的那些特性,如操作符重載、多繼承、自動(dòng)的強(qiáng)制類型轉(zhuǎn)換。特別地,Java語(yǔ)言不使用指針,而是引用。并提供了自動(dòng)的廢料收集,使得程序員不必為內(nèi)存管理而擔(dān)憂。2.Java語(yǔ)言是面向?qū)ο蟮模篔ava語(yǔ)言提供類、接口和繼承等原語(yǔ),為了簡(jiǎn)單起見(jiàn),只支持類之間的單繼承,但支持接口之間的多繼承,并支持類與接口之間的實(shí)現(xiàn)機(jī)制(關(guān)鍵字為implements)。Java語(yǔ)言全面支持動(dòng)態(tài)綁定,而C++語(yǔ)言只對(duì)虛函數(shù)使用動(dòng)態(tài)綁定??傊?,Java語(yǔ)言是一個(gè)純的面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言。3.Java語(yǔ)言是分布式的:Java語(yǔ)言支持Internet應(yīng)用的開(kāi)發(fā),在基本的Java應(yīng)用編程接口中有一個(gè)網(wǎng)絡(luò)應(yīng)用編程接口(javanet),它提供了用于網(wǎng)絡(luò)應(yīng)用編程的類庫(kù),包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(遠(yuǎn)程方法激活)機(jī)制也是開(kāi)發(fā)分布式應(yīng)用的重要手段。4.Java語(yǔ)言是健壯的:Java的強(qiáng)類型機(jī)制、異常處理、垃圾的自動(dòng)收集等是Java程序健壯性的重要保證。對(duì)指針的丟棄是Java的明智選擇。Java的安全檢查機(jī)制使得Java更具健壯性。5.Java語(yǔ)言是安全的:Java通常被用在網(wǎng)絡(luò)環(huán)境中,為此,Java提供了一個(gè)安全機(jī)制以防惡意代碼的攻擊。除了Java語(yǔ)言具有的許多安全特性以外,Java對(duì)通過(guò)網(wǎng)絡(luò)下載的類具有一個(gè)安全防范機(jī)制(類ClassLoader),如分配不同的名字空間以防替代本地的同名類、字節(jié)代碼檢查,并提供安全管理機(jī)制(類SecurityManager)讓Java應(yīng)用設(shè)置安全哨兵。6.Java語(yǔ)言是體系結(jié)構(gòu)中立的:Java程序(后綴為java的文件)在Java平臺(tái)上被編譯為體系結(jié)構(gòu)中立的字節(jié)碼格式(后綴為class的文件),然后可以在實(shí)現(xiàn)這個(gè)Java平臺(tái)的任何系統(tǒng)中運(yùn)行。這種途徑適合于異構(gòu)的網(wǎng)絡(luò)環(huán)境和軟件的分發(fā)。7.Java語(yǔ)言是可移植的:這種可移植性來(lái)源于體系結(jié)構(gòu)中立性,另外,Java還嚴(yán)格規(guī)定了各個(gè)基本數(shù)據(jù)類型的長(zhǎng)度。Java系統(tǒng)本身也具有很強(qiáng)的可移植性,Java編譯器是用Java實(shí)現(xiàn)的,Java的運(yùn)行環(huán)境是用ANSIC實(shí)現(xiàn)的。8.Java語(yǔ)言是解釋型的:如前所述,Java程序在Java平臺(tái)上被編譯為字節(jié)碼格式,然后可以在實(shí)現(xiàn)這個(gè)Java平臺(tái)的任何系統(tǒng)中運(yùn)行。在運(yùn)行時(shí),Java平臺(tái)中的Java解釋器對(duì)這些字節(jié)碼進(jìn)行解釋執(zhí)行,執(zhí)行過(guò)程中需要的類在聯(lián)接階段被載入到運(yùn)行環(huán)境中。9.Java是高性能的:與那些解釋型的高級(jí)腳本語(yǔ)言相比,Java的確是高性能的。事實(shí)上,Java的運(yùn)行速度隨著JIT(Just.In.Time)編譯器技術(shù)的發(fā)展越來(lái)越接近于C++。10.Java語(yǔ)言是多線程的:在Java語(yǔ)言中,線程是一種特殊的對(duì)象,它必須由Thread類或其子(孫)類來(lái)創(chuàng)建。通常有兩種方法來(lái)創(chuàng)建線程:其一,使用型構(gòu)為T(mén)hread(Runnable)的構(gòu)造子將一個(gè)實(shí)現(xiàn)了Runnable接口的對(duì)象包裝成一個(gè)線程,其二,從Thread類派生出子類并重寫(xiě)run方法,使用該子類創(chuàng)建的對(duì)象即為線程。值得注意的是Thread類已經(jīng)實(shí)現(xiàn)了Runnable接口,因此,任何一個(gè)線程均有它的run方法,而run方法中包含了線程所要運(yùn)行的代碼。線程的活動(dòng)由一組方法來(lái)控制。Java語(yǔ)言支持多個(gè)線程的同時(shí)執(zhí)行,并提供多線程之間的同步機(jī)制(關(guān)鍵字為synchronized)。11.Java語(yǔ)言是動(dòng)態(tài)的:Java語(yǔ)言的設(shè)計(jì)目標(biāo)之一是適應(yīng)于動(dòng)態(tài)變化的環(huán)境。Java程序需要的類能夠動(dòng)態(tài)地被載入到運(yùn)行環(huán)境,也可以通過(guò)網(wǎng)絡(luò)來(lái)載入所需要的類。這也有利于軟件的升級(jí)。另外,Java中的類有一個(gè)運(yùn)行時(shí)刻的表示,能進(jìn)行運(yùn)行時(shí)刻的類型檢查。關(guān)于數(shù)據(jù)庫(kù)連接,java中鏈接數(shù)據(jù)庫(kù)的技術(shù)是jdbc,java程序通過(guò)jdbc驅(qū)動(dòng)程序與數(shù)據(jù)庫(kù)相連,執(zhí)行DDL、DML、tcl、等操作。目前大多數(shù)數(shù)據(jù)庫(kù)系統(tǒng)都帶有jdbc驅(qū)動(dòng)程序,所以java能夠訪問(wèn)Oracle、MYSQL、等等數(shù)據(jù)庫(kù)。1.2項(xiàng)目開(kāi)發(fā)主要技術(shù)Oracle簡(jiǎn)介ORACLE數(shù)據(jù)庫(kù)系統(tǒng)是美國(guó)ORACLE公司(甲骨文)提供的以分布式數(shù)據(jù)庫(kù)為核心的一組軟件產(chǎn)品,是目前最流行的客戶/服務(wù)器(CLIENT/SERVER)或B/S體系結(jié)構(gòu)的數(shù)據(jù)庫(kù)之一。比如SilverStream就是基于數(shù)據(jù)庫(kù)的一種中間件。ORACLE數(shù)據(jù)庫(kù)是目前世界上使用最為廣泛的數(shù)據(jù)庫(kù)管理系統(tǒng),作為一個(gè)通用的數(shù)據(jù)庫(kù)系統(tǒng),它具有完整的數(shù)據(jù)管理功能;作為一個(gè)關(guān)系數(shù)據(jù)庫(kù),它是一個(gè)完備關(guān)系的產(chǎn)品;作為分布式數(shù)據(jù)庫(kù)它實(shí)現(xiàn)了分布式處理功能。但它的所有知識(shí),只要在一種機(jī)型上學(xué)習(xí)了ORACLE知識(shí),便能在各種類型的機(jī)器上使用它。它的特點(diǎn)有以下幾點(diǎn):1、完整的數(shù)據(jù)管理功能:1)數(shù)據(jù)的大量性2)數(shù)據(jù)的保存的持久性3)數(shù)據(jù)的共享性4)數(shù)據(jù)的可靠性2、完備關(guān)系的產(chǎn)品:1)信息準(zhǔn)則:關(guān)系型DBMS的所有信息都應(yīng)在邏輯上用一中方法,即表中的值顯式地表示;2)保證訪問(wèn)的準(zhǔn)則3)視圖更新準(zhǔn)則:只要形成視圖的表中的數(shù)據(jù)變化了,相應(yīng)的視圖中的數(shù)據(jù)同時(shí)變化4)數(shù)據(jù)物理性和邏輯性獨(dú)立準(zhǔn)則關(guān)于Oracle的管理:創(chuàng)建數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)的創(chuàng)建就是準(zhǔn)備若干個(gè)操作系統(tǒng)文件,使其能夠作為一個(gè)ORACLE數(shù)據(jù)庫(kù)運(yùn)轉(zhuǎn),用于數(shù)據(jù)存儲(chǔ)。然而,對(duì)于一個(gè)數(shù)據(jù)庫(kù)系統(tǒng)來(lái)說(shuō),無(wú)論其數(shù)據(jù)庫(kù)由多少個(gè)數(shù)據(jù)庫(kù)文件組成或被多少個(gè)例程所存取,數(shù)據(jù)庫(kù)需要被創(chuàng)建一次。針對(duì)一個(gè)現(xiàn)存的數(shù)據(jù)庫(kù)進(jìn)行創(chuàng)建工作,將毀壞先前數(shù)據(jù)庫(kù)文件中已經(jīng)存在的任何數(shù)據(jù)。修改數(shù)據(jù)庫(kù)配置,ORACLE數(shù)據(jù)庫(kù)能夠處于三種不同的狀態(tài),決定了其可用性:①卸載狀態(tài)數(shù)據(jù)庫(kù)當(dāng)前不與任何例程相聯(lián)系,DBA用戶和普通用戶均不能存取。②裝載且關(guān)閉狀態(tài)數(shù)據(jù)庫(kù)當(dāng)前已與一個(gè)例程相聯(lián)系,僅DBA用戶能夠存?。ㄟM(jìn)行系統(tǒng)維護(hù))。③裝載且打開(kāi)狀態(tài)數(shù)據(jù)庫(kù)當(dāng)前能夠用于正常的數(shù)據(jù)庫(kù)操作,DBA用戶和普通用戶均能夠存取。1.3項(xiàng)目開(kāi)發(fā)主要技術(shù)Visio2010簡(jiǎn)介MicrosoftVisio使用各種預(yù)繪制的形狀、示例繪圖以及用于IT、業(yè)務(wù)、流程管理和更多方面的模板集快速開(kāi)始圖表繪制。對(duì)于任何類型的繪圖需要,Visio都可幫助您快速開(kāi)始工作。在一個(gè)位置即可找到完成繪圖任務(wù)所需的任何信息。使用功能區(qū)選項(xiàng)卡中的邏輯功能組合(增強(qiáng)的形狀窗口)可輕松訪問(wèn)形狀和模具,全新的狀態(tài)欄可幫助您在圖表之間和圖表中更高效地移動(dòng),這樣,創(chuàng)建圖表的每個(gè)步驟都更直觀。使用諸如快速形狀浮動(dòng)工具欄、增強(qiáng)的動(dòng)態(tài)網(wǎng)格、自動(dòng)布局調(diào)整和自動(dòng)調(diào)整頁(yè)面大小等功能添加和對(duì)齊形狀。使用子流程和容器可直觀且合理地組合相關(guān)形狀,從而簡(jiǎn)化了大型復(fù)雜的圖表。子流程是單獨(dú)頁(yè)上的小型圖表,它鏈接到更大圖表中的子流程形狀,從而將圖表中的復(fù)雜流程分割為更易管理的部分。容器可幫助您組織不同的形狀集并說(shuō)明它們?cè)趫D表中的相互關(guān)系。使用新穎的形狀和可視效果、豐富的主題庫(kù)和實(shí)時(shí)預(yù)覽可快速將您的圖表裝扮得外觀專業(yè)且引入注目。針對(duì)業(yè)務(wù)規(guī)則和邏輯核對(duì)圖表以確保圖表中的準(zhǔn)確性和一致性。只需一次單擊,即可驗(yàn)證圖表以確保其結(jié)構(gòu)合理且適當(dāng)。使用包含SharePoint工作流規(guī)則和邏輯的全新高級(jí)模板,以及在MicrosoftSharePointDesigner2010和Visio2010之間導(dǎo)出和導(dǎo)入工作流的功能,可以比以往更輕松地創(chuàng)建和監(jiān)視SharePoint工作流。需求分析需求分析是指理解用戶需求,就軟件功能與客戶達(dá)成一致,需求分析的任務(wù)就是解決做什么的問(wèn)題,就是要全面地理解用戶的各項(xiàng)要求,并準(zhǔn)確地表達(dá)所接受的用戶需求,具有決策性、方向性、策略性的作業(yè)。2.1超市收銀系統(tǒng)設(shè)計(jì)要求和目標(biāo)超市收銀系統(tǒng)主要還是以客戶為中心,根據(jù)用戶的需求來(lái)定義各種功能,將信息技術(shù)應(yīng)用到普通超市進(jìn)行管理,通過(guò)點(diǎn)擊按鈕操作各項(xiàng)功能。為了達(dá)到預(yù)期設(shè)定應(yīng)用目標(biāo),最基本的要求是系統(tǒng)能夠運(yùn)行起來(lái),實(shí)現(xiàn)集成化應(yīng)用,建立規(guī)范的超市收銀系統(tǒng),堅(jiān)決以提高收益和客戶利益為主要原則!銷售管理、庫(kù)存查詢、用戶管理、信息查詢、商品管理等各項(xiàng)功能的實(shí)現(xiàn)。以簡(jiǎn)便操作高效益為主體!理員可以隨時(shí)查詢信息,這個(gè)系統(tǒng)主要功能模塊為銷售管理。內(nèi)部各功能模塊緊密相連,都是相互協(xié)作運(yùn)行的,讓客戶感受到超市收銀的管理嚴(yán)謹(jǐn)系統(tǒng)齊全,讓企業(yè)管理者容易管理,并且易于操作,簡(jiǎn)單明了。2.2超市收銀系統(tǒng)可行性分析2.2.1經(jīng)濟(jì)可行性分析經(jīng)濟(jì)可行性對(duì)于企業(yè)來(lái)說(shuō),就是能否應(yīng)用得當(dāng),能否有實(shí)際的經(jīng)濟(jì)意義,能不能給企業(yè)帶來(lái)利益自己節(jié)省開(kāi)支等,這次設(shè)計(jì)的超市收銀系統(tǒng)能夠很好地將實(shí)際情況與程序緊密結(jié)合起來(lái),特別有利于提高企業(yè)的效率,增加收益,在經(jīng)營(yíng)方面,該系統(tǒng)大大提高了效益,避免了客戶排隊(duì)長(zhǎng)時(shí)間等待的情況,同時(shí)增加了經(jīng)濟(jì)收入,因?yàn)橛袝r(shí)客流量一多就容易流失客戶,但是有了這個(gè)系統(tǒng)就方便了許多,更帶來(lái)了方便快捷,省人省力!經(jīng)濟(jì)上完全可行。2.2.2操作可行性分析由于還是學(xué)生,設(shè)計(jì)的系統(tǒng)肯定不會(huì)很難操作,肯定是越簡(jiǎn)單方便越好,可以在各種windows系統(tǒng)運(yùn)行,界面友好,使用輕松,操作簡(jiǎn)單易懂,格式簡(jiǎn)單明了,非常適合各種等級(jí)的收銀員使用。2.2.3技術(shù)可行性分析技術(shù)可行性主要是指開(kāi)發(fā)人員能否順利完成系統(tǒng)開(kāi)發(fā),水平技術(shù)能否達(dá)標(biāo)等,開(kāi)發(fā)設(shè)備是否可以支持程序開(kāi)發(fā),當(dāng)然,現(xiàn)在的計(jì)算機(jī)硬件不斷更新增強(qiáng),有足夠的功能支持開(kāi)發(fā),本系統(tǒng)在技術(shù)上也是完全可行的。2.3業(yè)務(wù)流程需求分析超市收銀系統(tǒng)流程圖如下。管理員的流程圖:如圖2.1所示。銷售管理銷售管理銷售管理管理員銷售管理管理員增刪改查后臺(tái)頁(yè)面登錄成功增刪改查后臺(tái)頁(yè)面登錄銷售管理銷售管理銷售管理失敗銷售管理銷售管理銷售管理圖2.1管理員操作流程圖收銀員的流程圖:如圖2.2所示。管理員結(jié)算管理員結(jié)算輸入商品編號(hào)輸入商品編號(hào)找零找零圖2.2收銀員的流程圖這次的系統(tǒng)流程運(yùn)作也很簡(jiǎn)單,首先打開(kāi)項(xiàng)目運(yùn)行進(jìn)入到主界面,在主界面收銀員可以進(jìn)行收銀,刪除取消等普通操作,進(jìn)行銷售結(jié)算和添刪改,管理員身份可以經(jīng)過(guò)驗(yàn)證轉(zhuǎn)到后臺(tái)進(jìn)行后臺(tái)管理,因?yàn)榭紤]到安全問(wèn)題,除了收銀以及簡(jiǎn)單的刪除和銷售功能所有的功能都先要經(jīng)過(guò)管理員驗(yàn)證才可以使用,這樣保證了企業(yè)信息的安全性。3.概要設(shè)計(jì)3.1超市收銀系統(tǒng)的設(shè)計(jì)需求邏輯結(jié)構(gòu)收銀以及簡(jiǎn)單的刪除取消等操作是第一要實(shí)現(xiàn)的,再者要進(jìn)行商品添加,用戶(收銀員)的添加和會(huì)員的添加,還有進(jìn)貨添加。收銀員可以通過(guò)掃碼以及輸入商品編號(hào)的方法進(jìn)行結(jié)算賬單,對(duì)于員工的管理設(shè)計(jì),這里面設(shè)置了用戶管理、信息查詢模塊,使員工和管理員可以快速了解到需要查詢的內(nèi)容,處理相關(guān)數(shù)據(jù)信息等。下面是系統(tǒng)功能的總體瀏覽,本系統(tǒng)主要分為五個(gè)模塊:銷售管理模塊、庫(kù)存查詢模塊、用戶管理模塊、信息查詢模塊、商品管理模塊。如圖3.1所示。超市收銀系統(tǒng)超市收銀系統(tǒng)銷售收銀銷售收銀用戶管理銷售管理庫(kù)存查詢信息查詢商品管理用戶管理銷售管理庫(kù)存查詢信息查詢商品管理輸入輸入結(jié)算結(jié)算圖3.1超市收銀系統(tǒng)整體結(jié)構(gòu)3.2超市收銀系統(tǒng)的設(shè)計(jì)系統(tǒng)功能結(jié)構(gòu)本系統(tǒng)功能模塊設(shè)計(jì)包括五個(gè)部分:銷售管理、庫(kù)存查詢、用戶管理、信息查詢、商品管理。銷售管理模塊功能描述:銷售管理功能可以查詢商品的銷售信息,并以列表的形式輸出銷售商品的商品名稱、商品編碼、銷售數(shù)量、銷售金額、銷售日期以及金額。如圖3.2所示。銷售管理查詢銷售管理輸出金額銷售日期銷售金額銷售數(shù)量商品編碼商品名稱用戶管理金額銷售日期銷售金額銷售數(shù)量商品編碼商品名稱用戶管理圖3.2銷售管理模塊功能圖庫(kù)存查詢模塊功能描述:庫(kù)存查詢功能可以分為快速瀏覽查詢和詳細(xì)查詢,其中快速瀏覽查詢就是一次性顯示所有的信息,詳細(xì)查詢就是查詢商品編號(hào)顯示的信息。如圖3.3所示。庫(kù)存查詢庫(kù)存查詢?cè)敿?xì)查詢?yōu)g覽查詢?cè)敿?xì)查詢?yōu)g覽查詢商品編號(hào)商品庫(kù)存信息商品信息返回商品庫(kù)存信息商品信息圖3.3庫(kù)存查詢功能模塊圖用戶管理用戶管理模塊功能描述:用戶管理查詢功能可以查詢用戶賬戶信息。如圖3.4所示。用戶管理商品庫(kù)存信息商品庫(kù)存信息通過(guò)管理員商品庫(kù)存信息商品庫(kù)存信息圖3.4用戶管理功能模塊圖信息查詢信息查詢功能模塊描述:信息查詢功能可以根據(jù)商品的名稱編號(hào)或者條形碼來(lái)查詢商品的相關(guān)信息。如圖3.5所示。信息查詢編號(hào)、條形碼查詢商品信息名稱查詢商品信息圖3.5信息查詢圖商品管理功能模塊描述:商品管理功能可以進(jìn)行出入庫(kù)的管理以及添加商品的功能。如圖3.6所示。商品管理商品管理通過(guò)管理員出入庫(kù)出入庫(kù)添加商品進(jìn)出貨添加商品進(jìn)出貨圖3.6商品管理功能模塊圖4.數(shù)據(jù)庫(kù)設(shè)計(jì)4.1數(shù)據(jù)庫(kù)設(shè)計(jì)原則一個(gè)項(xiàng)目的數(shù)據(jù)庫(kù)在整個(gè)程序中起著很大的作用,數(shù)據(jù)庫(kù)可以儲(chǔ)存項(xiàng)目所有的信息,進(jìn)行增刪改查,在這個(gè)系統(tǒng)中占著最主要的位置。數(shù)據(jù)庫(kù)的設(shè)計(jì)直接與程序掛鉤,會(huì)影響整個(gè)程序,一個(gè)好的數(shù)據(jù)庫(kù),可以提高數(shù)據(jù)信息的存儲(chǔ)效率,可以保證數(shù)據(jù)的安全性與全面性。再者,只要數(shù)據(jù)庫(kù)設(shè)計(jì)好了,程序也就實(shí)現(xiàn)了一大半了。這次的數(shù)據(jù)庫(kù)名稱我用orcl作為后臺(tái)數(shù)據(jù)庫(kù)。4.2數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫(kù)的原則是共享性、獨(dú)立性、完整性、靈活性、安全與保密性。本系統(tǒng)采用了orcl作為后臺(tái)數(shù)據(jù)庫(kù),共分為九個(gè)表,分別是:用戶表usermanage用戶實(shí)體有10個(gè)字段,分別是:卡號(hào),持卡人,證件號(hào),級(jí)別,折扣率,類型,期限,積分,開(kāi)發(fā)日期,備注。實(shí)體如圖4.1所示。CardDateUserGradePasswordCardDateUserGradePasswordIDcardtermIDcardtermUserNameintegralUserNameintegralCardIDagioCardIDagioremark用戶表usermanageremark用戶表usermanage圖4.1用戶實(shí)體圖2.進(jìn)退貨表backsale本系統(tǒng)的進(jìn)退貨實(shí)體分為九個(gè)字段,分別為:退貨品編號(hào),產(chǎn)品編號(hào),產(chǎn)品名稱,序號(hào),價(jià)格,進(jìn)貨日期,超市名稱,理由。實(shí)體如圖4.2所示。PriceBNumberPriceBNumberJtDateJtDateProductNameSuperMarketProductNameSuperMarketProduct_IDNextBackProduct_IDNextBackBackSale_IDreasonBackSale_IDreason進(jìn)退貨表backsale進(jìn)退貨表backsale圖4.2進(jìn)退貨實(shí)體圖3.商品表merchandise本系統(tǒng)的商品實(shí)體分為九個(gè)字段,分別為:卡號(hào),持卡人,證件號(hào),級(jí)別,折扣率,類型,期限,積分,開(kāi)發(fā)日期,備注。實(shí)體如圖4.3所示。RetailPriceRetailPriceMerchandiseNameMerchandiseNameMerchandiseSpecUnitsSortNumberMerchandiseSpecUnitsSortNumberPurchasePriceTreatyCodePurchasePriceTreatyCodeMerchandiseNumberCheckTermMerchandiseNumberCheckTermRemarkRemark商品表merchandiseSequenceNumber商品表merchandiseSequenceNumber圖4.3商品實(shí)體圖4.付款表paymentlist本系統(tǒng)的付款實(shí)體分為八個(gè)字段,分別為:商品編號(hào),商品名稱,規(guī)格,單位,數(shù)量,售價(jià),折扣,金額。實(shí)體如圖4.4所示。PriceBNumberPriceBNumberJtDateJtDateSuperMarketSuperMarketProductNameProductNameNextBackNextBackreasonBackSale_IDreasonBackSale_ID付款表paymentlist付款表paymentlist圖4.4付款實(shí)體圖5.銷售表sale本系統(tǒng)的銷售實(shí)體分為八個(gè)字段,分別為:商品編碼,商品名稱,銷售數(shù)量,銷售金額,收效日期,金額小計(jì)。實(shí)體如圖4.5所示。SNumberSaleDateSNumberSaleDatePricePriceDiscountDiscountProductIDProductIDVIP_IDVIP_IDProductNameSale_IDProductNameSale_ID銷售表sale銷售表sale圖4.5銷售實(shí)體圖6.商品類別表sort本系統(tǒng)的商品類別實(shí)體分為三個(gè)字段,分別為:類別序號(hào),類別編號(hào),類別名稱。實(shí)體如圖4.6所示。SortNumberSortNumberSortIDSortIDSortNameSortName商品類別表sort商品類別表sort圖4.6商品類別實(shí)體圖7.采購(gòu)表stock本系統(tǒng)的采購(gòu)實(shí)體分為九個(gè)字段,分別為:編號(hào),商品編號(hào),商品名稱,商品部門(mén),商品序號(hào),進(jìn)貨價(jià),實(shí)價(jià),進(jìn)貨日期,備注。實(shí)體如圖4.7所示。overallmoneydataSnumberoverallmoneydataSnumberMerchandiseNumberMerchandiseNumberMerchandiseNameMerchandiseNamedepartmentdepartmentunitpriceIdunitpriceIdremark采購(gòu)表stockremark采購(gòu)表stockpaymentdatepaymentdate圖4.7采購(gòu)實(shí)體圖8.入出庫(kù)表enterstock本系統(tǒng)的入出庫(kù)實(shí)體分為八個(gè)字段,分別為:編號(hào),數(shù)量,進(jìn)貨價(jià),總金額,日期,倉(cāng)庫(kù)號(hào),經(jīng)手人,填單人。實(shí)體如圖4.8所示。dealWithHumanPutDatadealWithHumanPutDataENumberENumberinoutinoutPurchasePricePurchasePricedownNamedownNameStoreHouse_IDMerNumberStoreHouse_IDMerNumber入出庫(kù)表enterstock入出庫(kù)表enterstockEnterStock_IDEnterStock_ID圖4.8入出庫(kù)實(shí)體圖9.庫(kù)存表stockpile本系統(tǒng)的庫(kù)存實(shí)體分為八個(gè)字段,分別為:序號(hào),商品名稱,編號(hào)。實(shí)體如圖4.9所示。MerchandiseNumberMerchandiseNumberIDIDSSnumberSSnumber庫(kù)存表stockpile庫(kù)存表stockpile圖4.9庫(kù)存實(shí)體圖4.3數(shù)據(jù)庫(kù)物理結(jié)構(gòu)設(shè)計(jì)在概念結(jié)構(gòu)之后,物理結(jié)構(gòu)也是同等重要,數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)需要經(jīng)過(guò)周密的思考,考慮到方面詳情,兼顧到各個(gè)方面,肯定不是件簡(jiǎn)單的事情,在這里我分為了九個(gè)表,分別根據(jù)了五大模塊而設(shè)計(jì)的,也考慮到了各個(gè)方面,像用戶表我就列出了十個(gè)字段,是否空值和什么數(shù)據(jù)類型,接下來(lái)介紹每個(gè)表的詳細(xì)情況。用戶表用來(lái)保存用戶的基本信息,如表4.10所示。表4.10用戶基本信息表屬性名稱含義數(shù)據(jù)類型主要屬性說(shuō)明CardId卡號(hào)int主鍵用于儲(chǔ)存用戶卡號(hào)UserName持卡人varchar2(20)notnull用于儲(chǔ)存用戶名字IDcard證件號(hào)varchar2(20)notnull用于儲(chǔ)存用戶證件號(hào)Password級(jí)別varchar2(20)notnull用于儲(chǔ)存用戶級(jí)別CardDate折扣率varchar2(30)notnull用于儲(chǔ)存用戶折扣率UserGrade類型varchar2(16)notnull用于儲(chǔ)存用戶類型term期限Char(10)notnull用于儲(chǔ)存用戶期限integral積分Char(10)notnull用于儲(chǔ)存用戶積分agio開(kāi)發(fā)日期Char(10)notnull用于儲(chǔ)存用戶開(kāi)發(fā)日期remark備注varchar2(200)notnull用于儲(chǔ)存用戶備注2.進(jìn)退貨表用來(lái)保存進(jìn)退貨的基本信息,如表4.11所示。表4.11進(jìn)退貨基本信息表屬性名稱含義數(shù)據(jù)類型主要屬性說(shuō)明BackSale_ID退貨品編號(hào)number主鍵用于儲(chǔ)存進(jìn)退貨編號(hào)Product_ID產(chǎn)品編號(hào)varchar(50)notnull用于儲(chǔ)存編號(hào)ProductName產(chǎn)品名稱varchar2(20)notnull用于儲(chǔ)存名稱BNumber序號(hào)numbernotnull用于儲(chǔ)存序號(hào)Price價(jià)格numbernotnull用于儲(chǔ)存價(jià)格JtDate進(jìn)貨日期varchar2(30)notnull用于儲(chǔ)存進(jìn)貨日期SuperMarket超市名稱varchar2(16)notnull用于儲(chǔ)存超市名稱NextBack理由varchar2(250)notnull用于儲(chǔ)存理由商品表用來(lái)保存商品的基本信息,如表4.12所示。表4.12商品基本信息表屬性名稱含義數(shù)據(jù)類型主要屬性說(shuō)明SequenceNumber商品編碼int主鍵用于儲(chǔ)存商品編碼MerchandiseNumber條形碼varchar2(20)notnull用于儲(chǔ)存商品條形碼TreatyCode類別編號(hào)varchar2(20)notnull用于儲(chǔ)存商品類別編碼SortNumber簡(jiǎn)碼varchar2(20)notnull用于儲(chǔ)存商品簡(jiǎn)碼MerchandiseName商品名稱varchar2(50)notnull用于儲(chǔ)存商品名稱RetailPrice零售價(jià)numbernotnull用于儲(chǔ)存商品零售價(jià)MerchandiseSpec商品規(guī)格varchar2(50)notnull用于儲(chǔ)存商品規(guī)格Units計(jì)量單位varchar2(20)notnull用于儲(chǔ)存商品計(jì)量單位PurchasePrice進(jìn)貨價(jià)numbernotnull用于儲(chǔ)存商品進(jìn)貨價(jià)CheckTerm保質(zhì)期numbernotnull用于儲(chǔ)存商品保質(zhì)期Remark備注varchar2(50)notnull用于儲(chǔ)存商品備注4.付款表用來(lái)保存付款的基本信息,如表4.13所示。表4.13付款基本信息表屬性名稱含義數(shù)據(jù)類型主要屬性說(shuō)明OddNumber商品編號(hào)int主鍵用于儲(chǔ)存商品編號(hào)Victualer商品名稱varchar2(10)notnull用于儲(chǔ)存商品名稱Coin規(guī)格varchar2(10)notnull用于儲(chǔ)存商品規(guī)格PaymentFashion單位varchar2(20)notnull用于儲(chǔ)存商品單位ChequeNumber數(shù)量varchar2(20)notnull用于儲(chǔ)存商品數(shù)量Dates售價(jià)varchar2(26)notnull用于儲(chǔ)存商品售價(jià)DealWithMan折扣varchar2(10)notnull用于儲(chǔ)存商品折扣MakeLiseMan金額varchar2(10)notnull用于儲(chǔ)存商品金額5.銷售表用來(lái)保存銷售的基本信息,如表4.14所示。表4.14銷售基本信息表屬性名稱含義數(shù)據(jù)類型主要屬性說(shuō)明Sale_ID商品編碼number主鍵用于儲(chǔ)存商品編碼ProductID產(chǎn)品編號(hào)varchar2(10)notnull用于儲(chǔ)存產(chǎn)品編號(hào)SaleDate銷售日期varchar2(50)notnull用于儲(chǔ)存銷售日期SNumber銷售數(shù)量numbernotnull用于儲(chǔ)存銷售數(shù)量Price銷售金額varchar2(10)notnull用于儲(chǔ)存銷售金額Discount折扣率varchar2(10)notnull用于儲(chǔ)存折扣率VIP_ID會(huì)員卡號(hào)varchar2(10)notnull用于儲(chǔ)存會(huì)員卡號(hào)ProductName商品名稱varchar2(50)notnull用于儲(chǔ)存商品名稱商品類別表用來(lái)保存商品類別的基本信息,如表4.15所示。表4.15商品類別基本信息表屬性名稱含義數(shù)據(jù)類型主要屬性說(shuō)明SortID類別序號(hào)Int(4)主鍵用于儲(chǔ)存類別序號(hào)SortNumber銷售日期varchar2(20)notnull用于儲(chǔ)存類別編號(hào)SortName類別名稱varchar2(20)notnull用于儲(chǔ)存類別名稱采購(gòu)表用來(lái)保存采購(gòu)的基本信息,如表4.16所示。表4.16采購(gòu)基本信息表屬性名稱含義數(shù)據(jù)類型主要屬性說(shuō)明id編號(hào)Int(4)主鍵用于儲(chǔ)存編號(hào)MerchandiseNumber商品編號(hào)varchar2(50)notnull用于儲(chǔ)存商品編號(hào)MerchandiseName商品名稱varchar2(50)notnull用于儲(chǔ)存商品名稱department商品部門(mén)numbernotnull用于儲(chǔ)存商品部門(mén)Snumber商品序號(hào)varchar2(20)notnull用于儲(chǔ)存商品序號(hào)unitprice進(jìn)貨價(jià)varchar2(20)notnull用于儲(chǔ)存進(jìn)貨價(jià)overallmoney實(shí)價(jià)varchar2(20)notnull用于儲(chǔ)存實(shí)價(jià)data商品名稱varchar2(26)notnull用于儲(chǔ)存商品名稱paymentdate進(jìn)貨日期varchar2(10)notnull用于儲(chǔ)存進(jìn)貨日期remark備注varchar2(50)notnull用于儲(chǔ)存?zhèn)渥?.入出庫(kù)表用來(lái)保存入出庫(kù)的基本信息,如表4.17所示。表4.17入出庫(kù)基本信息表屬性名稱含義數(shù)據(jù)類型主要屬性說(shuō)明EnterStock_ID編號(hào)int主鍵用于儲(chǔ)存編號(hào)MerNumber數(shù)量varchar(30)notnull用于儲(chǔ)存數(shù)量ENumber進(jìn)貨價(jià)numbernotnull用于儲(chǔ)存進(jìn)貨價(jià)PurchasePrice總金額numbernotnull用于儲(chǔ)存總金額PutData日期varchar2(30)notnull用于儲(chǔ)存日期StoreHouse_ID倉(cāng)庫(kù)號(hào)varchar2(20)notnull用于儲(chǔ)存?zhèn)}庫(kù)號(hào)dealWithHuman倉(cāng)庫(kù)號(hào)varchar2(20)notnull用于儲(chǔ)存?zhèn)}庫(kù)號(hào)downName填單人varchar2(20)notnull用于儲(chǔ)存填單人9.庫(kù)存庫(kù)表用來(lái)保存庫(kù)存的基本信息,如表4.18所示。表4.18庫(kù)存基本信息表屬性名稱含義數(shù)據(jù)類型主要屬性說(shuō)明ID序號(hào)number主鍵用于儲(chǔ)存序號(hào)MerchandiseNumber商品名稱varchar2(20)notnull用于儲(chǔ)存商品名稱SSnumber編號(hào)numbernotnull用于儲(chǔ)存編號(hào)5.系統(tǒng)實(shí)現(xiàn)5.1主銷售界面設(shè)計(jì)1、系統(tǒng)主界面截圖如下。運(yùn)行軟件進(jìn)入主界面,進(jìn)入銷售模塊,在主界面用戶可以進(jìn)行銷售作業(yè),通過(guò)輸入商品編號(hào)可以拿到折扣率以及價(jià)格,還可以獲得當(dāng)前時(shí)間,并且回車(chē)能夠得到結(jié)算頁(yè)面自動(dòng)算出實(shí)收以及找零即系統(tǒng)自動(dòng)列出所購(gòu)商品的詳細(xì)信息,并自動(dòng)計(jì)算當(dāng)前購(gòu)物車(chē)所有商品的總價(jià),即應(yīng)收,輸入實(shí)收金額自動(dòng)計(jì)算找零,點(diǎn)擊回車(chē)完成交易。如圖5.1所示:圖5.1系統(tǒng)主頁(yè)面主要代碼如下:publicvoidjTextField5_keyReleased(KeyEvente){intt=(int)e.getKeyChar();if(t==10){//如果輸入的是回車(chē)鍵try{Doublegather=newDouble(jTextField5.getText());System.out.println(gather);doublegathering=((int)(gather*100))/100.0;Doubleaccount=newDouble(jTextField3.getText());System.out.println(account);doublegivechange=((int)((gathering.account)*100))100.0;if(givechange<0){JOptionPane.showMessageDialog(this,"輸入的金額不足");}Doublegivechange1=newDouble(givechange);jLabel8.setText(givechange1.toString());}catch(Exceptionex){JOptionPane.showMessageDialog(this,"輸入的金額有誤");}Settle_Dialogsett=newSettle_Dialog();sett.setSize(400,300);sett.setLocation(300,250);sett.setVisible(true);//顯示結(jié)賬界面sett.jTextField1.setText(jTextField3.getText().toString());sett.jTextField2.setText(jTextField5.getText());sett.jTextField3.setText(jLabel8.getText());jTextField6.setEditable(true);//會(huì)員卡號(hào)可編輯jTextField6.setText("");//商品編號(hào)銷售日期商品數(shù)量商品單價(jià)折扣會(huì)員卡號(hào)商品名稱intnum1=0;while(num1<colnames4.size()){//更新數(shù)據(jù)庫(kù)Vectorls=newVector();ls=(Vector)colnames4.get(num1);//ls.get(0).toString();//商品編號(hào)//jLabel11.getText();//時(shí)間Integernumber=newInteger(ls.get(4).toString());//數(shù)量DoublePrice=newDouble(ls.get(5).toString());//單價(jià)//ls.get(6).toString();//折扣//jTextField6.getText();//會(huì)員卡號(hào)//ls.get(1).toString();//商品名稱UpdateData.out_StockPile(number,ls.get(0).toString());Insert_stock.Insert_Sale(ls.get(0).toString(),jLabel11.getText(),number,Price,ls.get(6).toString(),jTextField6.getText(),ls.get(1).toString());num1++;}jTextField1.setText("");jTextField2.setText("1");colnames4.removeAllElements();jTable1=Mytable.maketable(colnames4,colnames);//顯示內(nèi)容jScrollPane1.getViewport().add(jTable1);//把表裝入容器}}付款頁(yè)面:如圖5.2所示:圖5.2付款頁(yè)面截圖代碼如下:privatevoidjbInit()throwsException{panel1.setLayout(null);jTextField1.setFont(newjava.awt.Font("宋體",Font.PLAIN,30));jTextField1.setBounds(newRectangle(213,44,130,42));jTextField2.setFont(newjava.awt.Font("宋體",Font.PLAIN,30));jTextField2.setBounds(newRectangle(213,108,130,42));jTextField3.setFont(newjava.awt.Font("宋體",Font.PLAIN,30));jTextField3.setBounds(newRectangle(213,171,130,42));jLabel1.setFont(newjava.awt.Font("宋體",Font.PLAIN,30));jLabel1.setText("金額累計(jì)");jLabel1.setBounds(newRectangle(41,45,130,42));jLabel2.setFont(newjava.awt.Font("宋體",Font.PLAIN,30));jLabel2.setText("實(shí)收金額");jLabel2.setBounds(newRectangle(41,108,130,42));jLabel3.setFont(newjava.awt.Font("宋體",Font.PLAIN,30));jLabel3.setText("找零金額");jLabel3.setBounds(newRectangle(41,171,130,42));panel1.setBackground(Color.green);getContentPane().add(panel1);panel1.add(jLabel1);panel1.add(jLabel2);panel1.add(jLabel3);panel1.add(jTextField2);panel1.add(jTextField3);panel1.add(jTextField1);}點(diǎn)擊后臺(tái)管理轉(zhuǎn)入后臺(tái)彈出用戶驗(yàn)證窗口。驗(yàn)證成功進(jìn)入后臺(tái)。后臺(tái)管理截圖:如圖5.3所示。圖5.3管理員登錄圖主要代碼如下:publicvoidjButton1_actionPerformed(ActionEvente){Vectoruser=newVector();Stringname=jTextField1.getText();Stringpassword=jPasswordField1.getText();user=Select_Means.Select_User(name,password);if(user.size()!=0){this.setVisible(false);MainFramemainFrame=newMainFrame();mainFrame.setVisible(true);mainFrame.setLocation(50,50);form.setVisible(false);}else{ JOptionPane.showMessageDialog(this,"用戶名或密碼不正確,請(qǐng)重新輸入");}}驗(yàn)證成功后進(jìn)入后臺(tái)管理,后臺(tái)管理包括銷售管理,庫(kù)存查詢,用戶管理,信息查詢,商品管理。點(diǎn)擊相應(yīng)標(biāo)簽進(jìn)入子系統(tǒng)。登錄成功后進(jìn)入此頁(yè)面:如圖5.4所示。圖5.4后臺(tái)管理主界面主要代碼如下:privatevoidjbInit()throwsException{contentPane=(JPanel)getContentPane();contentPane.setLayout(null);setSize(newDimension(930,600));setTitle("趙娟的超市收銀系統(tǒng)");statusBar.setText("");statusBar.setBounds(newRectangle(0,585,800,15));//設(shè)置樹(shù)DefaultMutableTreeNoderoot=newDefaultMutableTreeNode("系統(tǒng)管理");DefaultMutableTreeNodeMan2=newDefaultMutableTreeNode("銷售管理");DefaultMutableTreeNodeMan3=newDefaultMutableTreeNode("庫(kù)存查詢");DefaultMutableTreeNodeMan4=newDefaultMutableTreeNode("用戶管理");DefaultMutableTreeNodeMan5=newDefaultMutableTreeNode("信息查詢");DefaultMutableTreeNodeMan6=newDefaultMutableTreeNode("商品管理");...//初始化樹(shù)jTree1=newJTree(root);jTree1.addTreeSelectionListener(newMainFrame_jTree1_treeSelectionAdapter(this));jMenuFile.setText("文件");jToolBar.setBounds(newRectangle(0,0,800,29));jScrollPane1.setBounds(newRectangle(13,93,152,435));jMenuBar1.add(jMenuFile);jMenuFile.add(jMenuItem1);jMenuBar1.add(jMenu1);jMenuBar1.add(jMenu2);jMenuBar1.add(jMenu3);jMenuBar1.add(jMenu5);jMenuBar1.add(jMenu4);setJMenuBar(jMenuBar1);jToolBar.add(jButton1);jToolBar.add(jButton2);jToolBar.add(jButton3);contentPane.add(jToolBar,null);contentPane.add(statusBar,null);contentPane.add(jScrollPane1);contentPane.add(jScrollPane2);jScrollPane2.getViewport().add(jTable1);jScrollPane1.getViewport().add(jTree1);jMenu3.add(jMenuItem2);jMenu3.add(jMenuItem3);jMenu3.add(jMenuItem15);jMenu4.add(jMenuItem5);jMenu2.add(jMenuItem7);jMenu2.add(jMenuItem9);jMenu2.add(jMenuItem16);jMenu1.add(jMenuItem10);jMenu1.add(jMenuItem11);jMenu5.add(jMenuItem17);jMenu5.add(jMenu7);jMenu7.add(jMenuItem18);jMenu7.add(jMenuItem25);jMenu7.add(jMenuItem19);jMenu7.add(jMenu9);jMenu9.add(jMenuItem8);jMenu9.add(jMenuItem20);jMenu9.add(jMenuItem21);jMenu9.add(jMenuItem22);jMenu9.add(jMenuItem23);jMenu9.add(jMenuItem24);}5.2銷售管理模塊銷售管理有一個(gè)子模塊..銷售統(tǒng)計(jì),銷售統(tǒng)計(jì)可以根據(jù)時(shí)間段或者商品編號(hào)查詢銷售記錄。商品銷售統(tǒng)計(jì)截圖:如圖5.5。圖5.5商品銷售統(tǒng)計(jì)主要代碼如下:publicvoidjButton1_actionPerformed(ActionEvente){Stringstr1=jComboBox1.getSelectedItem().toString()+"."+jComboBox2.getSelectedItem().toString()+"."+jComboBox3.getSelectedItem().toString();Stringstr2=jComboBox4.getSelectedItem().toString()+"."+jComboBox5.getSelectedItem().toString()+"."+jComboBox6.getSelectedItem().toString();Vectorvector=newVector();//用來(lái)接收查詢結(jié)果Vectorvector2=newVector();vector=SelectEarning.findAll(jTextField1.getText());//接收返回的結(jié)果if(vector.size()==0){JOptionPane.showMessageDialog(this,"沒(méi)有商品的銷售信息");}doubleallMoney=0;//用于計(jì)算總金額inti=0;while(i<vector.size()){Vectorvector1=newVector();vector1=(Vector)vector.get(i);System.out.println(vector1.get(4).toString().substring(0,10));System.out.println(str1);System.out.println(SelectEarning.charbj(vector1.get(4).toString().substring(0,10),str1));System.out.println(SelectEarning.charbj(str2,vector1.get(4).toString().substring(0,10)));if(SelectEarning.charbj(vector1.get(4).toString().substring(0,10),str1)&&SelectEarning.charbj(str2,vector1.get(4).toString())){Vectorvector3=newVector();intj=0;while(j<6){vector3.add(vector1.get(j).toString());j++;}Doublemoney=newDouble(vector1.get(5).toString());allMoney+=money;vector2.add(vector3);}i++;}if(vector2.size()==0){JOptionPane.showMessageDialog(this,"沒(méi)有商品的銷售信息");}5.3庫(kù)存查詢模塊可存信息查詢可以查詢當(dāng)前商品的庫(kù)存信息,庫(kù)存查詢分兩個(gè)子模塊,庫(kù)存信息瀏覽和按商品編號(hào)查詢。庫(kù)存信息瀏覽:該模塊可以查詢所有商品庫(kù)存記錄。并將庫(kù)存信息列表輸出。如圖5.6。圖5.6庫(kù)存查詢圖主要代碼如下:publicvoidjTextField1_focusLost(FocusEvente){Vectorselect_merchandise=newVector();Stringnumber=jTextField1.getText();//得到商品編號(hào)if(number.length()==0){return;}select_merchandise=Select_Means.Select_sort2(number);//根據(jù)商品編號(hào)查找相應(yīng)的信息if(select_merchandise.size()==0){JOptionPane.showMessageDialog(this,"無(wú)此商品");}inti=0;while(i<select_merchandise.size()){Vectorselect=newVector();select=(Vector)select_merchandise.get(i);jTextField2.setText(select.get(3).toString());jTextField5.setText(select.get(4).toString());i++;try{Integernumber1=newInteger(jTextField4.getText());Doublenumber2=newDouble(jTextField5.getText());number2=number2*number1;Doublenumber3=newDouble(number2);jTextField6.setText(number3.toString());}catch(Exceptionex){JOptionPane.showMessageDialog(this,"數(shù)量框中輸入的不是數(shù)字","錯(cuò)誤",JOptionPane.ERROR_MESSAGE);}}}2、按商品編號(hào)查詢:通過(guò)輸入商品編號(hào)指定查詢目標(biāo),對(duì)單個(gè)商品信息進(jìn)行查詢,并輸出該商品信息。如圖5.7。圖5.7商品編號(hào)查詢圖主要代碼如下:publicstaticVectorSelect_sort2(Stringnumber){//按商品編號(hào)查詢Connectionconn=null;PreparedStatementpmst=null;ResultSetrs=null;Vectorvector2=newVector();conn=DBAccess.getConnection();try{pmst=conn.prepareStatement(select2);pmst.setString(1,number);rs=pmst.executeQuery();while(rs.next()){Vectorvector1=newVector();vector1.add(rs.getString(1));vector1.add(rs.getString(2));vector1.add(rs.getString(3));vector1.add(rs.getString(4));vector1.add(rs.getString(5));vector1.add(rs.getString(6));vector1.add(rs.getString(7));vector1.add(rs.getString(8));vector1.add(rs.getString(9));vector1.add(rs.getString(10));vector2.add(vector1);}}catch(Exceptione){e.printStackTrace();}returnvector2;}5.4用戶管理模塊1、添加修改用戶:點(diǎn)擊添加修改用戶彈出用戶驗(yàn)證,若驗(yàn)證為管理員則可以進(jìn)行用戶添加。此功能需要管理員登錄:如圖5.8。圖5.8添加用戶模塊主要代碼如下:publicvoidjButton5_actionPerformed(ActionEvente){StringcardId=jTextField1.getText();//卡號(hào)VectorSelect_vector=newVector();Select_vector=Select_Means.Select_UserManager(cardId);//查詢此卡是否存在if(Select_vector.size()==0){JOptionPane.showMessageDialog(this,"卡號(hào)不存在","提示",JOptionPane.INFORMATION_MESSAGE);return;}jTextField1.setText(Select_vector.get(0).toString());//卡號(hào)jTextField2.setText(Select_vector.get(1).toString());//持卡人jTextField3.setText(Select_vector.get(2).toString());//身份證jTextField4.setText(Select_vector.get(3).toString());//密碼jTextField9.setText(Select_vector.get(4).toString());//開(kāi)卡日期if(Select_vector.get(5).toString().equals("普通會(huì)員")){jComboBox1.removeAllItems();jComboBox1.addItem("普通會(huì)員");jComboBox1.addItem("收銀員");}if(Select_vector.get(5).toString().equals("收銀員")){jComboBox1.removeAllItems();jComboBox1.addItem("收銀員");jComboBox1.addItem("普通會(huì)員");}jTextField7.setText(Select_vector.get(6).toString());//期限jTextField8.setText(Select_vector.get(7).toString());//積分jTextField5.setText(Select_vector.get(8).toString());//折扣jTextArea1.setText(Select_vector.get(9).toString());//備注}個(gè)人賬號(hào)查詢:輸入卡號(hào)查詢個(gè)人賬號(hào)信息。輸入卡號(hào)就能查詢到:如圖5.9。圖5.9個(gè)人賬戶查詢圖5.5信息查詢模塊按商品名稱查詢:輸入商品名稱查詢?cè)撋唐吩敿?xì)信息。如圖5.10。圖5.10商品名稱查詢商品主要代碼如下:publicstaticVectorSelect_sort3(Stringnumber){//按商品名稱查詢Connectionconn=null;PreparedStatementpmst=null;ResultSetrs=null;Vectorvector2=newVector();conn=DBAccess.getConnection();try{pmst=conn.prepareStatement(select3);pmst.setString(1,number);rs=pmst.executeQuery();while(rs.next()){Vectorvector1=newVector();vector1.add(rs.getString(1));vector1.add(rs.getString(2));vector1.add(rs.getString(3));vector1.add(rs.getString(4));vector1.add(rs.getString(5));vector1.add(rs.getString(6));vector1.add(rs.getString(7));vector1.add(rs.getString(8));vector1.add(rs.getString(9));vector1.add(rs.getString(10));vector2.add(vector1);}}catch(Exceptionex){ex.printStackTrace();}returnvector2;}可查詢到數(shù)據(jù):如圖5.11。圖5.11商品數(shù)據(jù)查詢結(jié)果2、按商品編號(hào)查詢:輸入商品編號(hào)查詢?cè)撋唐吩敿?xì)信息。如圖5.12。圖5.12商品編號(hào)查詢商品主要代碼入下:publicstaticVectorSelect_sort2(Stringnumber){//按商品編號(hào)查詢Connectionconn=null;PreparedStatementpmst=null;ResultSetrs=null;Vectorvector2=newVector();conn=DBAccess.getConnection();try{pmst=conn.prepareStatement(select2);pmst.setString(1,number);rs=pmst.executeQuery();while(rs.next()){Vectorvector1=newVector();vector1.add(rs.getString(1));vector1.add(rs.getString(2));vector1.add(rs.getString(3));vector1.add(rs.getString(4));vector

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論