【加試題】條形碼是按照一定編碼規則排列的圖形標識符.如圖所示,條形碼下方數字左邊12位代表信息,最右邊一位是校驗碼.校驗碼產生方法如下:
①把條形碼下方數字從右往左依次編序號為“1,2,3,4…”;
②從序號2開始把所有偶數序號位上的數相加求和,并乘以3;
③從序號3開始把所有奇數序號上的數相加求和;
④把第②和第③步結果相加求和;
⑤10減去第④步結果的個位數,得出校驗碼(如果差值為10,則校驗碼為0);
如條形碼的數字為:977167121601X(X為校驗碼),則校驗碼主要產生步驟如下:
1)(1+6+2+7+1+7)×3=72
2)0+1+1+6+7+9=24
3)72+24=96
4)10-6=4
所以最后校驗碼X=4,此條形碼數字為9771671216014.
小何為此編寫了VB程序,用以驗證條形碼輸入正確與否.程序運行時,從文本框Text1獲取條形碼數字部分,單擊按鈕Command1后,在列表框List1中輸出結果.實現上述功能的VB代碼如下,但加框處代碼有錯,請改正.
Private Sub Command1_Click ( ?。?br />Dim i As Integer,b As String,Lb As Integer
Dim s1As Integer,s2As Integer,tmp As Integer
Dim c As String
Dim d(1To 13)As Integer'存儲數據
Dim res As String'存儲結果
b=Text1.Text'輸入
Lb=Len(b)
s1=0:s2=0
flag=True
res=“輸入錯誤!”
If Lb=13Then
For i=1To 13
c=Mid(b,Lb-i+1,1)
If c>=“0”And c<=“9”Then
d(i)=Val(c)'輸入轉換
Else
flag=False:Exit For
End If
Next i
If flag Then
For i=2To Lb Step 2
s1=s1+d(i)'參數計算1
s2=
'參數計算2 ①
Next i
tmp=s1*3+s2
If tmp
Then res=“輸入正確!”②
End If
End If
List1.AddItem res
End Sub.
【考點】進入VB程序設計環境;設計應用程序的界面.
【答案】見試題解答內容
【解答】
【點評】
聲明:本試題解析著作權屬菁優網所有,未經書面同意,不得復制發布。
發布:2024/4/20 14:35:0組卷:5引用:1難度:0.1
相似題
-
1.根據前面幾題的分析發現,部分社團的選報人數超過了 40 人,由于人數太多不便于開展活動,學校團委決定將人數超過 40 人的社團隨機分成兩個班。小北使用鏈式結構實現了該分班功能?,F以對“MULA 商社”進行分班為例(“MULA 商社.xlsx”文件截圖如第 15 題圖c 所示),具體實現程序如下,請在橫線處填入合適的代碼。
import pandas as pd
importrandom
df=pd.read_excel(“MULA 商社.xlsx“)
namelist=df.values.jye.ai( ?。?將數據轉換成列表
#將數據轉換成列表后,namelist=[[101,“鄧**“,“MULA 商社“],?]
k=0
data=[[““fori in range(2)]for j in range(len(namelist))]
foriteminnamelist:#初始化鏈表結構
data[k][0]=item
data[k][1]=k+1
k+=1
①
head=0
n=length=len(data)#每次抽取時剩余人數
namelist1=[]
namelist2=[]
foriinrange(n//2+1):#生成 MULA 商社 1 班名單
t=random.randint(0,length-1)
p=head
q=data[p][1]
ift==0:
namelist1.jye.ai(data[head][0])
②
else:
while t!=1:#從頭節點開始查找第 t 個節點所在位置
p=q
q=data[p][1]
t=t-1
namelist1.jye.ai(data[q][0])
③
length=length-1
#生成MULA 商社 2 班名單及將生成的兩份名單保存成電子表格文件,代碼略發布:2024/6/27 10:35:59組卷:1引用:1難度:0.3 -
2.小葉使用VB編寫程序,功能如下:在文本框Text1中輸入一個二進制或十六進制數,單擊“轉換”按鈕Command1,在文本框Text2中顯示該數對應的十進制數。程序運行界面如圖所示。
(1)實現上述功能的VB程序如下,請在橫線處填上合適的代碼。
(2)運行程序,在文本框Text1中輸入A2H,則在文本框Text2中顯示發布:2024/6/27 10:35:59組卷:0引用:1難度:0.4 -
3.編寫VB程序,功能是根據A城和B城同一時間段內的溫度數據,計算兩城溫差(A城溫度-B城溫度)A城數據和B城數據分別為包含若干個記錄的序列,其中,A城每個記錄包含溫度及其截止時間,B城每個記錄包含溫度及其持續時長。兩城溫差計算結果表示為若干個記錄的序列,每個記錄包含溫差及其持續時長。持續時長是指同一溫度(或溫差)保持不變的最大時長。示例見下表。
時間 第1小時 第2小時 第3小時 第4小時 第5小時 第6小時 第7小時 A城溫度 30 30 33 33 31 31 32 A城數據 溫度 30 33 31 32 截止時間 2 4 6 7 B城溫度 20 20 20 22 21 21 22 B城數據 溫度 20 22 21 22 持續時長 3 1 2 1 計算結果 溫差 10 13 11 10 持續時長 2 1 1 3
表中,A城數據有4個記錄,其中第1個記錄為(溫度30,截止時間2),第2個記錄為(溫度33,截止時間4),這表明從開始到第2小時的溫度都是30,此后到第4小時的溫度都是33.B城數據有4個記錄,其中第3個記錄為(溫度21,持續時長2),這表明第5、第6這2個小時的溫度都是21.兩城溫差計算結果的第4個記錄為(溫差10,持續時長3),這表明第5、第6、第7這3個小時的溫差都是10。
(1)若將示例中A城數據修改為3個記錄,依次是(溫度30,截止時間4)、(溫度31,截止時間6)、(溫度32,截止時間7),B城數據不變,則兩城溫差計算結果中第1個記錄為(溫差10,持續時長
(2)實現上述功能的VB程序如下,請在橫線處填入合適的代碼。
Const m=1000'溫度數據和溫差數據包含的記錄數都少于1000
Dim na As Integer,nb as integer'A、B城數據分別有na和nb個記錄
Dim ha(m)As Integer'ha(i)存儲A城第i個記錄中的溫度
Dim ta(m)As Integer'ta(i)存儲A城第i個記錄中的截止時間
Dim hb(m)As Integer'hb(i)存儲B城第i個記錄中的溫度
Dim tb(m)As Integer'tb(i)存儲B城第i個記錄中的持續時長
Dim h(m)As Integer'h(i)存儲計算結果第i個記錄中的溫差
Dim t(m)As Integer't(i)存儲計算結果第i個記錄中的持續時長
Private Sub Command l _Click ( ?。?br />Dim i As Integer,j As Integer
Dim p0 As Integer,p1 As Integer,diff As Integer
Dim n As Integer'兩城溫差數據的記錄個數
'讀取兩城數據,存入變量na,nb及數組ha,ta,hb,tb中,代碼略
For i=2 To nb
tb(i)=①'將B城第i個記錄中的持續時長轉換為截止時間
Next i
i=1:j=1
n=0
p0=0
Do While i<na And i<=nb
diff ha(i)-hb(j)
pl=ta(i)
If ②Then i=i+1
If p1>=tb (j) Then
pl=tb(i)
j=j+1
End if
If n=0 Or diff<>h(n) Then
n=n+l
h(n)=diff
t(n)=pl-p0
Else
③
End If
p0=pl
Loop
'輸出兩城溫差數據,代碼略
End Sub發布:2024/6/27 10:35:59組卷:10引用:1難度:0.1