vb按字符串里数字大小排序

用记事本在学生文件夹中创建文本文件Stu.txt,随机记录10个学生的学号、姓名、年级、成绩数据,一个学生的数据一行,格式如下:“1234”,”张山”,”2016”,78... 用记事本在学生文件夹中创建文本文件Stu.txt,随机记录10个学生的学号、姓名、年级、成绩数据,一个学生的数据一行,格式如下:
“1234”,”张山”,”2016”,78
……
按成绩降序对学生记录进行排序,输出排序前后的记录,同时将排序结果以类似的格式保存到学生文件夹的StuSort.txt文本文件中。

主要是排序部分的程序怎么写
展开
 我来答
mr_shj
2018-05-27 · TA获得超过2682个赞
知道大有可为答主
回答量:1665
采纳率:94%
帮助的人:1391万
展开全部
'模块中的程序代码
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
    
    '输出排序后
    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
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式