基于單片機(jī)的無線搶答器的設(shè)計(jì)及二維碼的品牌酒防偽溯源系統(tǒng)-銷售環(huán)節(jié)部分_第1頁
基于單片機(jī)的無線搶答器的設(shè)計(jì)及二維碼的品牌酒防偽溯源系統(tǒng)-銷售環(huán)節(jié)部分_第2頁
基于單片機(jī)的無線搶答器的設(shè)計(jì)及二維碼的品牌酒防偽溯源系統(tǒng)-銷售環(huán)節(jié)部分_第3頁
基于單片機(jī)的無線搶答器的設(shè)計(jì)及二維碼的品牌酒防偽溯源系統(tǒng)-銷售環(huán)節(jié)部分_第4頁
基于單片機(jī)的無線搶答器的設(shè)計(jì)及二維碼的品牌酒防偽溯源系統(tǒng)-銷售環(huán)節(jié)部分_第5頁
已閱讀5頁,還剩104頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

浙江工業(yè)大學(xué)畢業(yè)論文(設(shè)計(jì))題目:基于單片機(jī)的無線搶答器的設(shè)計(jì)學(xué)院名稱:浙江工業(yè)大學(xué)成教學(xué)院學(xué)生姓名:專業(yè)班級:電氣自動(dòng)化技術(shù)完成時(shí)間: 浙江工業(yè)大學(xué)夜大、函授畢業(yè)設(shè)計(jì)(論文)任務(wù)書專業(yè)電氣自動(dòng)化技術(shù)班級學(xué)生姓名一、設(shè)計(jì)(論文)題目:基于單片機(jī)的無線搶答器的設(shè)計(jì)_______________________________________________________________________________二、原始資料:由指導(dǎo)教師提供或推薦5篇以上相關(guān)文獻(xiàn),推薦與課題相關(guān)的期刊雜志、圖紙數(shù)據(jù)或網(wǎng)上資料等作為學(xué)生參考資料。《單片機(jī)原理與應(yīng)用》《MCS-51系列單片機(jī)實(shí)用接口技術(shù)》《單片機(jī)在控制系統(tǒng)中的應(yīng)用》《51系列單片機(jī)系統(tǒng)設(shè)計(jì)與應(yīng)用技巧》《電子技術(shù)》三、要求:1、學(xué)習(xí)無線遙控知識;2、選擇單片機(jī)作為控制器的核心部件,完成系統(tǒng)的硬件設(shè)計(jì)和單片機(jī)控制器的軟件設(shè)計(jì);3、完成實(shí)物的制作;4、完成調(diào)試工作。四、畢業(yè)設(shè)計(jì)(論文)工作內(nèi)容:1.設(shè)計(jì)(論文)說明書(根據(jù)大綱要求)2.設(shè)計(jì)(論文)圖紙___________________________________________________________________________________________________________________________________五、畢業(yè)設(shè)計(jì)(論文)工作期限:任務(wù)書發(fā)給日期:設(shè)計(jì)(論文)工作自教研室(學(xué)科組)主任設(shè)計(jì)(論文)指導(dǎo)教師___________________系主任_________________設(shè)計(jì)(論文)答辯人__________________________________摘要傳統(tǒng)的搶答器都是導(dǎo)線布線,受現(xiàn)場環(huán)境影響很大。本文介紹了一種用51系列單片機(jī)的數(shù)碼顯示無線四路搶答器的電路組成、設(shè)計(jì)思路及功能。該搶答器除具有基本的搶答功能外,還具有計(jì)時(shí)和報(bào)警功能。主持人通過時(shí)間預(yù)設(shè)開關(guān)計(jì)算搶答時(shí)間。系統(tǒng)將完成自動(dòng)倒計(jì)時(shí)。若在規(guī)定的時(shí)間內(nèi)有人搶答,則計(jì)時(shí)將自動(dòng)停止;若在規(guī)定的時(shí)間內(nèi)無人搶答,則系統(tǒng)中的蜂鳴器將發(fā)響,提示主持人本輪搶答無效,實(shí)現(xiàn)報(bào)警功能。關(guān)鍵字:智能搶答器無線編解碼單片機(jī)報(bào)警目錄TOC\o"1-2"\h\z\u前言 頁引言項(xiàng)目說明項(xiàng)目名稱:基于二維碼的品牌酒防偽溯源系統(tǒng)--銷售環(huán)節(jié)部分項(xiàng)目用戶:普通消費(fèi)者、品牌酒廠家項(xiàng)目背景隨著經(jīng)濟(jì)的發(fā)展,市場上存在著假冒偽劣產(chǎn)品和串貨行為,侵犯了消費(fèi)者權(quán)益,也損害了公司利益。為了解決假冒危機(jī),保護(hù)公司利益不受假冒產(chǎn)品的侵害,保障消費(fèi)者的正當(dāng)權(quán)益,公司開始尋找新的解決辦法。二維碼標(biāo)簽成本非常便宜,且信息容量大,因此產(chǎn)生了基于二維碼的品牌酒防偽溯源系統(tǒng)。而隨著社會(huì)的發(fā)展,我們的生活中充斥著各種各樣的信息,而如何對這些信息,這些數(shù)據(jù)進(jìn)行分析處理,提煉出有價(jià)值的信息則顯得越來越重要。在這個(gè)時(shí)候,出現(xiàn)了“大數(shù)據(jù)”技術(shù),大數(shù)據(jù)具有高速性,規(guī)模性,無處不在和多樣性等全新特點(diǎn),需要通過快速獲取,處理,分析和提取有價(jià)值的、海量、多樣化的交易數(shù)據(jù),交互數(shù)據(jù)為基礎(chǔ),針對企業(yè)的運(yùn)作模式提出針對性的方案。大數(shù)據(jù)具有輔助決策的作用,利用大數(shù)據(jù),我們可以總結(jié)經(jīng)驗(yàn),發(fā)現(xiàn)規(guī)律,預(yù)測趨勢,這對企業(yè)的發(fā)展具有戰(zhàn)略性的意義。對于品牌酒而言,我們可以運(yùn)用大數(shù)據(jù)對假酒的掃描地進(jìn)行統(tǒng)計(jì),假酒特別多的地方可以借助公安機(jī)關(guān)進(jìn)行有方向的盤查。并憑借從假酒掃描端接收到的地理位置進(jìn)行統(tǒng)計(jì),形成一套完整的假酒溯源的功能。最終達(dá)到消除假酒的目的,有效的保證企業(yè)的利益。開發(fā)意義基于二維碼的品牌酒防偽溯源系統(tǒng)--銷售環(huán)節(jié)部分是繼生產(chǎn)環(huán)節(jié)部分之后的,可以監(jiān)控產(chǎn)品的銷售、串貨等信息,使用戶可以通過掃描二維碼查看酒的銷售情況,了解串貨、假酒分布等情況,同時(shí)也可以讓消費(fèi)者驗(yàn)證酒的真?zhèn)?,增加消費(fèi)者的信任,同時(shí)也為公司的決策提供數(shù)據(jù)支持??尚行苑治黾夹g(shù)可行性分析本系統(tǒng)采用andoid-async-http作為客戶端的開發(fā)框架,采用Java語言進(jìn)行開發(fā)。andoid-async-http是一種開源框架,可以輕松地獲取網(wǎng)絡(luò)數(shù)據(jù)或者向服務(wù)器發(fā)送數(shù)據(jù),并且它是異步框架,在底層使用線程池處理并發(fā)請求,效率很高,使用又特別簡單。經(jīng)濟(jì)性與實(shí)用性分析本項(xiàng)目的市場前景十分光明,因?yàn)椴捎枚S碼作為防偽標(biāo)簽與傳統(tǒng)包裝相比具有顯著的優(yōu)點(diǎn),不僅包含的信息量大,價(jià)格便宜,且實(shí)用,是新生事物,讓用戶有新奇感,查詢率高,效果好,還具有使用十分方便,掃碼就能查真?zhèn)?。同時(shí)對組織的經(jīng)濟(jì)狀況和投資能力進(jìn)行了分析,對系統(tǒng)建設(shè)、運(yùn)行和維護(hù)費(fèi)用進(jìn)行了評估,對系統(tǒng)建成后可能取得的社會(huì)及經(jīng)濟(jì)效益進(jìn)行了估計(jì)。最終發(fā)現(xiàn)使用二維碼做防偽溯源系統(tǒng)不僅能增加消費(fèi)者對產(chǎn)品的信任,還能維護(hù)公司利益,具有遠(yuǎn)超資金投入的回報(bào)。需求分析功能需求功能與具體需求根據(jù)對基于二維碼的品牌酒防偽溯源系統(tǒng)—銷售環(huán)節(jié)部分的設(shè)計(jì)要求分析,該系統(tǒng)需要實(shí)現(xiàn)的主要功能包括:物流與銷售商管理、用戶手機(jī)終端防偽掃描、防串貨管理、認(rèn)證分析、假酒分布分析模塊。子模塊需求1.物流與銷售商管理模塊:將廠家出庫到經(jīng)銷商的酒進(jìn)行銷售掃描,經(jīng)銷商在出售的時(shí)候必須掃描該瓶酒才能使酒進(jìn)入防偽認(rèn)證的狀態(tài)。經(jīng)銷商掃描出售,系統(tǒng)會(huì)記錄出售該瓶酒的經(jīng)銷商信息。2.用戶手機(jī)終端防偽掃描模塊:根據(jù)客戶端發(fā)給服務(wù)器的酒編號和防偽密碼進(jìn)行判斷并返給客戶端酒防偽認(rèn)證的數(shù)據(jù)。服務(wù)器還能接受到假酒的防偽編號和防偽密碼,并和客戶端的定位坐標(biāo)一起保存到數(shù)據(jù)庫;3.防串貨管理模塊:當(dāng)出現(xiàn)經(jīng)銷商與所銷售地不相符合的時(shí)候可以使得銷售不成功,并能將經(jīng)銷商的串貨記錄保存到數(shù)據(jù)庫。統(tǒng)計(jì)串貨數(shù)據(jù),讓廠家能及時(shí)檢查出經(jīng)銷商的異地串貨情況。4.認(rèn)證分析模塊:在大數(shù)據(jù)支持的情況下,統(tǒng)計(jì)客戶端驗(yàn)證酒真?zhèn)蔚拇螖?shù),分別統(tǒng)計(jì)出認(rèn)證總次數(shù)中有多少次為假酒,多少次為真酒,分別占多少百分比。5.假酒分布分析模塊:大數(shù)據(jù)支持的情況下,對假酒的掃描地進(jìn)行統(tǒng)計(jì),通過掃描客戶端的地理位置進(jìn)行統(tǒng)計(jì),統(tǒng)計(jì)出每個(gè)省份的假酒分布情況,形成一套完整的假酒溯源的功能。系統(tǒng)用例模型1.主角本系統(tǒng)的主角為銷售人員角色和消費(fèi)者。2.用例模型圖從主角角度出發(fā),結(jié)合前文對于整個(gè)軟件的使用者以及用例場景分析,可以得出全局用例模型圖。圖2-1用例模型圖性能需求本系統(tǒng)有如下方面的性能需求:界面布局要合理、要符合用戶的使用習(xí)慣、字體大小合適。進(jìn)行操作時(shí)的系統(tǒng)響應(yīng)要靈敏,響應(yīng)時(shí)間最好不超過8秒。系統(tǒng)應(yīng)具有良好的兼容性,如數(shù)據(jù)庫要考慮更高版本的兼容性。運(yùn)行此服務(wù)器端程序時(shí)不影響服務(wù)器上的其他操作,且占用內(nèi)存及CPU低。本系統(tǒng)應(yīng)易于安裝和卸載,并且在指定環(huán)境下都可以正常運(yùn)行。總體設(shè)計(jì)總體設(shè)計(jì)目標(biāo)系統(tǒng)在銷售環(huán)節(jié)中,將經(jīng)銷商與物流綁定在一起,并通過GPS定位銷售商品的地址,與經(jīng)銷商地址相匹對,則可實(shí)現(xiàn)防串貨。同時(shí)消費(fèi)者可以通過掃描二維碼,獲取產(chǎn)品信息,辨析產(chǎn)品真?zhèn)?。通過大數(shù)據(jù)分析技術(shù)可以得出各種分析結(jié)論,為生產(chǎn)廠商和經(jīng)銷商的工作提供數(shù)據(jù)。目標(biāo)是為生產(chǎn)廠商、經(jīng)銷商和消費(fèi)者提供一個(gè)銷售環(huán)節(jié)的產(chǎn)品溯源系統(tǒng),使消費(fèi)者可以驗(yàn)證所購產(chǎn)品的真?zhèn)危私猱a(chǎn)品的信息;使生產(chǎn)廠商可以獲知哪些經(jīng)銷商存在串貨行為,為更改以后的合作提供基礎(chǔ)??傮w設(shè)計(jì)原則實(shí)用性原則:運(yùn)用成熟可靠的技術(shù)和設(shè)備,達(dá)到經(jīng)濟(jì)實(shí)用的目的??煽啃栽瓌t:盡可能的降低故障發(fā)生的概率,并且確保提高無故障時(shí)間。安全性原則:確保系統(tǒng)和數(shù)據(jù)能安全運(yùn)行。先進(jìn)性原則:運(yùn)用先進(jìn)的技術(shù)和設(shè)備,使產(chǎn)品走在新技術(shù)的前沿。易用性原則:整個(gè)系統(tǒng)應(yīng)該易于安裝、使用和卸載??蓴U(kuò)展性原則:在性能和規(guī)模方面具有較好的可擴(kuò)展性。概要設(shè)計(jì)系統(tǒng)分析1.功能模塊圖。圖3-1系統(tǒng)功能示意圖2.用戶功能說明表。表3-1用戶功能說明功能模塊功能說明登錄用戶將APP打開后,進(jìn)入登陸界面用戶填寫正確用戶名及密碼即可登錄成功,并根據(jù)角色的不同進(jìn)入相應(yīng)環(huán)節(jié)的主界面。若果登錄名或密碼錯(cuò)誤則給予相應(yīng)提示。物流與銷售商管理模塊1.點(diǎn)擊“待銷售”按鈕,查詢所有處于待銷售狀態(tài)的酒的信息。2.點(diǎn)擊“物流銷售”按鈕掃描要進(jìn)行物流銷售的酒的二維碼,顯示該酒的信息,并點(diǎn)擊確認(rèn)按鈕,則可進(jìn)行銷售用戶手機(jī)終端防偽掃描模塊點(diǎn)擊“防偽掃描”按鈕,掃描要驗(yàn)證的酒的二維碼。若為真酒則顯示酒的信息,并提示此產(chǎn)品是真品,還剩余多少驗(yàn)證次數(shù)。若為假酒,則直接提示,驗(yàn)證超過規(guī)定次數(shù)(此產(chǎn)品可能為假酒)。防串貨管理模塊以折線圖的形式顯示各個(gè)經(jīng)銷商存在串貨行為的次數(shù)。認(rèn)證分析模塊以餅狀圖的形式,顯示防偽驗(yàn)證成功,防偽驗(yàn)證失敗的數(shù)量,以及所占的百分比。假酒分布分析模塊以柱狀圖的形式,顯示各個(gè)省份出現(xiàn)假酒的次數(shù)??傮w設(shè)計(jì)流程圖總體設(shè)計(jì)流程圖如圖3-2。圖3-2總體設(shè)計(jì)流程圖運(yùn)行環(huán)境操作系統(tǒng):Windows7或以上,包括32位和64位版本。硬件:CPU:Intel雙核@1.40GHZ或以上(CPU越高越好,運(yùn)行越流暢)內(nèi)存:2.00GB硬盤:400GB標(biāo)準(zhǔn)規(guī)范設(shè)計(jì)符合標(biāo)準(zhǔn)的軟件開發(fā)規(guī)范:正確性要求、容錯(cuò)性要求、結(jié)構(gòu)化要求、軟件開發(fā)的基本要求、可讀性要求、可重用性要求。數(shù)據(jù)庫設(shè)計(jì)E-R圖數(shù)據(jù)庫概念模型即基于二維碼的品牌酒防偽溯源系統(tǒng)-銷售環(huán)節(jié)部分的實(shí)體—關(guān)系模型。基于二維碼的品牌酒防偽溯源系統(tǒng)--銷售環(huán)節(jié)部分的整體E-R圖如圖3-3所示。圖3-3整體E-R圖設(shè)計(jì)思路1.對系統(tǒng)進(jìn)行分析可以得出5張表,分別為user表,data表,chuanhuo表,fake表,province表。user表(用戶表):id,用戶名,密碼,角色,角色名稱,地址;data表(酒的信息表):id,創(chuàng)建者,度數(shù),價(jià)格,生產(chǎn)日期,產(chǎn)品狀態(tài),貼瓶裝箱,貼瓶裝箱時(shí)間,入庫操作,入庫時(shí)間,出庫操作,出庫時(shí)間,銷售,銷售時(shí)間,標(biāo)識,驗(yàn)證,產(chǎn)品名稱;chuanhuo表(串貨表):id,標(biāo)識,用戶名;fake表(驗(yàn)偽表):id,標(biāo)識,真假;province表(地址表):id,標(biāo)識,地址;2.data表中的state取值有0,1,2,3,4分別表示待貼瓶裝箱,待入庫,待出庫,待銷售和已銷售;verification取值有-1,0,1,2,3分別表示假酒,可驗(yàn)證次數(shù)為0,1,2,3。邏輯模型根據(jù)具體的功能需求,對本系統(tǒng)的E-R圖進(jìn)行細(xì)化從而得到幾種實(shí)體—關(guān)系模型,以下為部分實(shí)體—關(guān)系模型。(1)用戶類實(shí)體,如圖3-4。圖3-4user類實(shí)體圖(2)角色實(shí)體,如圖3-5。圖3-5角色實(shí)體(3)酒的實(shí)體,如圖3-6。圖3-3酒的實(shí)體(4)串貨類實(shí)體,如圖3-7。圖3-7串貨類實(shí)體(5)假酒分布類實(shí)體,如圖3-8。圖3-8假酒分布類實(shí)體圖物理結(jié)構(gòu)設(shè)計(jì)本系統(tǒng)主要用到了以下幾張數(shù)據(jù)表:1.user表。表3-2user表字段名稱數(shù)據(jù)類型長度是否有小數(shù)點(diǎn)是否為null是否為主鍵idint11否否是userNamevarchar50否passWordvarchar25否rolevarchar50否namevarchar50否placevarchar50否

