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

📄 frmtesting.frm

📁 上机考试系统
💻 FRM
📖 第 1 页 / 共 3 页
字号:
            Index           =   3
            Left            =   1785
            TabIndex        =   15
            Top             =   315
            Width           =   405
         End
         Begin VB.OptionButton optPR1 
            Caption         =   "C"
            Height          =   210
            Index           =   2
            Left            =   1320
            TabIndex        =   14
            Top             =   315
            Width           =   405
         End
         Begin VB.OptionButton optPR1 
            Caption         =   "B"
            Height          =   210
            Index           =   1
            Left            =   810
            TabIndex        =   13
            Top             =   315
            Width           =   405
         End
         Begin VB.OptionButton optPR1 
            Caption         =   "A"
            Height          =   210
            Index           =   0
            Left            =   345
            TabIndex        =   12
            Top             =   315
            Width           =   405
         End
      End
   End
   Begin VB.Frame frmAnswer 
      Caption         =   "单项选择题答案"
      Height          =   3480
      Index           =   1
      Left            =   6435
      TabIndex        =   5
      Top             =   397
      Width           =   2985
      Begin VB.OptionButton optSO 
         Caption         =   "D"
         Height          =   285
         Index           =   3
         Left            =   585
         TabIndex        =   9
         Top             =   1335
         Width           =   735
      End
      Begin VB.OptionButton optSO 
         Caption         =   "C"
         Height          =   285
         Index           =   2
         Left            =   585
         TabIndex        =   8
         Top             =   1010
         Width           =   735
      End
      Begin VB.OptionButton optSO 
         Caption         =   "A"
         Height          =   285
         Index           =   0
         Left            =   570
         TabIndex        =   7
         Top             =   360
         Width           =   735
      End
      Begin VB.OptionButton optSO 
         Caption         =   "B"
         Height          =   285
         Index           =   1
         Left            =   585
         TabIndex        =   6
         Top             =   685
         Width           =   735
      End
   End
   Begin VB.Frame frmAnswer 
      Caption         =   "判断题答案"
      Height          =   3480
      Index           =   0
      Left            =   6435
      TabIndex        =   2
      Top             =   397
      Width           =   2985
      Begin VB.OptionButton optYesNo 
         Caption         =   "错误"
         Height          =   285
         Index           =   1
         Left            =   585
         TabIndex        =   4
         Top             =   690
         Width           =   735
      End
      Begin VB.OptionButton optYesNo 
         Caption         =   "正确"
         Height          =   285
         Index           =   0
         Left            =   585
         TabIndex        =   3
         Top             =   360
         Width           =   735
      End
   End
   Begin VB.Label lblNews 
      AutoSize        =   -1  'True
      Caption         =   "Label5"
      Height          =   180
      Left            =   6450
      TabIndex        =   36
      Top             =   4035
      Width           =   540
   End
   Begin VB.Label lblType 
      AutoSize        =   -1  'True
      Caption         =   "Label1"
      BeginProperty Font 
         Name            =   "宋体"
         Size            =   10.5
         Charset         =   134
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   210
      Left            =   532
      TabIndex        =   1
      Top             =   112
      Width           =   720
   End
End
Attribute VB_Name = "DoTest"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Option Base 1                       '定义数组下标从1开始
Dim objTest As Recordset            '用于保存考试记录数据
Dim objJudge As Recordset           '用于保存判断题题库数据
Dim objSelOne As Recordset          '用于保存选择题题库数据
Dim objProRead As Recordset         '用于保存程序阅读题题库数据
Dim objProFill As Recordset         '用于保存程序填空题题库数据
Dim objCn As Connection             '用于建立数据库连接
Dim strTest() As String             '用于表存学生答题信息
Dim iJ%, iSO%, iPR%, iPF%, iTotal%  '用于保存小题数和总题数

Private Sub cmbType_Click()
    '显示对应题型的第小题
    Select Case cmbType.ListIndex
        Case 0
            '显示判断题第一小题
            cmdMove(0).Value = True     '使第一条记录成为当前记录
        Case 1
            '显示选择题第一小题
            cmdMove(0).Value = True     '使第一条记录成为当前记录
            objTest.Move iJ - 1         '使最后一道判断题成为当前记录
            cmdMove(2).Value = True     '使第一道选择题成为当前记录
        Case 2
            '显示程序阅读题第一小题
            cmdMove(0).Value = True     '使第一条记录成为当前记录
            objTest.Move iJ + iSO - 1   '使最后一道选择题成为当前记录
            cmdMove(2).Value = True     '使第一道程序阅读题成为当前记录
        Case 3
            '显示程序填空第一小题
            cmdMove(0).Value = True                '使第一条记录成为当前记录
            objTest.Move iJ + iSO + iPR - 1        '使最后一道程序阅读题成为当前记录
            cmdMove(2).Value = True                '使第一道程序填空题成为当前记录
    End Select
End Sub

Private Sub cmdEsc_Click()
    If MsgBox("真的放弃本次考试码?", vbQuestion + vbYesNo, _
            "Basic自测考试") = vbYes Then
        Unload Me
        End  '结束程序运行
    End If
End Sub

