段衛(wèi)國,趙 佳
(渭南師范學(xué)院 數(shù)學(xué)與信息科學(xué)學(xué)院,陜西 渭南 714000)
C++是有C語言發(fā)展起來的一門語言,在各個領(lǐng)域都有著廣泛的應(yīng)用,C++是一種靜態(tài)數(shù)據(jù)類型檢查的,支持多重編程范式的通用程序設(shè)計語言[1]。數(shù)據(jù)采集器則是普遍用在超市、商場、各大小企業(yè)之中的數(shù)據(jù)采集設(shè)備,幫助企業(yè)對防偽防竄貨有很大的幫助,采集完數(shù)據(jù)之后上傳至系統(tǒng)數(shù)據(jù)庫中進(jìn)行保存,用戶可以隨時查找所上傳的數(shù)據(jù)以及辨別數(shù)據(jù)的真?zhèn)危蛊髽I(yè)之間的惡性競爭減少。
數(shù)據(jù)采集器的使用配合特制的條碼,采集完數(shù)據(jù)后上傳到特定的系統(tǒng)數(shù)據(jù)庫中,而此一套設(shè)備則都是基于數(shù)據(jù)采集器程序的開發(fā)以及使用來實現(xiàn)的。
典型的物流管理系統(tǒng)的系統(tǒng)流程圖如圖1所示。
首先產(chǎn)品裝箱,在裝箱后需要用數(shù)據(jù)采集器采集入庫的數(shù)據(jù),在此使用數(shù)據(jù)采集器采集數(shù)據(jù),數(shù)據(jù)采集完成后將貨物放入倉庫。當(dāng)需要出貨時,又需要用采集器進(jìn)行出庫的掃描,完成后將掃描的數(shù)據(jù)傳入物流管理系統(tǒng),之后貨物被投放到市場,投入到市場后,如果需要繼續(xù)管控,繼續(xù)在此處使用采集器,采集入庫和出庫的信息,將采集到的信息傳到物流系統(tǒng)中,如需做到三級經(jīng)銷商,則流程一樣。

圖1 流程說明Fig.1 Process description
入庫掃描。在企業(yè)生產(chǎn)完貨物后需要對全部貨物進(jìn)行入庫登記,此時可使用采集器的入庫掃描進(jìn)行登記貨物的信息,在入庫掃描中需要填寫單號以及貨物代碼,以方便跟物流系統(tǒng)的對接。
出庫掃描。當(dāng)經(jīng)銷商需要對自己的客戶出貨時,則可使用采集器的出庫登記模塊進(jìn)行掃描登記貨物的詳細(xì)信息。
數(shù)據(jù)傳輸。當(dāng)數(shù)據(jù)采集器采集完入庫或者出庫信息后,則需要將其掃描的數(shù)據(jù)全部的導(dǎo)入特定的物流管理系統(tǒng),數(shù)據(jù)傳輸時則是基于USB(UEasyfile)協(xié)議進(jìn)行實現(xiàn)。
保存數(shù)據(jù)。掃描完成后,則需要對所采集的數(shù)據(jù)進(jìn)行保存,在此則采用自動保存的形式。
掃描時需要一系列的參數(shù),例如:在出庫掃描中,需要整個出庫(即出貨)的數(shù)量進(jìn)行界定、客戶的設(shè)置以及產(chǎn)品的設(shè)置等。
1)數(shù)量的界定。當(dāng)采集器掃描夠界定的數(shù)量后將不再繼續(xù)掃描,在出庫數(shù)量方面,我們可以擬定參數(shù)CUEdit m_Edit_qty,即本次需要采集的數(shù)量,擬定完成后,則在程序中可以以if語句進(jìn)行實現(xiàn),例如:

2)客戶的設(shè)定。在出貨時,肯定需要設(shè)定該貨物發(fā)往哪個客戶,這就需要在采集器上設(shè)定好相應(yīng)的客戶信息,以方便數(shù)據(jù)在上傳系統(tǒng)的時候方便和系統(tǒng)進(jìn)行對接,則也可設(shè)置一個參數(shù),在掃描其掃描時,輸入相應(yīng)的客戶代碼即可.
3)產(chǎn)品的設(shè)定。產(chǎn)品的設(shè)定跟客戶的設(shè)定是一樣的道理,方便上傳數(shù)據(jù)文件時跟系統(tǒng)對接。當(dāng)出庫掃描模塊里所有需要的參數(shù)都設(shè)定好之后,則需要判斷是否開始掃描。因此,在此類里即可以使用bool進(jìn)行是否開始掃描的判斷,例如:

此外,在上述參數(shù)的設(shè)定方面還需要進(jìn)行最后一步的確認(rèn),即如果少了其中一項則不能進(jìn)行掃描,此處可以繼續(xù)沿用if語句進(jìn)行判斷,例如我們舉一個產(chǎn)品設(shè)定的例子進(jìn)行說明:

這樣,在數(shù)量的控制上就可以達(dá)到我們的目標(biāo).
4)數(shù)據(jù)傳輸?shù)膶崿F(xiàn)過程。在數(shù)據(jù)傳輸時,首先需要創(chuàng)建該頁面,例如:

此處用到參考文獻(xiàn)[2-5]中的類的建立.而在此功能中,需要3種方式進(jìn)行數(shù)據(jù)的傳輸,分別為USB、COM、紅外連接,則在此可采用靜態(tài)函數(shù)進(jìn)行設(shè)置,例如:

在此類中,分別對3種方式進(jìn)行判斷,在此可以使用if else進(jìn)行確認(rèn)已達(dá)到實現(xiàn)的目標(biāo).
5)數(shù)據(jù)的保存。數(shù)據(jù)保存在此程序中是比較特殊的一類實現(xiàn)的方式,既是即時保存,可直接采用memset的方式進(jìn)行保存,例如:在入庫類中創(chuàng)建一個他的繼承類.

首先,根據(jù)C++的語句規(guī)則建立一個全局函數(shù),即該程序的主函數(shù):

主函數(shù)擬定之后,建立一個類,例如:目前很多企業(yè)為了防竄貨,會在貨物出庫之前先進(jìn)行庫存的統(tǒng)計,即出庫登記,如果一個一個人力登記的話會耗費很大的人力物理財力,因為我們建立一個出庫統(tǒng)計的類,即class CPageOutput建立此類之后,則一步一步完成相應(yīng)的出庫統(tǒng)計作用的實現(xiàn),而整個防竄貨系統(tǒng)則可通過以下的過程初步實現(xiàn),如下:
出庫掃描—>得到出庫信息—>上傳掃描信息—>信息查詢
上述程序完成后,即可隨時查詢?nèi)我獾臄?shù)據(jù)的詳細(xì)信息以達(dá)到防竄貨的目的。
其它的客戶以及單數(shù)(數(shù)量)等則使用同樣的方式實現(xiàn),上面則是這個類的全部實現(xiàn)思路過程,而在采集器中,還需要入庫的登記,庫存的盤點,退貨的登記等等模塊,而實現(xiàn)過程均可采用出庫登記相類似的方式進(jìn)行實現(xiàn).
進(jìn)入掃描界面如圖2所示,在掃描界面填入入庫單號以及產(chǎn)品代碼等即可,之后開始掃描,將掃描器對準(zhǔn)條形碼進(jìn)行掃描。

圖2 出庫掃描圖示Fig.2 Outbound scanning graphic
將數(shù)據(jù)采集器用USB線連接至電腦,連接完成后將采集器的數(shù)據(jù)傳輸端口設(shè)置為 USB(UEasyfile)點擊確認(rèn)以完成和電腦中物流管理系統(tǒng)的對接,亦可對采集器中的數(shù)據(jù)格式進(jìn)行查看測試,當(dāng)掃描儀連接成功后,則會顯示圖3所示。

圖3 數(shù)據(jù)傳輸圖示Fig.3 Data transmission graphic
通過對采集器采集數(shù)據(jù)以及數(shù)據(jù)傳輸?shù)臏y試,在采集器采集數(shù)據(jù)時,可以達(dá)到快捷靈敏的對數(shù)據(jù)進(jìn)行采集,并能夠成功將數(shù)據(jù)保存至采集器中,而設(shè)置好采集器端口后,也可成功將采集器連接至電腦并讀出其中數(shù)據(jù)。
數(shù)據(jù)采集器是基于C++開發(fā)的,具有穩(wěn)定性、高效性、可擴(kuò)充性等特點。穩(wěn)定性表現(xiàn)在數(shù)據(jù)采集器持續(xù)多個小時工作無異常情況,高效性則反映在數(shù)據(jù)采集器開機速度快,運行速度快,操作簡單快捷,使用靈敏,可擴(kuò)充性使采集器能夠隨時添加新的模塊和功能以及特性。
[1]李春葆,章啟俊.C++程序設(shè)計[M].北京:清華大學(xué)出版社,1993.
[2]霍頓.Visual C++2010入門經(jīng)典[M].5版.北京:清華大學(xué)出版社,2011.
[3]周玉龍.高級語言C++程序設(shè)計[M].北京:高等教育出版社,1993.
[4]周進(jìn),朱訓(xùn),張宏林.VISUAL C++實用教程[M].西安:西安交通大學(xué)出版社,1997.
[5]Bruce Eckel.C++編程思想[M].北京:機械工業(yè)出版社,1990.
[6]Bjarne.C++程序設(shè)計語言[M].北京:電子工業(yè)出版社,1993.