【加试题】某校开展“七选三”选课调查,选课数据存数据库文件“student.jye.ai”中,如图a所示.“选课”字段存储7位“0”、“1”组成的数串,每位对应一个科目,从左往右依次为“物化生政史地技”,“1”
表示选择,“0”表示未选择,如“1110000”表示选择科目“物化生”.小吴设计了一个VB程序统计全校选课情况,功能如下:程序启动时从数据库中读入全校学生的学籍辅号、姓名、班级、选课信息,处理后在列表框List1中显示,单击“选课统计”按钮Commandl,在列表框List2中按选课人数从高到低输出各选课组及人数.程序界面如图b所示(学籍辅号和姓名的部分内容不显示).
实现上述功能的VB程序如下,请回答下列问题:
(1)若某记录“选课”字段值为“1100001”,则该生的选课科目是 物化技物化技.
(2)请在横线处填上合适的代码.
Const max=1000
Const s=“物化生政史地技”
Dim n As Integer'存放学生人数
Dim xjfh(1To max)As String,xmm(1To max)As string
'数组bj存放学生班级,数组xk存储学生的选课标志
Dim zh(1 To 35)As string,tj(1 To 35)As Integer
'数组zh存储不同选课组合,数组tj存储某一组合选课的学生数
Function adj(a As String,n As Integer)As string
'函数功能:在被显示数据之后添加上合适的空格,代码略
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( )
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
'剩余部分代码略
功能:产生35种选课组合的“0”“1”数串,存数组zh,;数组tj各元素初始化为0.
End Sub
Private Sub Commandl-Click( )
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.
【考点】进入VB程序设计环境.
【答案】物化技;①;②;③
【解答】
【点评】
声明:本试题解析著作权属菁优网所有,未经书面同意,不得复制发布。
发布:2024/4/20 14:35:0组卷:0引用:1难度:0.3
相似题
-
1.编写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 ( )
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 -
2.根据前面几题的分析发现,部分社团的选报人数超过了 40 人,由于人数太多不便于开展活动,学校团委决定将人数超过 40 人的社团随机分成两个班。小北使用链式结构实现了该分班功能。现以对“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 -
3.小叶使用VB编写程序,功能如下:在文本框Text1中输入一个二进制或十六进制数,单击“转换”按钮Command1,在文本框Text2中显示该数对应的十进制数。程序运行界面如图所示。
(1)实现上述功能的VB程序如下,请在横线处填上合适的代码。
(2)运行程序,在文本框Text1中输入A2H,则在文本框Text2中显示发布:2024/6/27 10:35:59组卷:0引用:1难度:0.4