2.data表。表3-3data表字段名稱數(shù)據(jù)類型長度是否有小數(shù)點(diǎn)是否為null是否為主鍵idint11否否是creatervarchar50否identityvarchar25否namevarchar50否degressvarchar25否pricevarchar50否dateDate50否producervarchar50否stateint11否verificationint11否BottleOperatorvarchar50否BottleDateDate50否StorageOperatorvarchar50否StorageDateDate50否OutOperatorvarchar50否OutDateDate50否OutPlacevarchar50否SaleOperatorvarchar50否SaleDateDate50否

3.fake表:表3-4fake表字段名稱數(shù)據(jù)類型長度是否有小數(shù)點(diǎn)是否為null是否為主鍵idint11否否是identityvarchar50否isTrueint11否4.province表表3-5province表字段名稱數(shù)據(jù)類型長度是否有小數(shù)點(diǎn)是否為null是否為主鍵idint11否否是identityvarchar50否provincevarchar50否5.chuanhuo表表3-6chuanhuo表字段名稱數(shù)據(jù)類型長度是否有小數(shù)點(diǎn)是否為null是否為主鍵idint11否否是identityvarchar50否userNamevarchar50否詳細(xì)設(shè)計(jì)系統(tǒng)分客戶端和服務(wù)器端兩部分,分生產(chǎn)環(huán)節(jié)角色和銷售環(huán)節(jié)角色,實(shí)現(xiàn)了物流銷售,防偽掃描,防串貨管理,認(rèn)證分析,假酒分布這五個(gè)模塊。下面根據(jù)模塊來進(jìn)行詳細(xì)設(shè)計(jì)。系統(tǒng)主要功能模塊介紹物流銷售管理模塊經(jīng)銷商通過掃描酒的二維碼,然后向服務(wù)器查詢酒的信息,再展現(xiàn)給用戶就得信息,由用戶進(jìn)行確認(rèn)銷售,然后服務(wù)端再記錄是哪一位經(jīng)銷商銷售了此瓶酒,做到跟蹤。根據(jù)手機(jī)的定位,再比較此瓶酒的出庫地,做到防串貨管理。也可以查詢所有待銷售的酒的信息,看看有多少酒有哪些酒有待銷售。用戶手機(jī)終端防偽掃描模塊用戶掃描酒瓶上的二維碼,然后再向服務(wù)器查詢酒的信息,每瓶酒可以由終端進(jìn)行防偽驗(yàn)證三次,驗(yàn)證三次之后,就不能百分百的確認(rèn)這瓶酒是真酒了。同時(shí)根據(jù)APP的定位,服務(wù)器保存一條此次防偽認(rèn)證的記錄,以便后續(xù)統(tǒng)計(jì)之用。防串貨管理模塊客戶端通過訪問經(jīng)銷商銷售的串貨情況,然后進(jìn)行統(tǒng)計(jì),以線性圖的形式展現(xiàn)在客戶端,使用戶可以直觀的看到各個(gè)經(jīng)銷商的串貨次數(shù)和比例。認(rèn)證分析模塊經(jīng)銷商每銷售一瓶酒,APP都會(huì)根據(jù)經(jīng)銷商的地理位置來向服務(wù)器保存一條記錄。通大數(shù)據(jù)支持的情況下,統(tǒng)計(jì)客戶端驗(yàn)證酒真?zhèn)蔚拇螖?shù),分別統(tǒng)計(jì)出客戶端認(rèn)證為真酒和加酒的次數(shù),然后畫出餅狀圖展現(xiàn)給用戶,直觀的看到認(rèn)證總次數(shù)中有多少次為假酒,多少次為真酒,分別占好多百分比。假酒分布模塊大數(shù)據(jù)支持的情況下,對假酒的掃描地進(jìn)行統(tǒng)計(jì),把統(tǒng)計(jì)的數(shù)據(jù)通過直方圖的形式展現(xiàn)給用戶,每個(gè)直方圖可以看到各個(gè)省份的認(rèn)證為假酒的次數(shù),然后產(chǎn)家可以對假酒最多的地方采取手段。

