⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 grade_tj.frm

📁 这是一个非常 好的一个程序进行体会一下学生管理系统
💻 FRM
📖 第 1 页 / 共 4 页
字号:
        Form6.Show '设置分数段
    End If
    If checknum3 = 0 Then
        MsgBox "请现选择统计项目!", 0 + 48, "注意!"
        Check3(0).SetFocus
    End If
    List2.Visible = True
    Command12.Visible = True
    Command12.Enabled = True
    Check6.Visible = True
End Sub

Private Sub Command8_Click() '重置按钮(班级整体)
    Text3.Text = ""
    Text3.SetFocus
    Combo3(0).Text = ""
    Combo3(1).Text = ""
    Frame6.Visible = False
    Command9.Enabled = True
    List2.Visible = False '隐藏结果显示框
    List2.Clear           '清空结果显示框的内容
    myFlexGrid4.Rows = 1
    For i = 0 To 5
        Check3(i).Value = 0
    Next i
End Sub

Private Sub Command9_Click() '确定按钮(班级整体)
    If Text3.Text = "" Then
        MsgBox "请输入班级!", 0 + 48, "注意!"
        Text3.SetFocus
        Exit Sub
    End If
    If Combo3(0).Text = "" Then
        MsgBox "请选择学期!", 0 + 48, "注意!"
        Combo3(0).SetFocus
        Exit Sub
    End If
    txtSQL = "select Les_info.Stu_no,Stu_info.Stu_name,Cou_info.Cou_name,Les_info.Les_cj" & _
             " from Stu_info,Les_info,Cou_info where Stu_info.Stu_no=Les_info.Stu_no " & _
             " and Cou_info.Cou_no=Les_info.Cou_no and Stu_info.Stu_class =" & "'" & Trim(Text3.Text) & "'" & _
             " and Les_info.Les_term =" & "'" & Trim(Combo3(0).Text) & "'"
    If Combo3(1).Text <> "" Then
        Frame6.Visible = True
        txtSQL = txtSQL + " and Cou_info.Cou_name =" & "'" & Trim(Combo3(1).Text) & "'"
    End If
    Set mrc = ExecuteSQL(txtSQL, MsgText)
    If mrc.EOF Then
        MsgBox "没有符合条件的记录!", 0 + 48, "注意!"
        Text3.SetFocus
        mrc.Close
        Set mrc = Nothing
        Exit Sub
    End If
    myFlexGrid4.Rows = 1
    While Not mrc.EOF
        With myFlexGrid4
             .Rows = .Rows + 1
             Dim i As Integer
             For i = 0 To 3
                If Not IsNull(mrc.Fields(i)) Then
                    .TextMatrix(.Rows - 1, i) = mrc.Fields(i)
                End If
             Next i
        End With
        mrc.MoveNext
    Wend
    Command9.Enabled = False
    End Sub

Private Sub Form_Load()
    With myFlexGrid1 '初始化选课信息显示框(单个学生)
        .Rows = 1
        For i = 0 To 5            '设定每列为居中对齐
            .ColAlignment(i) = 3
        Next i
        .TextMatrix(0, 0) = "课程号"
        .TextMatrix(0, 1) = "课程名"
        .TextMatrix(0, 2) = "学分"
        .TextMatrix(0, 3) = "成绩"
        .TextMatrix(0, 4) = "学分绩点"
        .TextMatrix(0, 5) = "开设学期"
        .ColWidth(1) = 1500
    End With
    With myFlexGrid3 '初始化选课信息显示框(选课整体)
        .Rows = 1
        For i = 0 To 3           '设定每列为居中对齐
            .ColAlignment(i) = 3
        Next i
        .TextMatrix(0, 0) = "学生学号"
        .TextMatrix(0, 1) = "学生姓名"
        .TextMatrix(0, 2) = "学生班级"
        .TextMatrix(0, 3) = "成绩"
    End With
    myFlexGrid2.TextMatrix(0, 0) = "项目\学期" '初始化统计结果显示框(单个学生)
    myFlexGrid2.ColWidth(0) = 1100
    With myFlexGrid4 '初始化选课信息显示框(班级整体)
        .Rows = 1
        For i = 0 To 3           '设定每列为居中对齐
            .ColAlignment(i) = 3
        Next i
        .TextMatrix(0, 0) = "学生学号"
        .TextMatrix(0, 1) = "学生姓名"
        .TextMatrix(0, 2) = "所选课程名"
        .TextMatrix(0, 3) = "成绩"
        .ColWidth(2) = 1500
    End With
    '初始化学期选择框(选课整体,班级整体)
    txtSQL = "select distinct Les_term from Les_info order by Les_term "
    Set mrc = ExecuteSQL(txtSQL, MsgText)
    While Not mrc.EOF
        Combo2(0).AddItem mrc.Fields(0)
        Combo3(0).AddItem mrc.Fields(0)
        mrc.MoveNext
    Wend
    mrc.Close
    '初始化课程名称选择框(选课整体,班级整体)
    txtSQL = "select distinct Cou_info.Cou_name from Cou_info,Les_info" & _
           " where Cou_info.Cou_no=Les_info.Cou_no"
    Set mrc = ExecuteSQL(txtSQL, MsgText)
    While Not mrc.EOF
        Combo2(1).AddItem mrc.Fields(0)
        Combo3(1).AddItem mrc.Fields(0)
        mrc.MoveNext
    Wend
    mrc.Close
    '初试化教师名选择框(选课整体)
    txtSQL = "select distinct Les_tna from Les_info "
    Set mrc = ExecuteSQL(txtSQL, MsgText)
    While Not mrc.EOF
        Combo2(2).AddItem mrc.Fields(0)
        mrc.MoveNext
    Wend
    mrc.Close
    Set mrc = Nothing
    tj_type = 0 '初始化统计类别
