




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、一維條形碼生成與識(shí)別技術(shù)一、引言 條形碼(簡(jiǎn)稱條碼)技術(shù)是集條碼理論、光電技術(shù)、計(jì)算機(jī)技術(shù)、通信技術(shù)、條碼印制技術(shù)于一體的一種自動(dòng)識(shí)別技術(shù)。條形碼是由寬度不同、反射率不同的條(黑色)和空(白色),按照一定的編碼規(guī)則編制而成,用以表達(dá)一組數(shù)字或字母符號(hào)信息的圖形標(biāo)識(shí)符。條形碼符號(hào)也可印成其它顏色,但兩種顏色對(duì)光必須有不同的反射率,保證有足夠的對(duì)比度。條碼技術(shù)具有速度快、準(zhǔn)確率高、可靠性強(qiáng)、壽命長(zhǎng)、成本低廉等特點(diǎn),因而廣泛應(yīng)用于商品流通、工業(yè)生產(chǎn)、圖書(shū)管理、倉(cāng)儲(chǔ)標(biāo)證管理、信息服務(wù)等領(lǐng)域。二、EAN-13條形碼簡(jiǎn)介一維條碼主要有EAN和UPC兩種,其中EAN碼是我國(guó)主要采取的編碼標(biāo)準(zhǔn)。EAN是歐洲物
2、品條碼(European Article Number Bar Code)的英文縮寫(xiě),是以消費(fèi)資料為使用對(duì)象的國(guó)際統(tǒng)一商品代碼。只要用條形碼閱讀器掃描該條碼,便可以了解該商品的名稱、型號(hào)、規(guī)格、生產(chǎn)廠商、所屬國(guó)家或地區(qū)等豐富信息。EAN通用商品條碼是模塊組合型條碼,模塊是組成條碼的最基本寬度單位,每個(gè)模塊的寬度為0.33毫米。在條碼符號(hào)中,表示數(shù)字的每個(gè)條碼字符均由兩個(gè)條和兩個(gè)空組成,它是多值符號(hào)碼的一種,即在一個(gè)字符中有多種寬度的條和空參與編碼。條和空分別由14個(gè)同一寬度的深、淺顏色的模塊組成,一個(gè)模塊的條表示二進(jìn)制的“1”,一個(gè)模塊的空表示二進(jìn)制的“0”,每個(gè)條碼字符共有7個(gè)模塊。即一個(gè)條
3、碼字符條空寬度之和為單位元素的7倍,每個(gè)字符含條或空個(gè)數(shù)各為2,相鄰元素如果相同,則從外觀上合并為一個(gè)條或空,并規(guī)定每個(gè)字符在外觀上包含的條和空的個(gè)數(shù)必須各為2個(gè),所以EAN碼是一種(7,2)碼。EAN條碼字符包括09共10個(gè)數(shù)字字符,但對(duì)應(yīng)的每個(gè)數(shù)字字符有三種編碼形式,左側(cè)數(shù)據(jù)符奇排列、左側(cè)數(shù)據(jù)符偶排列以及右側(cè)數(shù)據(jù)符偶排列。這樣十個(gè)數(shù)字將有30種編碼,數(shù)據(jù)字符的編碼圖案也有三十種,至于從這30個(gè)數(shù)據(jù)字符中選哪十個(gè)字符要視具體情況而定。在這里所謂的奇或偶是指所含二進(jìn)制“1”的個(gè)數(shù)為偶數(shù)或奇數(shù)2。2.1 EAN-13碼的格式EAN條形碼有兩個(gè)版本,一個(gè)是13位標(biāo)準(zhǔn)條碼(EAN-13條碼),另一個(gè)
4、是8位縮短條碼(EAN-8條碼)。EAN-13條碼由代表13位數(shù)字碼的條碼符號(hào)組成,如圖1所示1。圖 1前2位(,歐共體12國(guó)采用)或前3位(,其他國(guó)家采用)數(shù)字為國(guó)家或地區(qū)代碼,稱為前綴碼或前綴號(hào)。例如:我國(guó)為690,日本為49*,澳大利亞為93*等(其中的“*”表示09的任意數(shù)字)。前綴后面的5位()或4位()數(shù)字為商品制造商的代碼,是由該國(guó)編碼管理局審查批準(zhǔn)并登記注冊(cè)的。廠商代碼后面的5位()數(shù)字為商品代碼或商品項(xiàng)目代碼,用以表示具體的商品項(xiàng)目,即具有相同包裝和價(jià)格的同一種商品。最后一位數(shù)字為校驗(yàn)碼,用以提高數(shù)據(jù)的可靠性和校驗(yàn)數(shù)據(jù)輸入的正確性,校驗(yàn)碼的數(shù)值按國(guó)際物品編碼協(xié)會(huì)規(guī)定的方法計(jì)算
5、。2.2 EAN-13條形碼的構(gòu)成 EAN-13條形碼的構(gòu)成如圖2所示。左側(cè)空白起始符左側(cè)數(shù)據(jù)符6位數(shù)字中間分隔符右側(cè)數(shù)據(jù)符6位數(shù)字校驗(yàn)符1位數(shù)字終止符右側(cè)空 白圖2 典型EAN-13條形碼的構(gòu)成(1)左、右側(cè)空白:沒(méi)有任何印刷符號(hào),通常是空白,位于條碼符號(hào)的兩側(cè)。用以提示閱讀,準(zhǔn)備掃描條碼符號(hào),共有18個(gè)模塊組成(其中左側(cè)空白不得少于9個(gè)模塊寬度),一般左側(cè)空白11個(gè)模塊,右側(cè)空白7個(gè)模塊。(2)起始符:條形碼符號(hào)的第一位字符是起始符,它特殊的條空結(jié)構(gòu)用于識(shí)別條形碼符號(hào)的開(kāi)始。由3個(gè)模塊組成。(3)左側(cè)數(shù)據(jù)符:位于中間分隔符左側(cè),表示一定信息的條碼字符,由42個(gè)模塊組成。(4)中間分隔符:位
6、于條碼中間位置的若干條與空,用以區(qū)分左、右側(cè)數(shù)據(jù)符,由5個(gè)模塊組成。(5)右側(cè)數(shù)據(jù)符:位于中間分隔符右側(cè),表示一定信息的條碼字符,由35個(gè)模塊組成。(6)條碼校驗(yàn)符:表示校驗(yàn)碼的條碼字符,用以校驗(yàn)條碼符號(hào)的正確與否,由7個(gè)模塊組成。(7)終止符:條形碼符號(hào)的最后一位字符是終止符,它特殊的條空結(jié)構(gòu)用于識(shí)別條形碼符號(hào)的結(jié)束。由3個(gè)模塊組成。一個(gè)條形碼圖案是數(shù)條黑色和白色線條組成,如圖3所示。圖3 條形碼圖案實(shí)例 圖案分成五個(gè)部分,從左至右分別為:起始部分、第一數(shù)據(jù)部分、中間部分、第二數(shù)據(jù)部分和結(jié)束部分。(1)起始部分:由11條線組成,從左至右分別是8條白線,一條黑線,一條白線和一條黑線。(2)第一
7、數(shù)據(jù)部分:由42條線組成,是按照一定的算法形成的,包含了左側(cè)數(shù)據(jù)符()這些數(shù)字的信息。(3)中間部分:由5條線組成,從左到右依次是白線,黑線,白線,黑線,白線。(4)第二數(shù)據(jù)部分:由42條線組成,是按照一定的算法形成的,包含了右側(cè)數(shù)據(jù)符() 這些數(shù)字的信息。(5)結(jié)尾部分:由11條線組成,從左至右分別是一條黑線,一條白線和一條黑線,8條白線。2.3 EAN-13的編碼規(guī)則 EAN-13的編碼是由二進(jìn)制表示的。它的數(shù)據(jù)符、起始符、終止符、中間分隔符編碼見(jiàn)表1。表1 EAN-13編碼字符二進(jìn)制表示左側(cè)數(shù)據(jù)符右側(cè)數(shù)據(jù)符奇性字符(A組)偶性字符(B組)偶性字符(C組)00001101010011111
8、10010100110010110011110011020010011001101111011003011110101000011000010401000110011101101110050110001011100110011106010111100001011010000701110110001001100010080110111000100110010009000101100101111110100起始符101中間分隔符1010終止符101 左側(cè)數(shù)據(jù)符有奇偶性,它的奇偶排列取決于前置符,所謂前置符是國(guó)別識(shí)別碼的第一位,該位以消影的形式隱含在左側(cè)六位字符的奇偶性排列中,這是國(guó)際物品編碼標(biāo)準(zhǔn)版
9、的突出特點(diǎn)。前置符與左側(cè)六位字符的奇偶排列組合方式的對(duì)應(yīng)關(guān)系見(jiàn)表2,實(shí)際上由表2這種編碼規(guī)定可看出,與這種組合方式是一一對(duì)應(yīng)固定不變的。例如:中國(guó)的國(guó)別識(shí)別碼為“690”,因此它的前置符為“6”,左側(cè)數(shù)據(jù)符的奇偶排列為 “OEEEOO”3,“E”表示偶字符,“O”表示奇字符。表2 左側(cè)數(shù)據(jù)符奇偶排列結(jié)合方式前置符左側(cè)數(shù)據(jù)符奇、偶排列前置符左側(cè)數(shù)據(jù)符奇、偶排列0OOOOOO5OEEOOE1OOEOEE6OEEEOO2OOEEOE7OEOEOE3OOEEEO8OEOEEO4OEOOEE9OEEOEO2.4 EAN-13條形碼的校驗(yàn)方法 校驗(yàn)碼的主要作用是防止條形碼標(biāo)志因印刷質(zhì)量低劣或包裝運(yùn)輸中引起
10、標(biāo)志破損而造成掃描設(shè)備誤讀信息。作為確保商品條形碼識(shí)別正確性的必要手段,條形碼用戶在標(biāo)志設(shè)計(jì)完成后,代碼的正確與否直接關(guān)系到用戶的自身利益。對(duì)代碼的驗(yàn)證,校驗(yàn)碼的計(jì)算是標(biāo)志商品質(zhì)量檢驗(yàn)的重要內(nèi)容之一,應(yīng)該謹(jǐn)慎嚴(yán)格,需確定代碼無(wú)誤后才可用于產(chǎn)品包裝上。 下面是EAN-13條形碼的校驗(yàn)碼驗(yàn)算方法,步驟如下3:(1)以未知校驗(yàn)位為第1位,由右至左將各位數(shù)據(jù)順序排隊(duì)(包括校驗(yàn)碼);(2)由第2位開(kāi)始,求出偶數(shù)位數(shù)據(jù)之和,然后將和乘以3,得積;(3)由第3位開(kāi)始,求出奇數(shù)位數(shù)據(jù)之和,得;(4)將和相加得和;(5)用除以10,求得余數(shù),并以10為模,取余數(shù)的補(bǔ)碼,即得校驗(yàn)位數(shù)據(jù)值 ;(6)比較第1位的數(shù)據(jù)
11、值與C的大小,若相等,則譯碼正確,否則進(jìn)行糾錯(cuò)處理。例如,設(shè)EAN-13碼中數(shù)字碼為6901038100578(其中校驗(yàn)碼值為8),該條碼字符校驗(yàn)過(guò)程為:,=+=82,除以10的余數(shù)為2,故,譯碼正確。3 EAN-13條形碼的生成條形碼的生成方法如下3: (1)由根據(jù)表3產(chǎn)生和匹配的字母碼,該字母碼有6個(gè)字母組成,字母限于A和B。表3 映射表0AAAAAA5ABBAAB1AABABB6ABBBAA2AABBAB7ABABAB3AABBBA8ABABBA4ABAABB9ABBABA(20AAAAAA5ABBAAB1AABABB6ABBBAA2AABBAB7ABABAB3AABBBA8ABABBA
12、4ABAABB9ABBABA)將和產(chǎn)生的字母碼按位進(jìn)行搭配,來(lái)產(chǎn)生一個(gè)數(shù)字-字母匹配對(duì)。并通過(guò)查表4生成條形碼的第一數(shù)據(jù)部分。表4 數(shù)字-字母映射表數(shù)字-字母匹配對(duì)二進(jìn)制信息數(shù)字-字母匹配對(duì)二進(jìn)制信息0A00011010B01001110C11100101A00110011B01100111C11001102A00100112B00110112C11011003A01111013B01000013C10000104A01000114B00111014C10111005A01100015B01110015C10011106A01011116B00001016C10100007A01110117B
13、00100017C10001008A01101118B00010018C10010009A00010119B00101119C1110100(3)將和C進(jìn)行搭配,并通過(guò)查表4生成條形碼的第二數(shù)據(jù)部分。(4)按照兩部分?jǐn)?shù)據(jù)繪制條形碼:1對(duì)應(yīng)黑線,0對(duì)應(yīng)白線。例如,假設(shè)一個(gè)條形碼的數(shù)據(jù)碼為:6901038100578。=6,對(duì)應(yīng)的字母碼為ABBBAA,和產(chǎn)生的字母碼按位進(jìn)行搭配結(jié)果為9A、0B、1B、0B、3A、8A,查表4得第一部分?jǐn)?shù)據(jù)的編碼分別為0001011、0100111、0110011、0100111、0111101、0110111;和C進(jìn)行搭配結(jié)果為1C、0C、0C、5C、7C、8C,
14、查表4得第二部分?jǐn)?shù)據(jù)的編碼分別為1100110、1110010、1110010、1001110、1000100、1001000。4 條形碼識(shí)別4.1條碼識(shí)別的基本原理 EAN-13是一種(7, 2)碼,即每個(gè)字符的總寬度為7個(gè)模塊寬,交替由兩個(gè)條和兩個(gè)空組成,而每個(gè)條空的寬度不超過(guò)4個(gè)模塊,如圖4所示。圖片看不清楚?請(qǐng)點(diǎn)擊這里查看原圖(大圖)。圖4 EAN-13條碼寬度的定義圖4中表示當(dāng)前字符中四個(gè)相鄰條、空的寬度,是一個(gè)字符的寬度,滿足:, 為整數(shù);且。 用表示當(dāng)前字符單位模塊的寬度,則。令,。由的值可以得到編碼。例如:若,且條碼的排列為條空條空,則可知當(dāng)前字符的編碼為1000100,是右側(cè)
15、偶字符7。,且條碼的排列為空條空條,則可知當(dāng)前字符的編碼為0001011,是左側(cè)偶字符9。 由于條碼印刷和圖像采集設(shè)備的限制,在圖像采集時(shí)邊緣部分還存在著半像素問(wèn)題,實(shí)際掃描后得到的圖像會(huì)出現(xiàn)一定程度的邊緣模糊,尤其當(dāng)條碼密度較大,條空間距較小時(shí)邊緣模糊更為明顯。邊緣出現(xiàn)模糊時(shí),將導(dǎo)致尋找條空邊緣時(shí)產(chǎn)生一定偏差,當(dāng)這個(gè)偏差超過(guò)半個(gè)模塊寬度時(shí),便會(huì)出現(xiàn)誤碼。如果再考慮到流通過(guò)程中磨損、水漬浸泡等因素引起的圖像缺陷,在這種情況下如果用邊緣檢測(cè)的方法確定條空序列會(huì)大大降低條碼的識(shí)別率。本文采用的方法為:以起始模塊的中心為起始中心、一個(gè)單位模塊寬度為間距來(lái)檢測(cè)條空序列。4.2 條形碼掃描方向的判別 為
16、了能夠正確地解譯條形碼,在解譯條形碼符號(hào)所表示的數(shù)據(jù)之前,需要先進(jìn)行條形碼掃描方向的判別,EAN-13的起始字符和終止字符的編碼結(jié)構(gòu)都是“101”,只能通過(guò)它進(jìn)行碼制的判別(對(duì)于多種條碼識(shí)別的時(shí)候,其它碼制的條碼起始字符和終止字符都不是“101”),但是不能通過(guò)起始字符和終止字符來(lái)判別它的掃描方向。由EAN-13碼的編碼結(jié)構(gòu)可知,它的右側(cè)字符為全偶,而左側(cè)字符的奇偶順序由前置符決定,沒(méi)有全偶的,從而可以利用此原理來(lái)確定EAN-13碼的掃描方向。如果掃描到的前6個(gè)字符為全偶,即為反向掃描,否則為正向掃描。4.3條形碼字符的判別方法 從上述條碼識(shí)別原理知,它的邏輯值可以通過(guò)和單位模塊比較判別。這種
17、方法對(duì)于印刷質(zhì)量很好、沒(méi)有缺陷的條碼很適用,但是對(duì)于條碼印刷質(zhì)量存在缺陷,則不能正確地解譯。因此本文提出了一種解決此類問(wèn)題的較好方法,即相似邊距離測(cè)量方法。圖5條碼字符寬度示圖相似邊距離就是相鄰條和空的寬度之和,如圖5中的,定義的歸一化值和如下:表5列出了正向譯碼時(shí)EAN-13條碼字符值與歸一化值的對(duì)應(yīng)關(guān)系,表6列出了反向譯碼時(shí)EAN-13條碼字符值與歸一化值的對(duì)應(yīng)關(guān)系,其中“E”表示偶字符,“O”表示奇字符。表5 EAN-13條碼字符值與歸一化值的對(duì)應(yīng)關(guān)系(正向譯碼)23452O6EOO4E33E9O2或O8E1或E7O54O9E2或E8O1或O7E55E6O0E4O3表6 EAN-13條碼
18、字符值與歸一化值的對(duì)應(yīng)關(guān)系(反向譯碼)23452E6O0E4O33O9E2或E8O1或O7E54E9O2或O8E1或E7O55O6E0O4E3表7和表8分別為正向譯碼和反向譯碼時(shí)EAN-13條碼編碼與歸一化值的對(duì)應(yīng)關(guān)系。表7 EAN-13條碼編碼與歸一化值的對(duì)應(yīng)關(guān)系(正向譯碼)字符值左奇字符編碼左偶字符編碼右偶字符編碼01234567890001101001100100100110111101010001101100010101111011101101101110001011(5,3)(4,4)(3,3)(5,5)(2,4)(3,5)(2,2)(4,4)(3,3)(4,2)0100111011
19、001100110110100001001110101110010000101001000100010010010111(2,3)(3,4)(4,3)(2,5)(5,4)(4,5)(5,2)(3,4)(4,3)(3,2)1110010110011011011001000010101110010011101010000100010010010001110100(5,3)(4,4)(3,3)(5,5)(2,4)(3,5)(2,2)(4,4)(3,3)(4,2)表8 EAN-13條碼字符值與歸一化值的對(duì)應(yīng)關(guān)系(反向譯碼)字符值左奇字符編碼左偶字符編碼右偶字符編碼0123456789101100010
20、0110011001001011110110001010001101111010110111011101101101000(2,3)(3,4)(4,3)(2,5)(5,4)(4,5)(2,2)(3,4)(4,3)(3,2)1110010110011011011001000010100111010011101010000100010010010001110100(5,3)(4,4)(3,3)(5,5)(2,4)(3,5)(2,2)(4,4)(3,3)(4,2)010011101100110011011010000100111010111001000010100100010001001001011
21、1(2,3)(3,4)(4,3)(2,5)(5,4)(4,5)(5,2)(3,4)(4,3)(3,2) 由表58可以看出,條形碼編碼和歸一化值在多數(shù)情況下呈現(xiàn)一一對(duì)應(yīng)的關(guān)系,只要確定了歸一化值就能確定字符值,但是有四種情況例外。以正向譯碼為例,在表6中,左側(cè)奇字符和右側(cè)偶字符1, 7歸一化值均為44,左側(cè)奇字符和右側(cè)偶字符2, 8歸一化值均為33,左側(cè)偶字符1, 7歸一化值均為34,左側(cè)偶字符2, 8歸一化值均為43,這幾種情況可以根據(jù)字符的條空寬度 進(jìn)一步判別。表9為1728字符標(biāo)準(zhǔn)條空寬度值,其中字符上有“-”的對(duì)應(yīng)條,否則對(duì)應(yīng)空。表9 1728字符標(biāo)準(zhǔn)條空寬度值字符值左奇字符編碼條空寬度
22、值左偶字符編碼條空寬度值右偶字符編碼條空寬度值1001100101100111100110200100110011011110110070111011001000110001008011011100010011001000 根據(jù)表9中各字符條空寬度的特點(diǎn)可知:對(duì)于左側(cè)奇字符、右側(cè)偶字符1和7,可通過(guò)比較與來(lái)判別,若,則為字符1,反之為7;對(duì)于左側(cè)奇字符、右側(cè)偶字符2和8,可通過(guò)比較與來(lái)判別,若,則為字符8,反之為2;對(duì)于左側(cè)偶字符1和7,可通過(guò)比較與來(lái)判別,若,則為字符7,反之為1;對(duì)于左側(cè)偶字符2和8,可通過(guò)比較與來(lái)判別,若,則為字符2,反之為8。 采用相似邊距離歸一化的條碼識(shí)別方法,當(dāng)條碼
23、質(zhì)量存在缺陷使得實(shí)際測(cè)量值和條碼應(yīng)該具有的理論值有較大偏差時(shí),仍能正確解譯。例如對(duì)于左側(cè)奇字符“0”進(jìn)行譯碼,該字符的四個(gè)元素寬度的理論值應(yīng)該是,但是由于印刷等原因的影響,實(shí)際上測(cè)量值是。如果只根據(jù)元素寬度的測(cè)量值進(jìn)行譯碼,那么這四個(gè)元素的寬度測(cè)量值四舍五入取整后分別為3、3、1、1,從而造成譯碼錯(cuò)誤。若采取相似邊距離歸一化的條碼識(shí)別方法進(jìn)行譯碼,此時(shí),由表7知字符編碼為左側(cè)奇字符“0”。可見(jiàn)利用相似邊距離歸一化的條碼識(shí)別方法判別字符值,可以得到比較滿意的效果。4.4糾錯(cuò)處理 采用相似邊距離歸一化的譯碼方法能夠在一定程度上消除條、空誤差對(duì)譯碼識(shí)別的影響。當(dāng)系統(tǒng)誤差特別是條碼印刷誤差較大導(dǎo)致、改
24、變時(shí),譯碼將出錯(cuò)。因此譯碼軟件應(yīng)具有一定的糾錯(cuò)能力,以減少條空寬度值不精確的影響,提高條碼識(shí)別率1。糾錯(cuò)主要從以下兩方面進(jìn)行: (1)如果條碼字符的或在臨界位置,當(dāng)條或空的寬度有誤差時(shí),就會(huì)導(dǎo)致或的整數(shù)值增1或減1。如果和中只有一個(gè)發(fā)生錯(cuò)誤,則引起該字符的奇偶性、字符值的改變,如果和都出錯(cuò),則引起該字符值的改變,但奇偶性未變。實(shí)際情況中第一種現(xiàn)象出現(xiàn)的概率比第二種情況大得多,因此本文主要對(duì)第一種情況進(jìn)行糾錯(cuò)。由表1和表2可知,右側(cè)字符為全偶字符排列,左側(cè)字符有10種奇偶排列,這11種排列構(gòu)成有效的排列集合,把所譯的字符串奇偶排列與有效的奇偶排列對(duì)比,判斷是否為排列集合成員。若是,所譯的字符串不
25、作任何處理;若不是,所譯碼出錯(cuò),并找出或哪個(gè)處在臨界值,修改它的歸一化整數(shù)值,這樣可實(shí)現(xiàn)糾錯(cuò)。 (2)當(dāng)字符數(shù)據(jù)為2、8、1、7時(shí),由于條碼寬度不精確導(dǎo)致誤碼,即2判成8、1判成7,或反之。分析這種誤碼相對(duì)于校驗(yàn)位的差值有一定規(guī)律,因此可利用此規(guī)律進(jìn)行糾錯(cuò)。由EAN-13校驗(yàn)方法知:當(dāng)偶數(shù)位上有2錯(cuò)譯成8或1錯(cuò)譯成7時(shí),計(jì)算得到的實(shí)譯值與校驗(yàn)值差-8或2,反之8錯(cuò)譯成2或7錯(cuò)譯成1時(shí),計(jì)算得到的實(shí)譯值與校驗(yàn)值差8或-2;當(dāng)奇數(shù)位上有2錯(cuò)譯成8或1錯(cuò)譯成7時(shí),計(jì)算得到的實(shí)譯值與校驗(yàn)值差-6或4,反之,8錯(cuò)譯成2或7錯(cuò)譯成1時(shí),計(jì)算得到的實(shí)譯值與校驗(yàn)值差6或-4;當(dāng)然別的字符譯錯(cuò)也可能出現(xiàn)這些差值
26、,但幾率很小,可以不予考慮。這樣若程序校驗(yàn)沒(méi)通過(guò),可加一個(gè)判斷,根據(jù)差值判斷其屬于上述哪種情況,找出出錯(cuò)的字符并糾正。5 程序?qū)崿F(xiàn)5.1 應(yīng)用Visual C+生成條形碼圖像5.1 1 創(chuàng)建工程文件(1)打開(kāi)VC+ 6.0,點(diǎn)擊“File”菜單的“New”菜單項(xiàng),在出現(xiàn)的界面中選定“Projects”欄,點(diǎn)擊“MFC APPWizard(exe)”,工程文件名為Generator。按“確定”按紐,進(jìn)入MFC APPWizard。(2)在MFC APPWizard第一步選擇Single document文檔類型。第二步和第三步按默認(rèn)方式。第四步中去掉“Docking toolbar”、“Init
27、ial status bar”、“Printing and print preview”前面的“”,即不選該三項(xiàng)。然后點(diǎn)擊“Advanced”,在出現(xiàn)的界面中填寫(xiě)“File extension”為“bmp”。第五步和第六步按默認(rèn)方式。最終生成工程Generator。(3)修改菜單。增加“操作”菜單;刪除“編輯”菜單;修改“幫助”菜單。參見(jiàn)工程文件。(4)插入兩個(gè)對(duì)話框(IDD_WELCOME、IDD_GIVECODE)并修改這兩個(gè)對(duì)話框。參見(jiàn)工程文件。5.1.2 類代碼編制(1)在Generator工程中增加新類CWelcomeDlg,類型為Generic Class。(2)在Generato
28、r工程中增加新類CGiveCodeDlg,類型為Generic Class。(3)點(diǎn)擊“View”菜單的“ClassWizard”菜單項(xiàng),在出現(xiàn)的界面中,選擇Class Name為“, CGeneratorView”,增加成員函數(shù),Object Ids、Messages、Member functions分別為:ID_EDIT_GIVE、COMMAND、ON_ID_EDIT_GIVE:COMMAND;ID_FILE_SAVE、COMMAND、ON_ID_FILE_SAVE。(4)給類GeneratorView添加成員變量,參見(jiàn)源程序Generatorview.h。(5)打開(kāi)文件Generator
29、View.h,增加代碼,參見(jiàn)源程序。打開(kāi)文件GeneratorView.cpp,增加代碼,參見(jiàn)源程序。(6)點(diǎn)擊“View”菜單的“ClassWizard”菜單項(xiàng),在出現(xiàn)的界面中,選擇Class Name為“CWelcomeDlg”,增加成員函數(shù),Object Ids、Messages、Member functions分別為:IDOK、BN_CLICKED、OnOK()。(7)點(diǎn)擊“View”菜單的“ClassWizard”菜單項(xiàng),在出現(xiàn)的界面中,選擇Class Name為“CMainFrame”,增加成員函數(shù),Object Ids、Messages、Member functions分別為:C
30、mainFrame、WM_CREATE、OnCreate()。(8)打開(kāi)文件MainFrame.cpp,增加“#include WelcomeDlg.h”,輸入代碼,參見(jiàn)源程序。(9)打開(kāi)GeneratorView.cpp源文件,增加語(yǔ)句“#include GiveCodeDlg.h ,#inc, lude GiveSizeDlg.h, #include ,#include ”,輸入成員函數(shù)代碼,參見(jiàn)源程序。(10)編譯、連接、運(yùn)行。5.2 應(yīng)用Visual C+識(shí)別條形碼圖像5.2.1創(chuàng)建工程文件(1)打開(kāi)VC+ 6.0,點(diǎn)擊“File”菜單的“New”菜單項(xiàng),在出現(xiàn)的界面中選定“Projects”欄,點(diǎn)擊“MFC APPWizard(exe)”,工程文
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023-2029年中國(guó)壓合板行業(yè)市場(chǎng)調(diào)查研究及發(fā)展戰(zhàn)略規(guī)劃報(bào)告
- 2025年中國(guó)雄安新區(qū)建設(shè)行業(yè)市場(chǎng)運(yùn)行現(xiàn)狀及投資規(guī)劃建議報(bào)告
- 2025年中國(guó)油炸面食行業(yè)發(fā)展趨勢(shì)預(yù)測(cè)及投資戰(zhàn)略咨詢報(bào)告
- 2022-2027年中國(guó)SLG頁(yè)游市場(chǎng)前景預(yù)測(cè)及行業(yè)投資潛力預(yù)測(cè)報(bào)告
- 中國(guó)汽車外飾行業(yè)發(fā)展?jié)摿Ψ治黾巴顿Y方向研究報(bào)告
- 2025年 育嬰員中級(jí)理論考試練習(xí)試題附答案
- 2025年中國(guó)起重設(shè)備安裝行業(yè)市場(chǎng)前景預(yù)測(cè)及投資價(jià)值評(píng)估分析報(bào)告
- 2025年 貴州貴陽(yáng)烏當(dāng)區(qū)水務(wù)管理局公益性崗位招聘考試筆試試題附答案
- 2025年 獨(dú)山縣中醫(yī)醫(yī)院招聘考試筆試試題附答案
- 2025年年人臉識(shí)別項(xiàng)目申請(qǐng)報(bào)告
- 學(xué)習(xí)解讀《水利水電建設(shè)工程驗(yàn)收規(guī)程》SLT223-2025課件
- 應(yīng)急第一響應(yīng)人理論考試試卷(含答案)
- DZ∕T 0213-2020 礦產(chǎn)地質(zhì)勘查規(guī)范 石灰?guī)r、水泥配料類(正式版)
- 會(huì)計(jì)知識(shí)大賽初賽題庫(kù)
- 《電路分析基礎(chǔ)》試題及答案
- 生物多樣性影響評(píng)價(jià)規(guī)范
- E16型超速保護(hù)系統(tǒng)的特點(diǎn)與使用
- 日本文學(xué)概論1
- 《鐵路貨車運(yùn)用維修規(guī)程》2018年10月
- 關(guān)口電能計(jì)量裝置管理辦法
- 公交站臺(tái)候車亭施工設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論