c語言的條形碼,條形碼函數代碼

本文目錄一覽:

輸入一個條碼判斷是不是教材教材的條碼規則為長度13位前綴9787用c語言編程求解答

按照問題,程序應包含以下功能:

一、條碼字元串輸入及驗證。

二、前綴字元串和條碼字元串比較,方法很多:

1、可遍歷字元串單字元比較。

2、將條碼字元串第5個字元置0,然後用strcmp函數比較。

3、在輸入條碼字元串同時驗證前4位的輸入。

下面用兩種方式代碼演示:

#includestdio.h

#includestring.h

#define M 13//條碼最大位數

#define N 4//規則前綴位數

#define NS “9787”//前綴,位數必須與N對應

int inputAndCheck(char str1[],char str2[]);//方法一:輸入的同時比較(自帶位數限制)。是返回1,不是返回0

int checkStr(char str1[],char str2[]);//方法二:輸入後比較用字元串函數比較(自帶位數檢測,小於M位返回0,多餘13位截取),是返回1,不是返回0

int main()

{

  char s1[N+1]=NS,s2[M+1]={0};

  printf(“方法一:輸入同時比較\n”);

  if(inputAndCheck(s1,s2))printf(“前%d位字元%s是教材條碼\n”,M,s2);

  else printf(“前%d位字元%s不是是教材條碼\n”,M,s2);

  printf(“\n方法二:輸入後比較用字元串函數比較\n”);

  memset(s2,0,sizeof(char)*(M+1));//同一個變數用於兩種方法演示,這裡清空一下,實際代碼可刪除!!

  printf(“演示用的scanf函數輸入,請不要超出%d位:”,M),scanf(“%s”,s2);//注意:checkStr函數會檢測參數長度,但這裡用scanf輸入,其本身不能數組越界

  if(checkStr(s1,s2))printf(“前%d位字元%s是教材條碼\n”,M,s2);

  else printf(“前%d位字元%s不是是教材條碼\n”,M,s2);

  return 0;

}

int checkStr(char str1[],char str2[])

{

  char cSave;

  int flag=0;

  if(strlen(str2)M) return flag;

  cSave=str2[N];

  str2[N]=0;

  flag=strcmp(str1,str2);

  str2[N]=cSave;

  str2[M]=0;//多餘截取

  return !flag;

}

int inputAndCheck(char str1[],char str2[])

{

  int i=0,flag=1;

  printf(“輸入13位(多餘位數將被忽略):”);

  while(iM)

  {

      str2[i]=getchar();

      if(str2[i]==’\n’) continue;//位數不足,跳過回車鍵繼續輸入

      if(iN str1[i]!=str2[i]) flag=0;

      i++;

  }

  str2[M]=0;

  while(getchar()!=’\n’);//清空輸入緩存,避免干擾後續字元串輸入

  return flag;

}

怎麼樣用C語言做條形碼

就是生成一組數字,把數字列印出來就ok了,不過具體是有難度的沒用c沒寫過這個

c語言!!!怎樣用char來編13位的barcode啊?

商品條碼數字的含義:

以條形碼 693-69838-0001-3 為例

此條形碼分為4個部分,從左到右分別為:

1-3位:共3位,對應該條碼的693,是中國的國家代碼之一。(690–695都是中國的代碼,由國際上分配);

4-8位:共5位,對應該條碼的69838,代表著生產廠商代碼,由廠商申請,國家分配;

9-12位:共4位,對應該條碼的0001,代表著廠內商品代碼,由廠商自行確定;

第13位:共1位,對應該條碼的3,是校驗碼,依據一定的演算法,由前面12位數字計算而得到。第13位的計算方法:把條形碼從右往左依次編序號為「……4,3,2,1。」從序號二開始把所有偶數序號位上的數相加求和,用求出的和乘3,再從序號三開始把所有奇數序號上的數相加求和,用求出的和加上剛才偶數序號上的數的和乘3的積,然後得出和。再用大於這個和的最小的10的倍數減去這個和,就得出校驗碼。

所以,編寫barcode前12位是輸入的要從其他的地方獲取,只有第13位需要計算,程序應該為:(已經經過運行是可行的)

#includestdio.h

main()

{char c[15];

int i,dan,sh;

printf(“請輸入前12位:\n”);

scanf(“%s”,c);

for(i=0;i12;i++)

{

if(c[i]48||c[i]57){printf(“輸入出錯.”);break;} \*計算第13位*\

if(i%2==1)

dan+=c[i]-48;

else sh+=c[i]-48;}

sh=sh*3+dan;

c[12]=(10-sh%10)+48;

for(i=0;i13;i++) \*輸出*\

{if(i==3||i==8||i==12)printf(“-“);

printf(“%c”,c[i]);

}

printf(“\n”);

}