End Sub




Private Sub Option1_GotFocus(Index As Integer)
    Select Case Index
        Case 0:
            Frame2(0).Visible = True
            Frame2(1).Visible = False
            Frame2(2).Visible = False
            Option1(1).Value = False
            Option1(0).Value = True
            Option1(2).Value = False
        Case 1:
            Frame2(0).Visible = False
            Frame2(1).Visible = True
            Frame2(2).Visible = False
            Option1(1).Value = True
            Option1(0).Value = False
            Option1(2).Value = False
        Case 2:
            Frame2(0).Visible = False
            Frame2(1).Visible = False
            Frame2(2).Visible = True
            Option1(1).Value = False
            Option1(0).Value = False
            Option1(2).Value = True
    End Select
End Sub
Public Sub Aver_jd()   '定义求平均绩点的过程(单个学生)
Dim sum_xj(8) As Single '定义数组用来记录各学期的累计学分绩点
Dim sum_xf(8) As Single '定义数组用来记录各学期的累计学分
Dim ave_jd(8) As Single '定义数组用来记录各学期的平均绩点(=累计学分绩点/累计学分)
    For i = 0 To 7
        sum_xj(i) = 0
        sum_xf(i) = 0
    Next i
    For i = 0 To termtype - 1
        mrc.MoveFirst
        Do While mrc.Fields(5) = term(i)
            If Not IsNull(mrc.Fields(4)) Then
                sum_xj(i) = sum_xj(i) + mrc.Fields(4)
            End If
            If Not IsNull(mrc.Fields(2)) Then
                sum_xf(i) = sum_xf(i) + mrc.Fields(2)
            End If
            mrc.MoveNext
            If mrc.EOF Then Exit Do
        Loop
        ave_jd(i) = Format(sum_xj(i) / sum_xf(i), "0.0") '平均绩点=累计学分绩点/累计学分
        myFlexGrid2.TextMatrix(checknum1, i + 1) = ave_jd(i)
    Next i
End Sub

Public Sub Term_type() '定义用来求学期的种类过程(单个学生)
    mrc.MoveFirst
    For i = 0 To 7
        term(i) = ""
    Next i
    termtype = 1
    Dim lasttype As String '定义变量用来记录当前学期
    lasttype = mrc.Fields(5)
    term(0) = mrc.Fields(5)
    While Not mrc.EOF      '统计学期数
        If mrc.Fields(5) <> lasttype Then
            term(termtype) = mrc.Fields(5)
            lasttype = mrc.Fields(5)
            termtype = termtype + 1
        End If
        mrc.MoveNext
    Wend
End Sub

Public Sub Term_sum()
Dim sum_xf(8) As Single '定义数组用来存储各学期累计学分(单个学生)
    For i = 0 To 7
        sum_xf(i) = 0
    Next i
    For i = 0 To termtype - 1 '对与不同学期分别求其所获学分累加和
        mrc.MoveFirst
        Do While mrc.Fields(5) = term(i) '保证是同一学期的累加
            If IsNull(mrc.Fields(3)) = False And mrc.Fields(3) >= 60 Then '只有成绩及格才能获得相应学分
                sum_xf(i) = sum_xf(i) + mrc.Fields(2)
            End If
            mrc.MoveNext
            If mrc.EOF Then Exit Do
        Loop
        myFlexGrid2.TextMatrix(checknum1, i + 1) = sum_xf(i)
    Next i
End Sub

Public Sub Total_sum() '定义求所得总学分的过程(单个学生)
Dim t_sum As Single
    mrc.MoveFirst
    t_sum = 0
    While Not mrc.EOF
        If IsNull(mrc.Fields(3)) = False And mrc.Fields(3) >= 60 Then
            t_sum = t_sum + mrc.Fields(2)
        End If
        mrc.MoveNext
    Wend
    myFlexGrid2.TextMatrix(checknum1, 1) = t_sum
End Sub

