VB求大神解答随机产生n个两位整数,找出其中奇数、偶数和素数并将技术按升序排序偶数按降序排序素数求和

VB求大神解答随机产生n个两位整数,找出其中奇数、偶数和素数并将技术按升序排序偶数按降序排序素数求和
要求:1、将随机产生的n个整数存入一维数组中,按每行10个输出到窗体上
2、将奇数和偶数分别存入2个一维动态数组中。用sub过程分别对奇数和偶数进行排序,奇数用选择法 排序,偶数用冒泡法排序,然后在调用过程内,将奇数和偶数按每行10个分别输出到图片框和标签中
3、用Function过程判断随机整数是否为素数。在调用过程中,将找出的素数及求和结果输出到文本框中,冰同时将素数及求和结果输出到顺序文件中。
4、sub过程和Function过程均建立在标准模块中
5、程序运行后,若在输入对话框中输入随机产生的整数个数n为50,单机“产生随机整数命令按钮,则在窗体上输出50个随机整数”单机“找奇偶数并排序”命令按钮则分别显示排好序的奇数和偶数:单机“找素数并求和”命令按钮,则在文本框和顺序文件中输出素数和素数的和;单机“结束”命令按钮,结束程序的运行。

只要程序代码就好


=================================窗体代码======================================
Private Sub CommandButton1_Click()
Dim n%, i%, sr$
n = InputBox("请输入随机数个数(不能大于90)")
If n < 91 Then
Call 两位随机正整数(n)
Call 冒泡排序(arr)
Call 数组转字符串(arr, sr)
TextBox1.Text = sr
Else
MsgBox "该数值不能大于90"
End If
End Sub

Private Sub CommandButton2_Click()
Dim sr$, sr1$
Call 区分奇偶(sr, sr1)
TextBox2.Text = sr
TextBox3.Text = sr1
End Sub

Private Sub CommandButton3_Click()
Dim i%, sr$, s%, n%, arrs()
For i = 0 To UBound(arr)
n = arr(i)
If 素数(n) Then
ReDim Preserve arrs(x)
arrs(x) = arr(i)
x = x + 1
s = s + arr(i)
End If
Next
Call 冒泡排序(arrs)
Call 数组转字符串(arrs, sr)
TextBox4.Text = sr
TextBox5.Text = "素数和:" & s
End Sub

Private Sub CommandButton4_Click()
End
End Sub
============================下面是模块代码========================================
Public arr
Sub 两位随机正整数(n As Integer)
Set d = CreateObject("scripting.dictionary")
Do
num = 10 + Int(Rnd * 90)
If Not d.exists(num) Then
d(num) = ""
i = i + 1
End If
Loop Until i = n
arr = d.keys
End Sub
Sub 数组转字符串(arr, sr As String)
For i = 0 To UBound(arr)
If (i + 1) Mod 10 = 0 Then
sr = sr & arr(i) & vbCrLf
Else
sr = sr & arr(i) & ","
End If
Next
If (UBound(arr) + 1) Mod 10 <> 0 Then
sr = Left(sr, Len(sr) - 1)
End If
End Sub

Sub 区分奇偶(sr As String, sr1 As String)
Dim m%, n%, i%
Dim arrj(), arro()
m = -1: n = -1
For i = 0 To UBound(arr)
If arr(i) Mod 2 = 1 Then
m = m + 1
ReDim Preserve arrj(m)
arrj(m) = arr(i)
Else
n = n + 1
ReDim Preserve arro(n)
arro(n) = arr(i)
End If
Next
Call 选择排序(arrj)
Call 冒泡排序(arro)
Call 数组转字符串(arrj, sr)
Call 数组转字符串(arro, sr1)
End Sub
Sub 选择排序(arr)
  Dim temp, x, y, t, iMax, k, k1, k2
  For x = UBound(arr) To 1 + 1 Step -1
     iMax = 1 '最大的索引
     For y = 0 To x
          If arr(y) > arr(iMax) Then iMax = y
     Next y
     temp = arr(iMax)
     arr(iMax) = arr(x)
     arr(x) = temp
  Next x
End Sub

Sub 冒泡排序(arr)
 Dim temp, x, y, t, k
 For x = 0 To UBound(arr) - 1
   For y = x + 1 To UBound(arr)  '只和当前数字下面的数进行比较
     If arr(x) > arr(y) Then '如果它大于它下面某一个数字
       temp = arr(x)
       arr(x) = arr(y)
       arr(y) = temp
     End If
   Next y
 Next x
End Sub
Function 素数(n As Integer) As Boolean
素数 = True
For i = 2 To n - 1
If n / i = Int(n / i) Then
素数 = False
Exit For
End If
Next
End Function


温馨提示:答案为网友推荐,仅供参考
相似回答