VB 制作 学生点名系统。界面版

流程图略

VERSION 5.00
Begin VB.Form mainForm 
   Caption         =   "教师点名系统"
   ClientHeight    =   5115
   ClientLeft      =   165
   ClientTop       =   810
   ClientWidth     =   9660
   LinkTopic       =   "Form1"
   ScaleHeight     =   5115
   ScaleWidth      =   9660
   StartUpPosition =   3  '窗口缺省
   Begin VB.ListBox List1 
      Height          =   4380
      Left            =   120
      TabIndex        =   0
      Top             =   480
      Width           =   2295
   End
   Begin VB.Label Label2 
      Caption         =   "显示结果处"
      Height          =   255
      Left            =   2640
      TabIndex        =   2
      Top             =   1800
      Width           =   975
   End
   Begin VB.Label Label1 
      AutoSize        =   -1  'True
      Caption         =   "|"
      BeginProperty Font 
         Name            =   "宋体"
         Size            =   24
         Charset         =   134
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   495
      Left            =   3720
      TabIndex        =   1
      Top             =   1560
      Width           =   255
   End
   Begin VB.Menu BJXSSJ 
      Caption         =   "编辑学生数据"
      Begin VB.Menu TJ 
         Caption         =   "添加一名新同学"
      End
      Begin VB.Menu SC 
         Caption         =   "删除一名新同学"
      End
   End
   Begin VB.Menu KSDM 
      Caption         =   "开始点名"
      Begin VB.Menu DM 
         Caption         =   "点名"
      End
   End
   Begin VB.Menu CXXSDMQK 
      Caption         =   "查询学生点名情况"
   End
   Begin VB.Menu TC 
      Caption         =   "退出"
   End
End
Attribute VB_Name = "mainForm"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Dim XH(100) As String    '学号
Attribute XH.VB_VarUserMemId = 1073938432
Dim XM(100) As String    '姓名
Attribute XM.VB_VarUserMemId = 1073938433
Dim CS(100) As String    '次数
Attribute CS.VB_VarUserMemId = 1073938434
Dim cnt As Integer
Dim FileName As String
Private Sub ReadFile()    '导入文件
'On Error GoTo errorHandler    ' 设置错误处理

    Dim strLine As String
    Dim tmp




    Open FileName For Input As #1

    cnt = 0
    Do While Not EOF(1)    ' 逐行读取文件内容
        Line Input #1, strLine
        tmp = Split(strLine, vbTab)
        XH(cnt) = tmp(0)
        XM(cnt) = tmp(1)
        CS(cnt) = tmp(2)
        cnt = cnt + 1
    Loop
    Close #1    '关闭文件
    Exit Sub    ' 退出子过程
errorHandler:        ' 错误处理
    MsgBox FileName & " 打开文件失败,错误代码为:" & Err.Number & ",错误信息为:" & Err.Description
End Sub

Private Sub WriteFile()
'On Error GoTo errorHandler    ' 设置错误处理

    Dim strLine As String
    Dim tmp

    Dim i As Integer



    Open FileName For Output As #1

    For i = 0 To cnt - 1
        strLine = XH(i) + vbTab
        strLine = strLine + XM(i) + vbTab
        strLine = strLine + CS(i)
        Print #1, strLine    '记录进文件
    Next
    Close #1    '关闭文件
    Exit Sub    ' 退出子过程
errorHandler:        ' 错误处理
    MsgBox FileName & " 打开文件失败,错误代码为:" & Err.Number & ",错误信息为:" & Err.Description
End Sub
Private Sub infoToList()
    Dim i As Integer
    Dim strLine As String
    List1.Clear
    For i = 0 To cnt - 1
        strLine = XH(i) + vbTab
        strLine = strLine + XM(i)
        List1.AddItem (strLine)
    Next

End Sub




Private Sub CXXSDMQK_Click()
    Dim i As Integer
    Dim strLine As String
    List1.Clear
    For i = 0 To cnt - 1
        strLine = XH(i) + vbTab
        strLine = strLine + XM(i) + vbTab
        strLine = strLine + CS(i)
        List1.AddItem (strLine)
    Next