Private Sub cmdSubmit_Click()
    On Error Resume Next
    Dim strA$, strB$, strC$, strD$, i%, strSQL$
    If MsgBox("请认真检查后交卷,交卷后则不能再继续考试!", _
              vbYesNo + vbInformation, "Basic自测考试") = vbYes Then
        '改变试题当前记录,保存对试题最后的修改
        cmdMove(1).Value = True
        '获得学生答题数据
        For i = 1 To iJ
            strA = strA & Chr(13) & Chr(10) & strTest(i, 1) & "=" & strTest(i, 2)
        Next
        For i = iJ + 1 To iJ + iSO
            strB = strB & Chr(13) & Chr(10) & strTest(i, 1) & "=" & strTest(i, 2)
        Next
        For i = iJ + iSO + 1 To iJ + iSO + 3 * iPR
            strC = strC & Chr(13) & Chr(10) & strTest(i, 1) & "=" & strTest(i, 2)
        Next
        For i = iJ + iSO + 3 * iPR + 1 To iTotal
            strD = strD & Chr(13) & Chr(10) & strTest(i, 1) & "=" & strTest(i, 2)
        Next
        strA = Mid(strA, 3)
        strB = Mid(strB, 3)
        strC = Mid(strC, 3)
        strD = Mid(strD, 3)
        '将学生答题数据存入数据库
        strSQL = "Insert into 考试记录 (考号,判断题,选择题,程序阅读,程序填空) " & _
                 "VALUES ('" & StudentCode & "','" & strA & "','" & strB & "','" _
                 & strC & "','" & strD & "')"
        objCn.Open
        objCn.Execute strSQL
        objCn.Close
        MsgBox "成功提交试题,考试结束!", vbInformation, "Basic自测考试"
        Unload Me
        End  '结束程序运行
    End If
End Sub

Private Sub Form_Load()
    Dim n%, i%, m%, s%, s1%
    Set objCn = New Connection
    With objCn                                 '建立数据库联接
        .Provider = "SQLOLEDB"
        .ConnectionString = "User ID=sa;PWD=123;Server=" & TestServerIP & _
                            ";Initial Catalog=自测考试"
        .Open
    End With
    '访问数据库获得判断题数据
    Set objJudge = New Recordset                '实例化对象
    With objJudge
        Set .ActiveConnection = objCn           '建立数据库连接
        .CursorLocation = adUseClient           '指定使用客户端游标
        .CursorType = adOpenStatic              '指定使用静态游标
        .Open "SELECT * FROM 判断题"            '获取判断题数据
        Set .ActiveConnection = Nothing         '断开数据库连接
    End With

    '访问数据库获得单项选择题数据
    Set objSelOne = New Recordset                '实例化对象
    With objSelOne
        Set .ActiveConnection = objCn           '建立数据库连接
        .CursorLocation = adUseClient           '指定使用客户端游标
        .CursorType = adOpenStatic              '指定使用静态游标
        .Open "SELECT * FROM 选择题"            '获取选择题数据
        Set .ActiveConnection = Nothing         '断开数据库连接
    End With
    '访问数据库获得程序阅读题数据
    Set objProRead = New Recordset                '实例化对象
    With objProRead
        Set .ActiveConnection = objCn           '建立数据库连接
        .CursorLocation = adUseClient           '指定使用客户端游标
        .CursorType = adOpenStatic              '指定使用静态游标
        .Open "SELECT * FROM 程序阅读"          '获取程序阅读题数据
        Set .ActiveConnection = Nothing         '断开数据库连接
    End With
    '访问数据库获得程序填空题数据
     Set objProFill = New Recordset                '实例化对象
    With objProFill
        Set .ActiveConnection = objCn           '建立数据库连接
        .CursorLocation = adUseClient           '指定使用客户端游标
        .CursorType = adOpenStatic              '指定使用静态游标
        .Open "SELECT * FROM 程序填空"          '获取程序填空题数据
        Set .ActiveConnection = Nothing         '断开数据库连接
    End With
    '访问数据库获得本次试题数据
    Set objTest = New Recordset                '实例化对象
    With objTest
        Set .ActiveConnection = objCn           '建立数据库连接
        .CursorLocation = adUseClient           '指定使用客户端游标
        .CursorType = adOpenStatic              '指定使用静态游标
        .Open "SELECT * FROM ThisTest"          '获取本次试题数据
        Set .ActiveConnection = Nothing         '断开数据库连接
        '统计总题数
        .Filter = "题型='判断题'"
        n = n + .RecordCount
        iJ = .RecordCount
        s = n * .Fields("分数")
        lblNews = "一、判断题(" & Trim(Str(n)) & "小题,每题" & Trim(Str(.Fields("分数"))) _
                & "分,共" & Trim(Str(s)) & "分)"
        .Filter = "题型='选择题'"
        m = .RecordCount
        iSO = m
        n = n + m
        s1 = m * .Fields("分数")
        s = s + s1
        lblNews = lblNews & vbCrLf & "二、选择题(" & Trim(Str(m)) & "小题,每题" & Trim(Str(.Fields("分数"))) _
                & "分,共" & Trim(Str(s1)) & "分)"
        .Filter = "题型='程序阅读'"
        iPR = .RecordCount
        n = n + .RecordCount * 3
        s1 = .Fields("分数")

⌨️ 快捷键说明

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