Public Sub Average(tj_type As Integer)  '定义计算和显示平均分的过程(选课整体)
Dim sum, ave As Single
    sum = 0
    mrc.MoveFirst
    While Not mrc.EOF
        If IsNull(mrc.Fields(3)) = False Then
            sum = sum + mrc.Fields(3)
            mrc.MoveNext
        End If
    Wend
    ave = sum / mrc.RecordCount
    If tj_type = 1 Then
        List1.AddItem "平 均 分: " & Format(ave, "0.0")
    Else
        List2.AddItem "平 均 分: " & Format(ave, "0.0")
    End If
End Sub


Public Sub Highest(tj_type As Integer)  '定义计算和显示最高分的过程(选课整体)
Dim high As Single
    mrc.MoveFirst
    high = mrc.Fields(3)
    While Not mrc.EOF
        If IsNull(mrc.Fields(3)) = False And mrc.Fields(3) > high Then
            high = mrc.Fields(3)
        End If
        mrc.MoveNext
    Wend
    If tj_type = 1 Then
        List1.AddItem "最 高 分: " & high
    Else:
        List2.AddItem "最 高 分: " & high
    End If
End Sub

Public Sub Lowest(tj_type As Integer)   '定义计算和显示最低分的过程(选课整体)
Dim low As Single
    mrc.MoveFirst
    low = mrc.Fields(3)
    While Not mrc.EOF
        If IsNull(mrc.Fields(3)) = False And mrc.Fields(3) < low Then
            low = mrc.Fields(3)
        End If
        mrc.MoveNext
    Wend
    If tj_type = 1 Then
        List1.AddItem "最 低 分: " & low
    Else:
        List2.AddItem "最 低 分: " & low
    End If
End Sub

Public Sub Qualified(tj_type As Integer)  '定义计算和显示合格率的过程(选课整体)
Dim q_num As Integer
Dim q_per As Single
    q_num = 0
    q_per = 0
    mrc.MoveFirst
    While Not mrc.EOF
        If IsNull(mrc.Fields(3)) = False And mrc.Fields(3) >= 60 Then
            q_num = q_num + 1
        End If
        mrc.MoveNext
    Wend
    q_per = q_num / mrc.RecordCount
    If tj_type = 1 Then
        List1.AddItem "及 格 率: " & Format(q_per, "0.0%")
    Else:
        List2.AddItem "及 格 率: " & Format(q_per, "0.0%")
    End If
End Sub

Public Sub Excellent(tj_type As Integer)  '定义计算和显示优秀率的过程(选课整体)
Dim e_num As Integer
Dim e_per As Single
    e_num = 0
    e_per = 0
    mrc.MoveFirst
    While Not mrc.EOF
        If IsNull(mrc.Fields(3)) = False And mrc.Fields(3) >= 85 Then
            e_num = e_num + 1
        End If
        mrc.MoveNext
    Wend
    e_per = e_num / mrc.RecordCount
    If tj_type = 1 Then
        List1.AddItem "优 秀 率: " & Format(e_per, "0.0%")
    Else:
        List2.AddItem "优 秀 率: " & Format(e_per, "0.0%")
    End If
End Sub

Public Sub Block_tj(tj_type As Integer)  '定义统计分段人数的过程
Dim sum As Integer '定义变量用来保存各分数段的人数
    If tj_type = 1 Then
        List1.AddItem ""
        List1.AddItem "分段人数:"
    Else
        List2.AddItem ""
        List2.AddItem "分段人数:"
    End If
    For i = 0 To block_num - 1
        mrc.MoveFirst
        sum = 0
        While Not mrc.EOF
            '注意不能直接使用low(i) ,应该使用val函数
            If IsNull(mrc.Fields(3)) = False Then
                If mrc.Fields(3) >= Val(low(i)) And mrc.Fields(3) < Val(high(i)) Then
                    sum = sum + 1
                End If
            End If
            mrc.MoveNext
        Wend
        If tj_type = 1 Then
            List1.AddItem low(i) & " ----- " & high(i) & ": " & sum & "人"
        Else:
            List2.AddItem low(i) & " ----- " & high(i) & ": " & sum & "人"
        End If
   Next i
   '统计满分人数
   mrc.MoveFirst
   sum = 0
   While Not mrc.EOF
        '注意不能直接使用low(i) ,应该使用val函数
        If IsNull(mrc.Fields(3)) = False And mrc.Fields(3) = 100 Then
            sum = sum + 1
        End If
        mrc.MoveNext
   Wend
   If tj_type = 1 Then
        List1.AddItem "满  分:" & sum & "人"
   Else:
        List2.AddItem "满  分:" & sum & "人"
   End If
End Sub

Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
    If KeyCode = 13 Then
        Call Command1_Click
    End If
End Sub

Private Sub Text3_KeyDown(KeyCode As Integer, Shift As Integer)
    If KeyCode = 13 Then
        Call Command9_Click
    End If
End Sub

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -