要求: 1. 程序运行时,首先随机产生30个100以内不重复的二位数,并显示在List1中。
2. 单击“判断”按钮,选出个位与十位之和为偶数的数据,显示在List2中。
3. 单击“排序”按钮时,将选出的数据按从小到大的顺序排序,重新显示在List2中
4. 单击“存盘”按钮时,将排序后的筛选数据写入文件“Test32Out.txt”中。 Dim a(30),a() Private Sub Command1_Click()
ReDim a(n)
For i = 1 To n
n = 0
If (x \ 10 + x Mod 10) Mod 2 = 0 Then
x = a(i)
n = n + 1
End If Next i For i = 1 To n
List2.AddItem a(i)
Next i
End Sub Private Sub Command2_Click()
For i = 1 To n - 1
For j = i + 1 To n
If a(i) > a(j) Then
t = a(i)
a(i) = a(j)
a(j) = t
End If
Next j
Next i
For i = 1 To n
List2.AddItem a(i)
Next i
End Sub Private Sub Command3_Click()
Open "test32out.txt" For Output As #1
For i = 1 To n
Print #1, a(i)
Next i
Close #1
End Sub Private Sub Form_Load()
For i = 1 To 30
a(i) = Int(Rnd * 91 + 10)
List1.AddItem a(i)
Next i
End Sub
2. 单击“判断”按钮,选出个位与十位之和为偶数的数据,显示在List2中。
3. 单击“排序”按钮时,将选出的数据按从小到大的顺序排序,重新显示在List2中
4. 单击“存盘”按钮时,将排序后的筛选数据写入文件“Test32Out.txt”中。 Dim a(30),a() Private Sub Command1_Click()
ReDim a(n)
For i = 1 To n
n = 0
If (x \ 10 + x Mod 10) Mod 2 = 0 Then
x = a(i)
n = n + 1
End If Next i For i = 1 To n
List2.AddItem a(i)
Next i
End Sub Private Sub Command2_Click()
For i = 1 To n - 1
For j = i + 1 To n
If a(i) > a(j) Then
t = a(i)
a(i) = a(j)
a(j) = t
End If
Next j
Next i
For i = 1 To n
List2.AddItem a(i)
Next i
End Sub Private Sub Command3_Click()
Open "test32out.txt" For Output As #1
For i = 1 To n
Print #1, a(i)
Next i
Close #1
End Sub Private Sub Form_Load()
For i = 1 To 30
a(i) = Int(Rnd * 91 + 10)
List1.AddItem a(i)
Next i
End Sub
Dim a(30),a() “定义有二义性"
是这个错误吗
Private Sub Form_Load()
Dim i, b As Integer
Dim c As Boolean
a(0) = Int(Rnd * 91 + 10)
Do While i < 30
b = Int(Rnd * 91 + 10)
c = XX(b)
If c = False Then
List1.AddItem b
i = i + 1
End If
Loop
End Sub
Private Function XX(S As Integer) As Boolean
Dim k, i As Integer
k = 0
For i = 0 To List1.ListCount - 1
If S = Val(List1.List(i)) Then
k = 1
End If
Next i
If k > 0 Then
XX = True
Else
XX = False
End If
End Function
Private Sub Command1_Click() '筛选
For i = 1 To List1.ListCount - 1
x = Int(Val(List1.List(i)) \ 10)
y = Val(List1.List(i)) Mod 10
If (x + y) Mod 2 = 0 Then
List2.AddItem List1.List(i)
End If
Next i
End SubPrivate Sub Command2_Click() '冒泡排序---升序
Dim Arr()
For i = 0 To List2.ListCount - 1
ReDim Preserve Arr(i)
Arr(i) = List2.List(i)
NextFor i = 0 To UBound(Arr) - 1
For j = i + 1 To UBound(Arr)
a1 = Arr(i)
b1 = Arr(j)
If Arr(i) > Arr(j) Then
Arr(i) = b1
Arr(j) = a1
End If
Next j
Next i
List2.Clear
For i = 0 To UBound(Arr)
List2.AddItem Arr(i)
Next
End Sub
Private Sub Command3_Click() '输出
S1 = ""
For i = 0 To List2.ListCount - 1
S1 = S1 & List2.List(i) & vbCrLf
Next i
Open App.Path & "\" & "test32out.txt" For Output As #1
Print #1, S1
Close #1
End Sub
Dim a() As IntegerPrivate Sub Command1_Click()
Dim t As Integer, i As Integer
For i = 1 To UBound(a)
t = a(i)
If (t \ 10 + t Mod 10) Mod 2 = 0 Then List2.AddItem a(i)
Next i
ReDim a(List2.ListCount)
For i = 1 To UBound(a)
a(i) = CInt(List2.List(i - 1))
Next
End SubPrivate Sub Command2_Click()
Dim t As Integer, i As Integer, j As Integer
For i = 1 To UBound(a) - 1
For j = i + 1 To UBound(a)
If a(i) > a(j) Then
t = a(i)
a(i) = a(j)
a(j) = t
End If
Next j
Next i List2.Clear
For i = 1 To UBound(a)
List2.AddItem a(i)
Next i
End SubPrivate Sub Command3_Click()
Open "d:\test32out.txt" For Output As #1
For i = 1 To n
Print #1, b(i)
Next i
Close #1
End SubPrivate Sub Form_Load()
Dim t As Integer, i As Integer, k As Integer
k = 1
Do
ReDim Preserve a(k)
t = Int(Rnd * 91 + 10)
For i = 1 To UBound(a)
If t = a(i) Then Exit For
Next i
If i > UBound(a) Then
a(k) = t
List1.AddItem a(k)
k = k + 1
End If
Loop Until k > 30
End Sub
Option Explicit
Dim a() As IntegerPrivate Sub Command1_Click()
Dim t As Integer, i As Integer
For i = 1 To UBound(a)
t = a(i)
If (t \ 10 + t Mod 10) Mod 2 = 0 Then List2.AddItem a(i) '将满足偶数要求的数放入List2
Next i
ReDim a(List2.ListCount) '清除a数组的内容,且缩小a数组与List2的长度相同
For i = 1 To UBound(a)
a(i) = CInt(List2.List(i - 1)) '将List2的内容拷贝到a数组
Next
End SubPrivate Sub Command2_Click() '排序方法照抄你原来的
Dim t As Integer, i As Integer, j As Integer
For i = 1 To UBound(a) - 1
For j = i + 1 To UBound(a)
If a(i) > a(j) Then
t = a(i)
a(i) = a(j)
a(j) = t
End If
Next j
Next i List2.Clear '清除List2的内容
For i = 1 To UBound(a) '把数组a(已经排序的内容)拷贝到List2
List2.AddItem a(i)
Next i
End SubPrivate Sub Command3_Click() '这段程序照搬你的
Open "d:\test32out.txt" For Output As #1
For i = 1 To n
Print #1, a(i)
Next i
Close #1
End SubPrivate Sub Form_Load() '生成30个随机数,要求不同样,你原来做不到,现在做到了
Dim t As Integer, i As Integer, k As Integer
k = 1
Do
ReDim Preserve a(k)
t = Int(Rnd * 91 + 10)
For i = 1 To UBound(a)
If t = a(i) Then Exit For '每生成一个新数,都要与数组中已经有的数进行比较
Next i
If i > UBound(a) Then ' i > UBound(a) 说明没有相同的数,可以存入数组
a(k) = t
List1.AddItem a(k)
k = k + 1
End If
Loop Until k > 30
End Sub