如亂的輸入:

#includestdio.h

main()

{char c[20];

int i,dan,sh;

printf(“請輸入:\n”);

scanf(“%s”,c);

for(i=0;i!=’\0′;i++) \*清除非0~9的數字*\

if(c[i]48||c[i]57)c[i]=c[++i];

for(i=0;i12;i++) \*計算第13位*\

{

if(c[i]48||c[i]57){c[i]=c[++i];break;}

if(i%2==1)

dan+=c[i]-48;

else sh+=c[i]-48;}

sh=sh*3+dan;

c[12]=(10-sh%10)+48;

for(i=0;i13;i++) \*輸出*\

{if(i==3||i==8||i==12)printf(“-“);

printf(“%c”,c[i]);

}

printf(“\n”);

}

怎樣用C語言做一個條形碼

一、條形碼的讀取

用過鍵盤口式的掃條碼工具的朋友就知道,它就如同在鍵盤上按下數字鍵一樣,基本不需任何編程和處理。但如果你使用的是其它介面的話,可能你就要為該設備編寫通訊代碼了。以下有一段簡單的25針串口的條碼讀取器通訊代碼。

Option Explicit

Dim sData As String

Private Sub Form_Load()

With MSComm1

.CommPort = 3 ‘設為COM3,試運行的系統而定,你可提供一個Combox讓用戶選擇。

.PortOpen = True ‘打開通訊埠

End With

End Sub

Private Sub MSComm1_OnComm()

Dim EndPos As Integer

Select Case MSComm1.CommEvent

Case comEvReceive ‘當有數據傳送過來時

sData = sData Trim(MSComm1.Input)

‘檢索回車,通常讀卡機每組數據結尾都返回一個回車作為結束符

EndPos = InStr(1, sData, Chr(13))

If EndPos = 0 Then ‘如果未結束就繼續努力

Else ‘讀完一組。

lblBarCode.Caption = sData ‘顯示一組條形碼

With lstBarCode

.AddItem Mid(sData, 1, EndPos – 1) ‘添加一組條形碼到列表

End With

sData = “” ‘清空

End If

End Select

End Sub

Private Sub cmdEnd_Click()

MSComm1.PortOpen = False ‘關閉埠

End

End Sub

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/188368.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-28 13:29
下一篇 2024-11-28 13:29

相關推薦

  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • Python字元串寬度不限制怎麼打代碼

    本文將為大家詳細介紹Python字元串寬度不限制時如何打代碼的幾個方面。 一、保持代碼風格的統一 在Python字元串寬度不限制的情況下,我們可以寫出很長很長的一行代碼。但是,為了…

    編程 2025-04-29
  • Python中capitalize函數的使用

    在Python的字元串操作中,capitalize函數常常被用到,這個函數可以使字元串中的第一個單詞首字母大寫,其餘字母小寫。在本文中,我們將從以下幾個方面對capitalize函…

    編程 2025-04-29
  • Python基礎代碼用法介紹

    本文將從多個方面對Python基礎代碼進行解析和詳細闡述,力求讓讀者深刻理解Python基礎代碼。通過本文的學習,相信大家對Python的學習和應用會更加輕鬆和高效。 一、變數和數…

    編程 2025-04-29
  • Python中set函數的作用

    Python中set函數是一個有用的數據類型,可以被用於許多編程場景中。在這篇文章中,我們將學習Python中set函數的多個方面,從而深入了解這個函數在Python中的用途。 一…

    編程 2025-04-29
  • 單片機列印函數

    單片機列印是指通過串口或並口將一些數據列印到終端設備上。在單片機應用中,列印非常重要。正確的列印數據可以讓我們知道單片機運行的狀態,方便我們進行調試;錯誤的列印數據可以幫助我們快速…

    編程 2025-04-29
  • 三角函數用英語怎麼說

    三角函數,即三角比函數,是指在一個銳角三角形中某一角的對邊、鄰邊之比。在數學中,三角函數包括正弦、餘弦、正切等,它們在數學、物理、工程和計算機等領域都得到了廣泛的應用。 一、正弦函…

    編程 2025-04-29
  • Python3定義函數參數類型

    Python是一門動態類型語言,不需要在定義變數時顯示的指定變數類型,但是Python3中提供了函數參數類型的聲明功能,在函數定義時明確定義參數類型。在函數的形參後面加上冒號(:)…

    編程 2025-04-29
  • AES加密解密演算法的C語言實現

    AES(Advanced Encryption Standard)是一種對稱加密演算法,可用於對數據進行加密和解密。在本篇文章中,我們將介紹C語言中如何實現AES演算法,並對實現過程進…

    編程 2025-04-29

發表回復

登錄後才能評論