End Sub

Private Sub DM_Click()
    Dim randomNumber As Integer
    randomNumber = Int(Rnd * cnt)
    Label1 = XH(randomNumber) + "  " + XM(randomNumber)
    CS(randomNumber) = CS(randomNumber) + 1


    WriteFile    '更新文件
    ReadFile

End Sub

Private Sub Form_Load()
    Randomize    ' 初始化随机数种子,一般只需要调用一次
    FileName = App.Path & "\点名册.txt"
    ReadFile
    infoToList
End Sub

Private Sub Form_Unload(Cancel As Integer)
    End    '一定要加这句,因为原来的窗体只是隐藏了,并没退出
End Sub

Private Sub SC_Click()

    Dim XXH As String    '学号
    Dim Find As Boolean
    Find = False
    XXH = InputBox("请输入要删除的学号", "删除")
    If XXH = "" Then Exit Sub



    '添加之前查一下学号是否存在,如果存在不能加入
    Dim i As Integer
    For i = 0 To cnt - 1
        If XH(i) = XXH Then
            Find = True
            Exit For
        End If
    Next

    If Find = False Then
        MsgBox "此学号不存在", , "提示"
        Exit Sub
    End If



    '用最后一条记录替换当前记录
    XH(i) = XH(cnt - 1)
    XM(i) = XM(cnt - 1)
    CS(i) = CS(cnt - 1)

    cnt = cnt - 1
    WriteFile
    ReadFile
    infoToList    '更新列表

End Sub

Private Sub TC_Click()
    End
End Sub

Private Sub TJ_Click()
    Dim XXH, XXM As String    '学号 ,姓名
    XXH = InputBox("请输入要加入的学号", "添加")
    If XXH = "" Then Exit Sub



    '添加之前查一下学号是否存在,如果存在不能加入
    Dim i As Integer
    For i = 0 To cnt - 1
        If XH(i) = XXH Then
            MsgBox "此学号已经存在不可以添加", , "提示"
            Exit Sub
        End If
    Next

    XXM = InputBox("请输入要加入的姓名")
    If XXM = "" Then Exit Sub

    XH(cnt) = XXH
    XM(cnt) = XXM
    CS(cnt) = 0
    cnt = cnt + 1

    WriteFile
    ReadFile
    infoToList    '更新列表



End Sub

在这个课程设计过程中,我学到了很多关于编程的知识和技巧。通过实际的编程实践,我更深入地理解了程序的结构和逻辑,以及如何使用变量、数组、文件操作等基本概念和功能来实现所需的功能。我也更加熟悉了VB的语法和编程规范。

这个程序的优点是:

简单易懂:程序的逻辑结构清晰,代码注释完善,易于理解和修改。
功能完善:程序实现了学生信息的增加、删除、修改和随机点名等功能,可以方便地管理学生信息。
文件操作:通过文件操作,程序可以将学生信息保存到文件中,并在需要时读取和更新文件,确保数据的持久性和可靠性。
然而,这个程序也存在一些缺憾:

用户界面简陋:程序的用户界面比较简单,没有美化和交互性,用户体验有待提升。
错误处理不完善:程序中使用了错误处理,但只是简单地弹出一个消息框提示错误信息,没有提供更详细的错误处理和恢复机制。
数组大小固定:程序中定义了固定大小的数组来存储学生信息,如果学生数量超过数组大小,会导致数组溢出的问题。应该考虑使用动态数据结构来解决这个问题。

Option Explicit
Dim XH(100) As String    '学号
Dim XM(100) As String    '姓名
Dim CS(100) As String    '次数
Dim cnt As Integer
Dim FileName As String
Private Sub ReadFile()    '导入文件
'On Error GoTo errorHandler    ' 设置错误处理

    Dim strLine As String
    Dim tmp


    Open FileName For Input As #1

    cnt = 0
    Do While Not EOF(1)    ' 逐行读取文件内容
        Line Input #1, strLine
        tmp = Split(strLine, vbTab)
        XH(cnt) = tmp(0)
        XM(cnt) = tmp(1)
        CS(cnt) = tmp(2)
        cnt = cnt + 1
    Loop
    Close #1    '关闭文件
    Exit Sub    ' 退出子过程
