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

📄 paperproperty.frm

📁 vb写的试题库生成系统
💻 FRM
📖 第 1 页 / 共 5 页
字号:
        For j = 0 To cmbChapter(0).ListCount - 1
            n = n + Chapter(i, j)
        Next
        If n <> Val(txtCount(i)) Then Chapter(i, 0) = Chapter(i, 0) + Val(txtCount(i)) - n
    Next
    '将cmbchapter列表itemdata中的百分比数转换为章节编号
    For i = 0 To 4
        For j = 0 To cmbChapter(0).ListCount - 1
            objRsChapter.MoveFirst
            objRsChapter.Find "名称='" & cmbChapter(i).List(j) & "'"
            cmbChapter(i).ItemData(j) = objRsChapter!编号
        Next
    Next
    
    '生成试卷
    For i = 0 To 4
        Selected = ""
        Select Case i
            Case 0  '选择判断题
                strTest = strTest & "一、判断题。(共" & txtCount(i) _
                    & ",每小题" & txtAvg(i) & "分,共" & txtScore(i) & "分)" & vbCrLf
                strAnswer = strAnswer & "一、判断题。(共" & txtCount(i) _
                    & ",每小题" & txtAvg(i) & "分,共" & txtScore(i) & "分)" & vbCrLf
                j = 1
                While Count(i) > 0
                    '随即产生一个未选择的试题的记录序号
                    Do
                        If Timer - doTime > 20 Then
                            MsgBox "1本次生成试题花费时间过长,退出重试!", vbCritical
                            Exit Sub
                        End If
                        n = Int(Rnd * objRsJudge.RecordCount + 1) '判断题
                    Loop Until InStr(Selected, "#" & n & "#") = 0
                    Selected = Selected & "#" & n & "#"
                    objRsJudge.MoveFirst
                    objRsJudge.Move n - 1
                    Select Case objRsJudge!难度
                        Case 0
                            If Level0(i) > 0 Then
                                '检查本章试题是否已选够
                                For n = 0 To 4
                                    If cmbChapter(i).ItemData(n) = objRsJudge!章节 Then Exit For
                                Next
                                If Chapter(i, n) > 0 Then
                                    strTest = strTest & j & "、" & objRsJudge!题干 & "( )" & vbCrLf
                                    strAnswer = strAnswer & j & "、"
                                    If objRsJudge!答案 Then
                                        strAnswer = strAnswer & "错误"
                                    Else
                                        strAnswer = strAnswer & "正确"
                                    End If
                                    strAnswer = strAnswer & vbCrLf
                                    j = j + 1
                                    Chapter(i, n) = Chapter(i, n) - 1
                                    Level0(i) = Level0(i) - 1
                                    Count(i) = Count(i) - 1
                                    If Not IsNull(objRsJudge!图片) Then _
                                        strTest = strTest & "本题图片:" & objRsJudge!图片
                                End If
                            End If
                        Case 1
                            If Level1(i) > 0 Then
                                '检查本章试题是否已选够
                                For n = 0 To 4
                                    If cmbChapter(i).ItemData(n) = objRsJudge!章节 Then Exit For
                                Next
                                If Chapter(i, n) > 0 Then
                                    strTest = strTest & j & "、" & objRsJudge!题干 & "( )" & vbCrLf
                                    strAnswer = strAnswer & j & "、"
                                    If objRsJudge!答案 Then
                                        strAnswer = strAnswer & "错误"
                                    Else
                                        strAnswer = strAnswer & "正确"
                                    End If
                                    strAnswer = strAnswer & vbCrLf
                                    j = j + 1
                                    Chapter(i, n) = Chapter(i, n) - 1
                                    Level1(i) = Level1(i) - 1
                                    Count(i) = Count(i) - 1
                                    If Not IsNull(objRsJudge!图片) Then _
                                        strTest = strTest & "本题图片:" & objRsJudge!图片
                                End If
                            End If
                        Case 2
                            If Level2(i) > 0 Then
                                '检查本章试题是否已选够
                                For n = 0 To 4
                                    If cmbChapter(i).ItemData(n) = objRsJudge!章节 Then Exit For
                                Next
                                If Chapter(i, n) > 0 Then
                                    strTest = strTest & j & "、" & objRsJudge!题干 & "( )" & vbCrLf
                                    strAnswer = strAnswer & j & "、"
                                    If objRsJudge!答案 Then
                                        strAnswer = strAnswer & "错误"
                                    Else
                                        strAnswer = strAnswer & "正确"
                                    End If
                                    strAnswer = strAnswer & vbCrLf
                                    j = j + 1
                                    Chapter(i, n) = Chapter(i, n) - 1
                                    Level2(i) = Level2(i) - 1
                                    Count(i) = Count(i) - 1
                                    If Not IsNull(objRsJudge!图片) Then _
                                        strTest = strTest & "本题图片:" & objRsJudge!图片
                                End If
                            End If
                    End Select
                Wend
            Case 1  '选择单选题
                strTest = strTest & "二、单选题。(共" & txtCount(i) _
                    & ",每小题" & txtAvg(i) & "分,共" & txtScore(i) & "分)" & vbCrLf
                strAnswer = strAnswer & "二、单选题。(共" & txtCount(i) _
                    & ",每小题" & txtAvg(i) & "分,共" & txtScore(i) & "分)" & vbCrLf
                j = 1
                While Count(i) > 0
                    '随即产生一个未选择的试题的记录序号
                    Do
                        If Timer - doTime > 30 Then
                            MsgBox "本次生成试题花费时间过长,退出重试!", vbCritical
                            Exit Sub
                        End If
                        n = Int(Rnd * objRsSingle.RecordCount + 1)
                    Loop Until InStr(Selected, "#" & n & "#") = 0
                    Selected = Selected & "#" & n & "#"
                    objRsSingle.MoveFirst
                    objRsSingle.Move n - 1
                    Select Case objRsSingle!难度
                        Case 0
                            If Level0(i) > 0 Then
                                '检查本章试题是否已选够
                                For n = 0 To 4
                                    If cmbChapter(i).ItemData(n) = objRsSingle!章节 Then Exit For
                                Next
                                If Chapter(i, n) > 0 Then
                                    strTest = strTest & j & "、" & objRsSingle!题干 & vbCrLf
                                    strTest = strTest & "    A、" & objRsSingle!选项1 & vbCrLf
                                    strTest = strTest & "    B、" & objRsSingle!选项2 & vbCrLf
                                    strTest = strTest & "    C、" & objRsSingle!选项3 & vbCrLf
                                    strTest = strTest & "    D、" & objRsSingle!选项4 & vbCrLf
                                    strAnswer = strAnswer & j & "、" & Abcd(objRsSingle!答案) & vbCrLf
                                    j = j + 1
                                    Chapter(i, n) = Chapter(i, n) - 1
                                    Level0(i) = Level0(i) - 1
                                    Count(i) = Count(i) - 1
                                    If Not IsNull(objRsSingle!图片) Then _
                                        strTest = strTest & "本题图片:" & objRsSingle!图片
                                End If
                            End If
                        Case 1
                            If Level1(i) > 0 Then
                                '检查本章试题是否已选够
                                For n = 0 To 4
                                    If cmbChapter(i).ItemData(n) = objRsSingle!章节 Then Exit For
                                Next
                                If Chapter(i, n) > 0 Then
                                    strTest = strTest & j & "、" & objRsSingle!题干 & vbCrLf
                                    strTest = strTest & "    A、" & objRsSingle!选项1 & vbCrLf
                                    strTest = strTest & "    B、" & objRsSingle!选项2 & vbCrLf
                                    strTest = strTest & "    C、" & objRsSingle!选项3 & vbCrLf
                                    strTest = strTest & "    D、" & objRsSingle!选项4 & vbCrLf
                                    strAnswer = strAnswer & j & "、" & Abcd(objRsSingle!答案) & vbCrLf
                                    j = j + 1
                                    Chapter(i, n) = Chapter(i, n) - 1
                                    Level1(i) = Level1(i) - 1
                                    Count(i) = Count(i) - 1
                                    If Not IsNull(objRsSingle!图片) Then _
                                        strTest = strTest & "本题图片:" & objRsSingle!图片
                                End If
                            End If
                        Case 2
                            If Level2(i) > 0 Then
                                '检查本章试题是否已选够
                                For n = 0 To 4
                                    If cmbChapter(i).ItemData(n) = objRsSingle!章节 Then Exit For
                                Next
                                If Chapter(i, n) > 0 Then
                                    strTest = strTest & j & "、" & objRsSingle!题干 & vbCrLf
                                    strTest = strTest & "    A、" & objRsSingle!选项1 & vbCrLf
                                    strTest = strTest & "    B、" & objRsSingle!选项2 & vbCrLf
                                    strTest = strTest & "    C、" & objRsSingle!选项3 & vbCrLf
                                    strTest = strTest & "    D、" & objRsSingle!选项4 & vbCrLf
                                    strAnswer = strAnswer & j & "、" & Abcd(objRsSingle!答案) & vbCrLf
                                    j = j + 1
                                    Chapter(i, n) = Chapter(i, n) - 1
                                    Level2(i) = Level2(i) - 1
                                    Count(i) = Count(i) - 1
                                    If Not IsNull(objRsSingle!图片) Then _
                                        strTest = strTest & "本题图片:" & objRsSingle!图片
                                End If
                            End If
                    End Select
                Wend
            Case 2  '选择多选题
                strTest = strTest & "三、多选题。(共" & txtCount(i) _
                    & ",每小题" & txtAvg(i) & "分,共" & txtScore(i) & "分)" & vbCrLf
                strAnswer = strAnswer & "三、多选题。(共" & txtCount(i) _
                    & ",每小题" & txtAvg(i) & "分,共" & txtScore(i) & "分)" & vbCrLf
                j = 1
                While Count(i) > 0
                    '随即产生一个未选择的试题的记录序号
                    Do
                        If Timer - doTime > 30 Then
                            MsgBox "本次生成试题花费时间过长,退出重试!", vbCritical
                            Exit Sub
                        End If
                        n = Int(Rnd * objRsMore.RecordCount + 1)
                    Loop Until InStr(Selected, "#" & n & "#") = 0
                    Selected = Selected & "#" & n & "#"
                    objRsMore.MoveFirst
                    objRsMore.Move n - 1
                    Select Case objRsMore!难度
                        Case 0
                            If Level0(i) > 0 Then
                                '检查本章试题是否已选够
                                For n = 0 To 4
                                    If cmbChapter(i).ItemData(n) = objRsMore!章节 Then Exit For
                                Next
                                If Chapter(i, n) > 0 Then
                                    strTest = strTest & j & "、" & objRsMore!题干 & vbCrLf
                                    strTest = strTest & "    A、" & objRsMore!选项1 & vbCrLf
                                    strTest = strTest & "    B、" & objRsMore!选项2 & vbCrLf
                                    strTest = strTest & "    C、" & objRsMore!选项3 & vbCrLf
                                    strTest = strTest & "    D、" & objRsMore!选项4 & vbCrLf
                                    strAnswer = strAnswer & j & "、"
                                     For more = 0 To 3
                                        If Mid(objRsMore!答案, more + 1, 1) = "1" Then _
                                            strAnswer = strAnswer & Abcd(more) & ","
                                    Next
                                    strAnswer = strAnswer & vbCrLf
                                    j = j + 1
                                    Chapter(i, n) = Chapter(i, n) - 1
                                    Level0(i) = Level0(i) - 1
                                    Count(i) = Count(i) - 1
                                    If Not IsNull(objRsMore!图片) Then _
                                        strTest = strTest & "本题图片:" & objRsMore!图片
                                End If
                            End If
                        Case 1
                            If Level1(i) > 0 Then
                                '检查本章试题是否已选够
                                For n = 0 To 4
                                    If cmbChapter(i).ItemData(n) = objRsMore!章节 Then Exit For
                                Next
                                If Chapter(i, n) > 0 Then
                                    strTest = strTest & j & "、" & objRsMore!题干 & vbCrLf
                                    strTest = strTest & "    A、" & objRsMore!选项1 & vbCrLf
                                    strTest = strTest & "    B、" & objRsMore!选项2 & vbCrLf
                                    strTest = strTest & "    C、" & objRsMore!选项3 & vbCrLf
                                    strTest = strTest & "    D、" & objRsMore!选项4 & vbCrLf
                                    strAnswer = strAnswer & j & "、"
                                    For more = 0 To 3
                                        If Mid(objRsMore!答案, more + 1, 1) = "1" Then _
                                            strAnswer = strAnswer & Abcd(more) & ","
                                    Next
                                    strAnswer = strAnswer & vbCrLf
                                    j = j + 1
                                    Chapter(i, n) = Chapter(i, n) - 1
                                    Level1(i) = Level1(i) - 1
                                    Count(i) = Count(i) - 1
                                    If Not IsNull(objRsMore!图片) Then _
                                        strTest = strTest & "本题图片:" & objRsMore!图片
                                End If
                            End If
                        Case 2
                            If Level2(i) > 0 Then
                                '检查本章试题是否已选够
                                For n = 0 To 4
                                    If cmbChapter(i).ItemData(n) = objRsMore!章节 Then Exit For
                                Next
                                If Chapter(i, n) > 0 Then
                                    strTest = strTest & j & "、" & objRsMore!题干 & vbCrLf
                                    strTest = strTest & "    A、" & objRsMore!选项1 & vbCrLf
                                    strTest = strTest & "    B、" & objRsMore!选项2 & vbCrLf
                                    strTest = strTest & "    C、" & objRsMore!选项3 & vbCrLf
                                    strTest = strTest & "    D、" & objRsMore!选项4 & vbCrLf
                                    strAnswer = strAnswer & j & "、"
                                     For more = 0 To 3
                                        If Mid(objRsMore!答案, more + 1, 1) = "1" Then _
                                            strAnswer = strAnswer & Abcd(more) & ","
                                    Next
                                    strAnswer = strAnswer & vbCrLf
                                    j = j + 1
                                    Chapter(i, n) = Chapter(i, n) - 1
                                    Level2(i) = Level2(i) - 1
                                    Count(i) = Count(i) - 1
                                    If Not IsNull(objRsMore!图片) Then _
                                        strTest = strTest & "本题图片:" & objRsMore!图片
                                End If
                            End If
                    End Select
                Wend
            Case 3  '选择填空题
                strTest = strTest & "四、填空题。(共" & txtCount(i) _
                    & ",每小题" & txtAvg(i) & "分,共" & txtScore(i) & "分)" & vbCrLf
                strAnswer = strAnswer & "四、填空题。(共" & txtCount(i) _
                    & ",每小题" & txtAvg(i) & "分,共" & txtScore(i) & "分)" & vbCrLf
                j = 1
                While Count(i) > 0

⌨️ 快捷键说明

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