vb按字符串里数字大小排序
用记事本在学生文件夹中创建文本文件Stu.txt,随机记录10个学生的学号、姓名、年级、成绩数据,一个学生的数据一行,格式如下:“1234”,”张山”,”2016”,78...
用记事本在学生文件夹中创建文本文件Stu.txt,随机记录10个学生的学号、姓名、年级、成绩数据,一个学生的数据一行,格式如下:
“1234”,”张山”,”2016”,78
……
按成绩降序对学生记录进行排序,输出排序前后的记录,同时将排序结果以类似的格式保存到学生文件夹的StuSort.txt文本文件中。
主要是排序部分的程序怎么写 展开
“1234”,”张山”,”2016”,78
……
按成绩降序对学生记录进行排序,输出排序前后的记录,同时将排序结果以类似的格式保存到学生文件夹的StuSort.txt文本文件中。
主要是排序部分的程序怎么写 展开
1个回答
展开全部
'模块中的程序代码
Public Type student
学号 As String
姓名 As String
年级 As String
成绩 As Integer
End Type
Public Sub stusort(s() As student)
Dim t As student
For i = LBound(s) To UBound(s)
For j = i + 1 To UBound(s)
If s(i).成绩 < s(j).成绩 Then
t = s(i): s(i) = s(j): s(j) = t
End If
Next j, i
End Sub
'窗体中的代码
Const N = 10 '10个学生
Private Sub Form_Click()
Dim s(1 To N) As student
infile = "d:\stu.txt"
outfile = "d:\stusort.txt"
fp = FreeFile
Open infile For Input As fp
For i = 1 To N
Input #fp, s(i).学号, s(i).姓名, s(i).年级, s(i).成绩
Next i
Close fp
'输出排序前
Print "排序前的信息"
For i = 1 To N '
Print s(i).学号, s(i).姓名, s(i).年级, s(i).成绩
Next i
Call stusort(s) '调用排序子程序
'输出排序后
Print "排序后的信息"
For i = 1 To N
Print s(i).学号, s(i).姓名, s(i).年级, s(i).成绩
Next i
'保存文件
fp = FreeFile
Open outfile For Output As fp
For i = 1 To N
Print #fp, s(i).学号 & "," & s(i).姓名 & "," & s(i).年级 & "," & s(i).成绩
Next i
Close fp
End Sub
测试时的stu.txt
1111,22,33,33
2222,55,66,88
3333,66,99,98
4444,22,33,45
5555,55,66,45
6666,66,99,97
7777,22,33,65
8888,55,66,78
9999,66,99,28
0000,22,33,35
测试得到的stusort.txt
3333,66,99,98
6666,66,99,97
2222,55,66,88
8888,55,66,78
7777,22,33,65
5555,55,66,45
4444,22,33,45
0000,22,33,35
1111,22,33,33
9999,66,99,28
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询