errorHandler:        ' 错误处理
    MsgBox FileName & " 打开文件失败,错误代码为:" & Err.Number & ",错误信息为:" & Err.Description
End Sub

Private Sub WriteFile()
'On Error GoTo errorHandler    ' 设置错误处理

    Dim strLine As String
    Dim tmp

    Dim i As Integer



    Open FileName For Output As #1

    For i = 0 To cnt - 1
        strLine = XH(i) + vbTab
        strLine = strLine + XM(i) + vbTab
        strLine = strLine + CS(i)
        Print #1, strLine    '记录进文件
    Next
    Close #1    '关闭文件
    Exit Sub    ' 退出子过程
errorHandler:        ' 错误处理
    MsgBox FileName & " 打开文件失败,错误代码为:" & Err.Number & ",错误信息为:" & Err.Description
End Sub
Private Sub infoToList()
    Dim i As Integer
    Dim strLine As String
    List1.Clear
    For i = 0 To cnt - 1
        strLine = XH(i) + vbTab
        strLine = strLine + XM(i)
        List1.AddItem (strLine)
    Next

End Sub




Private Sub CXXSDMQK_Click()
    Dim i As Integer
    Dim strLine As String
    List1.Clear
    For i = 0 To cnt - 1
        strLine = XH(i) + vbTab
        strLine = strLine + XM(i) + vbTab
        strLine = strLine + CS(i)
        List1.AddItem (strLine)
    Next
End Sub

Private Sub DM_Click()
    Dim randomNumber As Integer
    randomNumber = Int(Rnd * cnt)
    Label1 = XH(randomNumber) + "  " + XM(randomNumber)
    CS(randomNumber) = CS(randomNumber) + 1


    WriteFile    '更新文件
    ReadFile

End Sub

Private Sub Form_Load()
    Randomize    ' 初始化随机数种子,一般只需要调用一次
    FileName = App.Path & "\点名册.txt"
    ReadFile
    infoToList
End Sub

Private Sub Form_Unload(Cancel As Integer)
    End    '一定要加这句,因为原来的窗体只是隐藏了,并没退出
End Sub

Private Sub SC_Click()

    Dim XXH As String    '学号
    Dim Find As Boolean
    Find = False
    XXH = InputBox("请输入要删除的学号", "删除")
    If XXH = "" Then Exit Sub



    '添加之前查一下学号是否存在,如果存在不能加入
    Dim i As Integer
    For i = 0 To cnt - 1
        If XH(i) = XXH Then
            Find = True
            Exit For
        End If
    Next

    If Find = False Then
        MsgBox "此学号不存在", , "提示"
        Exit Sub
    End If



    '用最后一条记录替换当前记录
    XH(i) = XH(cnt - 1)
    XM(i) = XM(cnt - 1)
    CS(i) = CS(cnt - 1)

    cnt = cnt - 1
    WriteFile
    ReadFile
    infoToList    '更新列表

End Sub

Private Sub TC_Click()
    End
End Sub

Private Sub TJ_Click()
    Dim XXH, XXM As String    '学号 ,姓名
    XXH = InputBox("请输入要加入的学号", "添加")
    If XXH = "" Then Exit Sub



    '添加之前查一下学号是否存在,如果存在不能加入
    Dim i As Integer
    For i = 0 To cnt - 1
        If XH(i) = XXH Then
            MsgBox "此学号已经存在不可以添加", , "提示"
            Exit Sub
        End If
    Next

    XXM = InputBox("请输入要加入的姓名")
    If XXM = "" Then Exit Sub

    XH(cnt) = XXH
    XM(cnt) = XXM
    CS(cnt) = 0
    cnt = cnt + 1

    WriteFile
    ReadFile
    infoToList    '更新列表



End Sub

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值