题型:综合题 题类:模拟题 难易度:困难
浙江省名校信息技术仿真训练卷(四)
⑴根据每试场安排的人数,判断输入的试场号是否在试场总数范围内,若是则转到⑵,否则重输试场号;
⑵根据考生次序和试场人数,计算每一考生所在试场号存入数组sc;
⑶计算考生在本试场中的次序,再根据试场安排的排数,计算考生座位所在的组数和排数,分别存人数组z和数组P。座位分布为“S”形,奇数组和偶数组座位排列顺序不同。
根据以上算法编写VB程序,在文本框Text1中输入组数,在文本框Text2中输入排数,在文本框Text3中输入试场号,单击“查询”按钮Command1,在List1中显示该试场座位表(名字前的数字是考生在名单中的次序),运行界面如图2所示。
Dim xm(1 To 1 000)As String
Dim n As Integer
Private Sub Form_Load()
‘本过程从数据库中读取考生姓名存储在xm数组,考生人数存储在n变量中,代码略
End Sub
Function qxs(a As Single)As Integer
qxs=Abs(Int(a*(-1))
End Function
Private Sub Command1_Click()
Dim X As Integer,i As Integer,k As Integer,num As Integer
Dim sc(1 To 1 000)As Integer ‘存储考生所在试场号
Dim z(1 To 1 000)As Integer ‘存储考生座位所在的组数
Dim p(1 To 1 000)As Integer ‘存储考生座位所在的排数
sc_z=Val(Text1.Text) ‘存储试场安排的组数
sc_p=Val(Text2.Text) ‘存储试场安排的排数
‘list1中输入“讲台”字样,代码略
num= sc_z*sc_p
x=Val(Text3.Text)
If x>0 And ① Then
For i=1To n
sc(i)=qxs(i/num)
k=i Mod num
z(i)=qxs(k/sc_p)
If k<>0 Then
If z(i)Mod 2=1 Then
p(i)=k-(z(i)-1)* sc_P
Else
p(i)= ② -(k-(z(i)-1)* sc_p)
End If
Else
z(i)= sc_z
If z(i)Mod 2=0 Then p(i)=1 Else ③
End If
Next i
‘本过程实现在List1中显示x试场座位表,代码略
Else
MsgBox(“输入的试场号,已超出试场总数,请重输”)
Text1.Text=" "
Exit Sub
End If
End Sub
① ② ③
试题篮