【加試題】某校開展“七選三”選課調(diào)查,選課數(shù)據(jù)存數(shù)據(jù)庫(kù)文件“student.jye.ai”中,如圖a所示.“選課”字段存儲(chǔ)7位“0”、“1”組成的數(shù)串,每位對(duì)應(yīng)一個(gè)科目,從左往右依次為“物化生政史地技”,“1”
表示選擇,“0”表示未選擇,如“1110000”表示選擇科目“物化生”.小吳設(shè)計(jì)了一個(gè)VB程序統(tǒng)計(jì)全校選課情況,功能如下:程序啟動(dòng)時(shí)從數(shù)據(jù)庫(kù)中讀入全校學(xué)生的學(xué)籍輔號(hào)、姓名、班級(jí)、選課信息,處理后在列表框List1中顯示,單擊“選課統(tǒng)計(jì)”按鈕Commandl,在列表框List2中按選課人數(shù)從高到低輸出各選課組及人數(shù).程序界面如圖b所示(學(xué)籍輔號(hào)和姓名的部分內(nèi)容不顯示).
實(shí)現(xiàn)上述功能的VB程序如下,請(qǐng)回答下列問(wèn)題:
(1)若某記錄“選課”字段值為“1100001”,則該生的選課科目是 物化技物化技.
(2)請(qǐng)?jiān)跈M線處填上合適的代碼.
Const max=1000
Const s=“物化生政史地技”
Dim n As Integer'存放學(xué)生人數(shù)
Dim xjfh(1To max)As String,xmm(1To max)As string
'數(shù)組bj存放學(xué)生班級(jí),數(shù)組xk存儲(chǔ)學(xué)生的選課標(biāo)志
Dim zh(1 To 35)As string,tj(1 To 35)As Integer
'數(shù)組zh存儲(chǔ)不同選課組合,數(shù)組tj存儲(chǔ)某一組合選課的學(xué)生數(shù)
Function adj(a As String,n As Integer)As string
'函數(shù)功能:在被顯示數(shù)據(jù)之后添加上合適的空格,代碼略
End Function
Function convert(x As String)As String
Dim i As Integer,st As String
st=““
For i=1 To Len(x)
If Mid(x,i,1)=“1“Then st=st+Mid(s,i,1)
Next i
convert=st
End Function
Private Sub Form-Load( ?。?br /> Dim i As Integer,km As String
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
conn.Connection String=“Provider=microsoft.ace.jye.ai.12.0;data source=“+App.Path
+“\student.jye.ai“
conn.Open
Set rs.ActiveConnection=conn
rs.Open“select*from stu-info“
n=0
Do while Not rs.EOF
n=n+1
xjfh(n)=rs.Fields(0):xm(n)=rs.Fields(1)
bj(n)=rs.Fields(2):xk(n)=rs.Fields(3)
①①
List1,AddItem xjfh(n)+adj(xm(n),4)+adj(Str(bj(n)),4)+adj(km,6)
rs.MoveNext
Loop
'剩余部分代碼略
功能:產(chǎn)生35種選課組合的“0”“1”數(shù)串,存數(shù)組zh,;數(shù)組tj各元素初始化為0.
End Sub
Private Sub Commandl-Click( ?。?br /> Dim i As Integer,j As Integer,temp2 As Integer,temp1 As Integer
For i=1 To 35
For j=1 To n
If xk(j)=zh(i) Then ②②
Next j
Next i
For i=1 To 34
For j=35 To i+1 Step-1
If ③③Then
temp1=zh(j):zh(j)=zh(j-1):zh(j-1)=temp1
temp2=tj(j):tj(j)=tj(j-1):tj(j-1)=temp2
End If
Next j
Next i
For i=1 To 35
List2.Str(i)+adj(convert(zh(i)),6)+adj(Str(tj(i)),6)
Next i
End Sub.
【考點(diǎn)】進(jìn)入VB程序設(shè)計(jì)環(huán)境.
【答案】物化技;①;②;③
【解答】
【點(diǎn)評(píng)】
聲明:本試題解析著作權(quán)屬菁優(yōu)網(wǎng)所有,未經(jīng)書面同意,不得復(fù)制發(fā)布。
發(fā)布:2024/4/20 14:35:0組卷:0引用:1難度:0.3
相似題
-
1.編寫VB程序,功能是根據(jù)A城和B城同一時(shí)間段內(nèi)的溫度數(shù)據(jù),計(jì)算兩城溫差(A城溫度-B城溫度)A城數(shù)據(jù)和B城數(shù)據(jù)分別為包含若干個(gè)記錄的序列,其中,A城每個(gè)記錄包含溫度及其截止時(shí)間,B城每個(gè)記錄包含溫度及其持續(xù)時(shí)長(zhǎng)。兩城溫差計(jì)算結(jié)果表示為若干個(gè)記錄的序列,每個(gè)記錄包含溫差及其持續(xù)時(shí)長(zhǎng)。持續(xù)時(shí)長(zhǎng)是指同一溫度(或溫差)保持不變的最大時(shí)長(zhǎng)。示例見下表。
時(shí)間 第1小時(shí) 第2小時(shí) 第3小時(shí) 第4小時(shí) 第5小時(shí) 第6小時(shí) 第7小時(shí) A城溫度 30 30 33 33 31 31 32 A城數(shù)據(jù) 溫度 30 33 31 32 截止時(shí)間 2 4 6 7 B城溫度 20 20 20 22 21 21 22 B城數(shù)據(jù) 溫度 20 22 21 22 持續(xù)時(shí)長(zhǎng) 3 1 2 1 計(jì)算結(jié)果 溫差 10 13 11 10 持續(xù)時(shí)長(zhǎng) 2 1 1 3
表中,A城數(shù)據(jù)有4個(gè)記錄,其中第1個(gè)記錄為(溫度30,截止時(shí)間2),第2個(gè)記錄為(溫度33,截止時(shí)間4),這表明從開始到第2小時(shí)的溫度都是30,此后到第4小時(shí)的溫度都是33.B城數(shù)據(jù)有4個(gè)記錄,其中第3個(gè)記錄為(溫度21,持續(xù)時(shí)長(zhǎng)2),這表明第5、第6這2個(gè)小時(shí)的溫度都是21.兩城溫差計(jì)算結(jié)果的第4個(gè)記錄為(溫差10,持續(xù)時(shí)長(zhǎng)3),這表明第5、第6、第7這3個(gè)小時(shí)的溫差都是10。
(1)若將示例中A城數(shù)據(jù)修改為3個(gè)記錄,依次是(溫度30,截止時(shí)間4)、(溫度31,截止時(shí)間6)、(溫度32,截止時(shí)間7),B城數(shù)據(jù)不變,則兩城溫差計(jì)算結(jié)果中第1個(gè)記錄為(溫差10,持續(xù)時(shí)長(zhǎng)
(2)實(shí)現(xiàn)上述功能的VB程序如下,請(qǐng)?jiān)跈M線處填入合適的代碼。
Const m=1000'溫度數(shù)據(jù)和溫差數(shù)據(jù)包含的記錄數(shù)都少于1000
Dim na As Integer,nb as integer'A、B城數(shù)據(jù)分別有na和nb個(gè)記錄
Dim ha(m)As Integer'ha(i)存儲(chǔ)A城第i個(gè)記錄中的溫度
Dim ta(m)As Integer'ta(i)存儲(chǔ)A城第i個(gè)記錄中的截止時(shí)間
Dim hb(m)As Integer'hb(i)存儲(chǔ)B城第i個(gè)記錄中的溫度
Dim tb(m)As Integer'tb(i)存儲(chǔ)B城第i個(gè)記錄中的持續(xù)時(shí)長(zhǎng)
Dim h(m)As Integer'h(i)存儲(chǔ)計(jì)算結(jié)果第i個(gè)記錄中的溫差
Dim t(m)As Integer't(i)存儲(chǔ)計(jì)算結(jié)果第i個(gè)記錄中的持續(xù)時(shí)長(zhǎng)
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'兩城溫差數(shù)據(jù)的記錄個(gè)數(shù)
'讀取兩城數(shù)據(jù),存入變量na,nb及數(shù)組ha,ta,hb,tb中,代碼略
For i=2 To nb
tb(i)=①'將B城第i個(gè)記錄中的持續(xù)時(shí)長(zhǎng)轉(zhuǎn)換為截止時(shí)間
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
'輸出兩城溫差數(shù)據(jù),代碼略
End Sub發(fā)布:2024/6/27 10:35:59組卷:10引用:1難度:0.1 -
2.根據(jù)前面幾題的分析發(fā)現(xiàn),部分社團(tuán)的選報(bào)人數(shù)超過(guò)了 40 人,由于人數(shù)太多不便于開展活動(dòng),學(xué)校團(tuán)委決定將人數(shù)超過(guò) 40 人的社團(tuán)隨機(jī)分成兩個(gè)班。小北使用鏈?zhǔn)浇Y(jié)構(gòu)實(shí)現(xiàn)了該分班功能?,F(xiàn)以對(duì)“MULA 商社”進(jìn)行分班為例(“MULA 商社.xlsx”文件截圖如第 15 題圖c 所示),具體實(shí)現(xiàn)程序如下,請(qǐng)?jiān)跈M線處填入合適的代碼。
import pandas as pd
importrandom
df=pd.read_excel(“MULA 商社.xlsx“)
namelist=df.values.jye.ai( ?。?將數(shù)據(jù)轉(zhuǎn)換成列表
#將數(shù)據(jù)轉(zhuǎn)換成列表后,namelist=[[101,“鄧**“,“MULA 商社“],?]
k=0
data=[[““fori in range(2)]for j in range(len(namelist))]
foriteminnamelist:#初始化鏈表結(jié)構(gòu)
data[k][0]=item
data[k][1]=k+1
k+=1
①
head=0
n=length=len(data)#每次抽取時(shí)剩余人數(shù)
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:#從頭節(jié)點(diǎn)開始查找第 t 個(gè)節(jié)點(diǎn)所在位置
p=q
q=data[p][1]
t=t-1
namelist1.jye.ai(data[q][0])
③
length=length-1
#生成MULA 商社 2 班名單及將生成的兩份名單保存成電子表格文件,代碼略發(fā)布:2024/6/27 10:35:59組卷:1引用:1難度:0.3 -
3.小葉使用VB編寫程序,功能如下:在文本框Text1中輸入一個(gè)二進(jìn)制或十六進(jìn)制數(shù),單擊“轉(zhuǎn)換”按鈕Command1,在文本框Text2中顯示該數(shù)對(duì)應(yīng)的十進(jìn)制數(shù)。程序運(yùn)行界面如圖所示。
(1)實(shí)現(xiàn)上述功能的VB程序如下,請(qǐng)?jiān)跈M線處填上合適的代碼。
(2)運(yùn)行程序,在文本框Text1中輸入A2H,則在文本框Text2中顯示發(fā)布:2024/6/27 10:35:59組卷:0引用:1難度:0.4