设计一个程序界面,有两个窗体的应用程序。用户在Form窗体(输入窗体)的“请输入排序数个数”文本框输入有效数,按回车键后,在该窗体的“Picture1”图片框中输出排序前的数,单击“排序”按钮,启动Form2窗体,调用冒泡排序子过程Sort并把排序结果在Form2(输出结果)窗体的“Picture1”图片框中输出,在Form2(输出结果)窗体的“请输入要查找的数”文本框内输入要查找的数后,单击“查找”按钮,调用查找函数过程(Search),查找结果在“查找结果”文本框显示,单击“结束”按钮结束应用程序的运行。求大神赐教啊
第一个代码是声明函数
Public Sub sort(a() As Integer)
Dim n As Integer
Dim t As Integer
n = UBound(a())
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
End Sub
第二个是form1中picture1输出 ,我想把输出改成每15个一行,如何更改呢
Private Sub Text1_KeyPress(KeyAscii As Integer)
Dim a()
Dim i As Integer
Dim n As Integer
Dim s As String
Dim count As Integer
n = Val(Text1.Text)
If n > 0 Then
ReDim a(n - 1)
For i = 0 To n - 1
Randomize
a(i) = Int(Rnd * 101)
s = s & a(i) & " "
Next i
If KeyAscii = 13 Then
Picture1.Print s
End If
End If
End Sub还有就是,如何调用第二个窗口,实现command1后排序后的数字在form2中picture1上输出呢
我是小白,刚刚接触vb还望大家多指教
最好能有全套代码
第一个代码是声明函数
Public Sub sort(a() As Integer)
Dim n As Integer
Dim t As Integer
n = UBound(a())
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
End Sub
第二个是form1中picture1输出 ,我想把输出改成每15个一行,如何更改呢
Private Sub Text1_KeyPress(KeyAscii As Integer)
Dim a()
Dim i As Integer
Dim n As Integer
Dim s As String
Dim count As Integer
n = Val(Text1.Text)
If n > 0 Then
ReDim a(n - 1)
For i = 0 To n - 1
Randomize
a(i) = Int(Rnd * 101)
s = s & a(i) & " "
Next i
If KeyAscii = 13 Then
Picture1.Print s
End If
End If
End Sub还有就是,如何调用第二个窗口,实现command1后排序后的数字在form2中picture1上输出呢
我是小白,刚刚接触vb还望大家多指教
最好能有全套代码
Private Sub Command1_Click()
''一个窗体 + 一个按钮 + 2个picturebox + 一个textbox + 一个listbox
''产生随机数据并输出排序后的结果
Dim k As Integer
k = CInt(Val(Text1.Text))
If k > 0 And k < 31 Then
Dim i As Integer, w1 As String, w2 As String, n As Integer
''List1.Sorted = True''在设计界面操作(用它来排序)
List1.Clear
For i = 1 To k
n = Int(Rnd * 101)
w1 = w1 & w2 & CStr(n)
List1.AddItem Format$(n, "000")
w2 = " "
If i Mod 15 = 0 Then w1 = w1 & vbCrLf: w2 = ""
Next
Pic1.Print w1 ''在pic1中输出排序前得到的字符串
''在pic2中输出排序后的数据
w1 = "": w2 = ""
For i = 0 To List1.ListCount - 1
w1 = w1 & w2 & CStr(CInt(List1.List(i)))
w2 = " "
If (i + 1) Mod 15 = 0 Then w1 = w1 & vbCrLf: w2 = ""
Next
Pic2.Print w1 ''在pic2中输出排序前得到的字符串
'''如果非要用2个窗体,参照下面
'''Form2.Show
'''Form2.Pic1.Print w1
Else
MsgBox "请在文本框中输入1~30的数字"
End If
End Sub