物流銷售模塊設(shè)計(jì)物流銷售模塊程序流程圖物流銷售模塊的流程圖如圖4-1。圖4-1物流與銷售商管理模塊流程圖物流銷售模塊界面1.查詢所有待貼瓶裝箱的酒信息如圖4-2。圖4-2查詢所有待貼瓶裝箱的酒信息2.掃描二維碼查詢這瓶酒,再由經(jīng)銷商確認(rèn)銷售,如圖4-3。圖4-3掃描二維碼查詢這瓶酒,再由經(jīng)銷商確認(rèn)銷售物流銷售模塊關(guān)鍵函數(shù)說明服務(wù)器端:查詢所有待銷售的酒的信息publicJsonOqueryAll(HttpServletRequestrequest){ System.out.println("查詢所有待銷售"); JsonOjsonO=newJsonO();//新建一個(gè)json對象 JsonAja=newJsonA();//新建一個(gè)jsonarray對象 intSTATUS=-1; Stringsql="select*from`antifake`.`data`wherestate=" +Variable.OUT;//新建一個(gè)sql查詢語句 ComInfluencec=newComInfluence();//新建數(shù)據(jù)庫操作對象 Connectioncon=c.getConnection();//連接數(shù)據(jù)庫 Statementstmt=c.getStatement(con);//執(zhí)行數(shù)據(jù)庫存儲(chǔ)過程 ResultSetrs=c.getResultSet(stmt,sql);//執(zhí)行查詢數(shù)據(jù)庫的SQL語句,返回一個(gè)結(jié)果集(ResultSet)對象 try{ ResultSetMetaDatam=null;//獲取列信息 m=rs.getMetaData(); intcolumns=m.getColumnCount();//獲取表格的列數(shù) while(rs.next()){ STATUS=0; JsonOjsonOTemp=newJsonO(); for(inti=1;i<=columns;i++){//讀出這一行數(shù)據(jù) Strings1=m.getColumnName(i); Strings2=rs.getString(i); jsonOTemp.putQuoted(s1,s2);//將數(shù)據(jù)封裝近json中 } ja.add(jsonOTemp);//將json放入到j(luò)sonarray中 } if(STATUS==-1){//沒有該產(chǎn)品 jsonO.putQuoted(Variable.STATUS,STATUS+"");//STATU賦值為-1,數(shù)據(jù)庫不存在該產(chǎn)品 }else{ jsonO.putQuoted(Variable.STATUS,STATUS+"");//STATUS賦值為0, jsonO.put("data",ja);//返回給客戶端所有待銷售的酒的信息 } }catch(SQLExceptione){ System.out.println("無法打印查詢結(jié)果!"); e.printStackTrace(); } c.close(con,stmt,rs);//關(guān)閉數(shù)據(jù)連接對象 returnjsonO; }}

用戶手機(jī)終端防偽掃描模塊設(shè)計(jì)用戶手機(jī)終端防偽掃描模塊程序流程圖用戶手機(jī)終端防偽掃描模塊的流程圖如圖4-4。圖4-4用戶手機(jī)終端防偽掃描模塊流程圖用戶手機(jī)防偽掃描終端模塊界面防偽掃描主界面如圖4-5。圖4-5防偽掃描驗(yàn)證超過規(guī)定次數(shù)圖4-6。圖4-6驗(yàn)證超過規(guī)定次數(shù)用戶手機(jī)防偽掃描終端模塊關(guān)鍵函數(shù)說明服務(wù)器端:publicJsonOFakeData(HttpServletRequestrequest){ System.out.println(""); JsonOjsonO=newJsonO();//定義一個(gè)json intintTrue=0;//驗(yàn)證為真的次數(shù) intintFalse=0;//驗(yàn)證為假的次數(shù) ComInfluencec=newComInfluence();//新建數(shù)據(jù)庫操作對象 Connectioncon=c.getConnection();//連接數(shù)據(jù)庫 Statementstmt=c.getStatement(con);//執(zhí)行數(shù)據(jù)庫存儲(chǔ)過程 Stringsql="select*from`antifake`.`fake`";//定義一個(gè)sql語句 ResultSetrs=c.getResultSet(stmt,sql);//執(zhí)行查詢數(shù)據(jù)庫的SQL語句,返回一個(gè)結(jié)果集(ResultSet)對象。 try{ //顯示表格內(nèi)容 while(rs.next()){//循環(huán)讀取fake表 intisTrue=rs.getInt("isTrue");//讀取是否驗(yàn)證成功的數(shù)據(jù) if(isTrue==1){//如果驗(yàn)證成功 intTrue++;//成功次數(shù)加1 }else{ intFalse++;//失敗的次數(shù)加1 } } }catch(SQLExceptione){ System.out.println("無法打印查詢結(jié)果!"); e.printStackTrace(); } jsonO.putQuoted("intTrue",intTrue+"");//把驗(yàn)證的大數(shù)據(jù)封裝成json格式,返回給客戶端 jsonO.putQuoted("intFalse",intFalse+""); c.close(con,stmt,rs); returnjsonO; }防串貨管理模塊設(shè)計(jì)防串貨管理模塊界面防串貨管理主界面如圖4-7。圖4-7防串貨管理防串貨管理模塊關(guān)鍵函數(shù)說明服務(wù)器端: publicJsonOChuanHuoData(HttpServletRequestrequest){ System.out.println(""); JsonAjsonA=newJsonA(); ComInfluencec=newComInfluence();//新建數(shù)據(jù)庫操作對象 Connectioncon=c.getConnection();//連接數(shù)據(jù)庫 Statementstmt=c.getStatement(con);//執(zhí)行數(shù)據(jù)庫存儲(chǔ)過程 Stringsql="select*from`antifake`.`chuanhuo`";//定義一個(gè)sql語句 ResultSetrs=c.getResultSet(stmt,sql);//執(zhí)行查詢數(shù)據(jù)庫的SQL語句,返回一個(gè)結(jié)果集(ResultSet)對象。 ArrayList<ChuanHuo>data=newArrayList<>();//定義一個(gè)arraylist用來存放串貨數(shù)據(jù) try{ //顯示表格內(nèi)容 while(rs.next()){//循環(huán)chuanhuo表中的所有串貨數(shù)據(jù) StringuserName=rs.getString("userName");//讀取串貨經(jīng)銷商的用戶名 intk=-1; for(inti=0;i<data.size();i++){//循環(huán)串貨數(shù)據(jù)庫的數(shù)據(jù) if(userName.equals(data.get(i).userName)){//如果數(shù)據(jù)里有這一條數(shù)據(jù), k=i; break; } } if(k!=-1){ data.get(k).times++;//串貨的次數(shù)加1 }else{ ChuanHuochuan=newChuanHuo();//新建一個(gè)串貨對象 chuan.userName=userName; chuan.times=1; data.add(chuan);//添加到串貨數(shù)據(jù)里 } } }catch(SQLExceptione){ System.out.println("無法打印查詢結(jié)果!"); e.printStackTrace(); } for(inti=0;i<data.size();i++){//循環(huán)串貨數(shù)據(jù),轉(zhuǎn)化為json JsonOjsonO=newJsonO(); jsonO.putQuoted("userName",data.get(i).userName); jsonO.putQuoted("intFalse",data.get(i).times+""); jsonA.add(jsonO); } JsonOjsonO=newJsonO(); jsonO.put("data",jsonA);//放入到j(luò)sona中 c.close(con,stmt,rs);//關(guān)閉數(shù)據(jù)庫連接 returnjsonO; }認(rèn)證分析模塊設(shè)計(jì)認(rèn)證分析模塊界面認(rèn)證分析主界面如圖4-8。圖4-8認(rèn)證分析認(rèn)證分析關(guān)鍵函數(shù)說明認(rèn)證分析部分:服務(wù)端: publicJsonOFakeData(HttpServletRequestrequest){ System.out.println(""); JsonOjsonO=newJsonO();//定義一個(gè)json intintTrue=0;//驗(yàn)證為真的次數(shù) intintFalse=0;//驗(yàn)證為假的次數(shù) ComInfluencec=newComInfluence();//新建數(shù)據(jù)庫操作對象 Connectioncon=c.getConnection();//連接數(shù)據(jù)庫 Statementstmt=c.getStatement(con);//執(zhí)行數(shù)據(jù)庫存儲(chǔ)過程 Stringsql="select*from`antifake`.`fake`";//定義一個(gè)sql語句 ResultSetrs=c.getResultSet(stmt,sql);//執(zhí)行查詢數(shù)據(jù)庫的SQL語句,返回一個(gè)結(jié)果集(ResultSet)對象。 try{ //顯示表格內(nèi)容 while(rs.next()){//循環(huán)讀取fake表 intisTrue=rs.getInt("isTrue");//讀取是否驗(yàn)證成功的數(shù)據(jù) if(isTrue==1){//如果驗(yàn)證成功 intTrue++;//成功次數(shù)加1 }else{ intFalse++;//失敗的次數(shù)加1 } } }catch(SQLExceptione){ System.out.println("無法打印查詢結(jié)果!"); e.printStackTrace(); } jsonO.putQuoted("intTrue",intTrue+"");//把驗(yàn)證的大數(shù)據(jù)封裝成json格式,返回給客戶端 jsonO.putQuoted("intFalse",intFalse+""); c.close(con,stmt,rs); returnjsonO; }假酒模塊設(shè)計(jì)假酒分布模塊界面假酒分布統(tǒng)計(jì)如圖4-9。圖4-9假酒分布統(tǒng)計(jì)假酒分布關(guān)鍵函數(shù)說明假酒分布統(tǒng)計(jì)部分:服務(wù)端:publicJsonOprovince(HttpServletRequestrequest){//省份假酒分布的功能 System.out.println(""); JsonAjsonA=newJsonA(); ComInfluencec=newComInfluence();//新建數(shù)據(jù)庫操作對象 Connectioncon=c.getConnection();//連接數(shù)據(jù)庫 Statementstmt=c.getStatement(con);//執(zhí)行數(shù)據(jù)庫存儲(chǔ)過程 Stringsql="select*from`antifake`.`province`";//定義sql語句 ResultSetrs=c.getResultSet(stmt,sql);//執(zhí)行查詢數(shù)據(jù)庫的SQL語句,返回一個(gè)結(jié)果集(ResultSet)對象 ArrayList<ProvinceData>data=newArrayList<>();//定義一個(gè)存放假酒分布的ArrayList try{ //顯示表格內(nèi)容 while(rs.next()){//循環(huán)province表,查詢假酒在個(gè)省份的分布情況 Stringprovince=rs.getString("province"); intk=-1; for(inti=0;i<data.size();i++){//統(tǒng)計(jì)假酒分布 if(province.equals(data.get(i).province)){ k=i; break; } } if(k!=-1){ data.get(k).times++; }else{//把假酒數(shù)據(jù)添加到ArrayList ProvinceDataprovinceData=newProvinceData(); provinceDvince=province; provinceData.times=1; data.add(provinceData); } } }catch(SQLExceptione){ System.out.println("無法打印查詢結(jié)果!"); e.printStackTrace(); } for(inti=0;i<data.size();i++){//把假分布的數(shù)據(jù)統(tǒng)計(jì)成json形式的數(shù)據(jù)。 JsonOjsonO=newJsonO(); jsonO.putQuoted("province",data.get(i).province); jsonO.putQuoted("times",data.get(i).times+""); jsonA.add(jsonO); } JsonOjsonO=newJsonO(); jsonO.put("data",jsonA);//把json放入到j(luò)sonArray中 c.close(con,stmt,rs);//關(guān)閉數(shù)據(jù)連接對象 returnjsonO; }測試登錄功能測試登錄用例及測試結(jié)果如表5-1。表5-1登錄用例及測試結(jié)果測試編號測試數(shù)據(jù)預(yù)期結(jié)果實(shí)際結(jié)果測試1輸入數(shù)據(jù)(用戶名:bbb密碼:000000)點(diǎn)擊登錄提示登錄成功,頁面成功跳轉(zhuǎn)至銷售環(huán)節(jié)的Home界面提示登錄成功,頁面成功跳轉(zhuǎn)至銷售環(huán)節(jié)的Home界面測試21.輸入數(shù)據(jù)(用戶名:abcd密碼:000000)2.點(diǎn)擊登錄提示“沒有該用戶”提示“沒有該用戶”測試31.輸入數(shù)據(jù)(用戶名:bbb密碼:110000)2.點(diǎn)擊登錄提示密碼錯(cuò)誤提示密碼錯(cuò)誤登錄用例及測試結(jié)果如表5-1,5-2,5-3。圖5-1登錄測試1測試結(jié)果圖5-2登錄測試2測試結(jié)果圖5-3登錄測試2測試結(jié)果物流銷售模塊功能測試物流銷售測試用例及結(jié)果如表5-2。表5-2物流銷售測試用例及結(jié)果測試編號測試數(shù)據(jù)預(yù)期結(jié)果實(shí)際結(jié)果測試11.點(diǎn)擊“待銷售”按鈕顯示所有處于待銷售狀態(tài)的酒的信息顯示所有處于待銷售狀態(tài)的酒的信息測試21.點(diǎn)擊“物流銷售”按鈕,掃描編號為1460881360503的酒的二維碼2.點(diǎn)擊“確認(rèn)銷售”按鈕顯示編號為1460881360503的酒的信息。提示產(chǎn)品銷售成功顯示編號為1460881360503的酒的信息。提示產(chǎn)品銷售成功測試31.點(diǎn)擊“物流銷售”按鈕,掃描編號為1462267598534的酒的二維碼2.點(diǎn)擊“確認(rèn)銷售”按鈕顯示編號為1460881360503的酒的信息。提示串貨行為,產(chǎn)品銷售失敗顯示編號為1460881360503的酒的信息。提示串貨行為,產(chǎn)品銷售失敗物流銷售測試用例及結(jié)果如圖5-4,5-5,5-6。圖5-4貼瓶裝箱測試1結(jié)果圖5-5貼瓶裝箱測試2結(jié)果圖5-6貼瓶裝箱測試3結(jié)果確認(rèn)銷售后,數(shù)據(jù)庫data表信息如圖5-7。圖5-7確認(rèn)銷售后,數(shù)據(jù)庫data表信息

用戶手機(jī)終端防偽掃描模塊功能測試防偽掃描測試用例及結(jié)果如表5-3。表5-3防偽掃描測試用例及結(jié)果測試編號測試數(shù)據(jù)預(yù)期結(jié)果實(shí)際結(jié)果測試11.點(diǎn)擊“防偽掃描”按鈕,掃描一瓶數(shù)據(jù)庫不存在的酒的二維碼123456789顯示“沒有該產(chǎn)品”,給出假酒提示顯示“沒有該產(chǎn)品”,給出假酒提示測試21.點(diǎn)擊“防偽掃描”按鈕,掃描編號為1460881360503的酒的二維碼顯示編號為1460881360503的酒的信息。提示剩余防偽認(rèn)證次數(shù)。顯示編號為1460881360503的酒的信息。提示剩余防偽認(rèn)證次數(shù)。測試31.點(diǎn)擊“防偽掃描”按鈕,重復(fù)掃描編號為1460881360503的酒的二維碼提示“驗(yàn)證超過規(guī)定次數(shù)(此產(chǎn)品可能是假酒)”提示“驗(yàn)證超過規(guī)定次數(shù)(此產(chǎn)品可能是假酒)”防偽掃描測試結(jié)果如圖5-8,5-9,5-10。圖5-8防偽掃描測試1結(jié)果圖5-9防偽掃描測試2結(jié)果圖5-10防偽掃描測試3結(jié)果防串貨管理模塊功能測試查看數(shù)據(jù)庫中chaunhuo表的信息,總共有11條記錄,bbb一共有四條記錄,ccc一共有一條記錄,ddd一共有2條記錄,eee一共有四條記錄。統(tǒng)計(jì)出串貨次數(shù)應(yīng)為:bbb3次,ccc1次,ddd2次,eee四次。測試結(jié)果如圖5-11所示。圖5-11防串貨管理測試結(jié)果認(rèn)證分析模塊功能測試查看數(shù)據(jù)庫中fake表的信息,總共有22條記錄,isTrue為0的有13次,isTrue為1的有9次。統(tǒng)計(jì)出認(rèn)證失敗應(yīng)為41%,認(rèn)證失成功為59%。測試結(jié)果如圖5-12所示。圖5-12認(rèn)證分析測試結(jié)果假酒分布模塊功能測試查看數(shù)據(jù)庫中province表的信息,總共有36條記錄,四川省有21次,廣東省7次,云南省1次,山西省6次,廣西省1次,湖北省1次,湖南省3次。統(tǒng)計(jì)出假酒分布數(shù)據(jù)測試結(jié)果如圖5-13所示。圖5-13假酒分布測試結(jié)果

結(jié)論本文記錄了開發(fā)基于二維碼的品牌酒防偽溯源系統(tǒng)(銷售環(huán)節(jié)部分)的全過程。整個(gè)系統(tǒng)分為生產(chǎn)環(huán)節(jié)和銷售環(huán)節(jié)兩部分,兩部分共同構(gòu)建成一套完整的防偽溯源體系,而銷售環(huán)節(jié)主要就是通過對二維碼進(jìn)行掃描,從而判斷銷售的酒是否是真酒,并將假酒的相關(guān)信息存儲(chǔ)在數(shù)據(jù)庫,并利用大數(shù)據(jù)對信息進(jìn)行分析,判斷出哪個(gè)地區(qū)假酒出現(xiàn)最多,哪個(gè)地區(qū)經(jīng)銷商存在串貨行為,并根據(jù)那個(gè)地方的哪種酒更暢銷,為廠家和經(jīng)銷商提供生產(chǎn)和經(jīng)營上的決策。根據(jù)需求,本軟件設(shè)計(jì)了5個(gè)功能模塊,分別為:物流銷售,防偽掃描,防串貨管理,認(rèn)證分析,假酒分布這五個(gè)模塊。按照任務(wù)書上的內(nèi)容完成了每個(gè)功能,并能夠正常的使用每個(gè)功能,業(yè)務(wù)流程大體形成。雖然有些業(yè)務(wù)邏輯在細(xì)節(jié)上不具備實(shí)際意義,在設(shè)計(jì)上功能并沒有做到很完善嚴(yán)謹(jǐn),但是在大體功能上都表現(xiàn)了銷售環(huán)節(jié)的業(yè)務(wù)。

總結(jié)與體會(huì)經(jīng)過幾個(gè)月的努力,基于二維碼的品牌酒防偽溯源系統(tǒng)(銷售環(huán)節(jié)部分)終于完成了開發(fā),看到自己設(shè)計(jì)的軟件能夠運(yùn)行出來,我內(nèi)心十分激動(dòng),非常有成就感。經(jīng)過這次實(shí)踐,我深深感到“紙上得來終覺淺,絕知此事要躬行”的正確性,書本上的知識,只起到理論的作用,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論