随机组卷

Function IDArrlist() As Integer
        '先根据表TestInfo中的CourseType和Type项目索引出试题的Id号码,组成一个以逗号为分隔符的字符串
        db.DbConn.Open()
        db.DbCmd.CommandText = "select id from testinfo where CourseType=@kecheng and type=@leixing"
        db.DbCmd.Parameters.Add("@kecheng", KcName.SelectedValue)
        db.DbCmd.Parameters.Add("@leixing", Type.SelectedValue)
        Dim dr As SqlClient.SqlDataReader = db.DbCmd.ExecuteReader
        ltID.Text = ""
        While dr.Read
            ltID.Text += dr(0) & ","
        End While
        Session.Add("ID", ltID.Text)
        db.DbConn.Close()


        '******开始调用相关函数****

        'ChuLiStr()
        '*********结束*************
        Dim StrId As String = Session("id")
        Dim Num As Integer = 2


        Dim str() As String = StrId.Replace("(", "").Replace(")", "").Split(",")
        Dim ArrNum As Integer = str.Length
        Select Case Type.SelectedValue
            Case "选择"
                Session("xz") = ""
                LtXiaoTi.Text += "《选择题》" & "<br>"
            Case "判断"
                Session("pd") = ""
                LtXiaoTi.Text += "《判断题》" & "<br>"
            Case "填空"
                Session("tk") = ""
                LtXiaoTi.Text += "《填空题》" & "<br>"
        End Select
        For Num = 1 To CInt(txtNUm.Text)
            Dim i As Integer = CInt(Int((ArrNum - 1 + 1) * Rnd() + 1))

            db.DbConn.Close()
            db.DbConn.Open()

            db.DbCmd.CommandText = "select * from testinfo where id=" & str(i)

            Dim SdrDr As SqlClient.SqlDataReader = db.DbCmd.ExecuteReader

            While SdrDr.Read

                Select Case Type.SelectedValue
                    Case "选择"

                        LtXiaoTi.Text += "【" & SdrDr(0) & "】、" & SdrDr(1) & "<br>"
                        Session.Add("xz", LtXiaoTi.Text)
                    Case "判断"

                        LtXiaoTi.Text += "【" & SdrDr(0) & "】、" & SdrDr(1) & "<br>"
                        Session.Add("pd", LtXiaoTi.Text)
                    Case "填空"

                        LtXiaoTi.Text += "【" & SdrDr(0) & "】、" & SdrDr(1) & "<br>"
                        Session.Add("tk", LtXiaoTi.Text)
                End Select

            End While
            'Response.Write("这是下标" & i & "值" & str(i))
        Next
    End Function 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
通用考试组卷打印系统 用户使用说明 1、 开发背景 为简化组卷程序、方便快捷生成试卷并打印,我们开发了《通用考试组卷打印系统》。该系统是一个方便、快捷、简单、实用的自动组卷系统,可根据用户定制的试卷信息,随机生成试卷及答案,并输出到Word中,方便用户打印、存档;系统也可由用户自己选题、组卷、打印。系统目前支持填空题、单选题、多选题、判断题、简答题五种题型,自带题库维护工具,可由用户自行添加、删除题库,适用于各行各业的笔试考试。 2、 安装说明 为保证系统输出功能的正常运行,请确保电脑中安装了完整版Microsoft Word(精简版、绿色版的Word无法正常输出试卷)。 3、 系统功能 (1) 随机组卷:根据用户设置的各种题型数目、分值,随机在题库中抽取题目、生成试卷、输出到Word。 填空题有两种生成方式:一是按题目数量出题,按题算分;二是按填空数量出题,按空算分。无论选取哪种出题方式,请确保题库中有足够数量的题目,否则可能无法正确组卷。 其他题目依次设置题目数目、分值即可。如不需出某种题型,请在数目中输入“0”。 设置完毕后,点击“生成试卷”按钮即可。 (2) 人工组卷:根据用户选择的题目,生成试卷、输出到Word。 首先在左侧题目列表中勾选题目,然后点击“加入试卷”按钮,系统会自动统计出各种题型的题目数量,设置好题目分值,点击“生成试卷”按钮即可。 (3) 题库维护:对题目进行增加、删除、修改等操作。 首先切换到要编辑的题型标签页—— 添加:点击“添加”按钮,然后录入题目及答案,点击“提交”即可,或点击“取消”取消该题目的添加。 删除:在下方的“题目列表”中选中要删除的题目,点击“删除”按钮即可。 修改:在下方的“题目列表”中选中要修改的题目,在上方的题目和答案区域进行修改,修改完毕后,点击“修改”按钮即可。 清空库:该操作将删除该题型的所有题目,请慎用。 备份数据库:系统数据库文件为“ExamDB.mdb”,将该文件拷贝到其他目录下即可,还原时直接拷贝覆盖。 注意:系统为满足不同用户需求,内置了很多冗余答案选项(例如多选题选项有14个,为A-N),您只需录入与您题目对应的选项即可,多余的留空。 4、 其他 请原谅我们对试用版进行了题目数量的限制(每种题型最多生成10道题)。开发该系统,倾注了我们的辛勤劳动,如果您感觉该软件对您的工作有所帮助,请赞助我们——购买注册版,我们会更加努力的去完善该系统,谢谢! 版权所有(C) 2010 兼金软件工作室 网址:www.JG-S.com
以下是一个简单的C语言程序实现随机组卷功能: ```c #include <stdio.h> #include <stdlib.h> #include <time.h> #define NUM_QUESTIONS 3000 #define NUM_STUDENTS 100 #define QUESTIONS_PER_EXAM 50 int main() { int i, j, k, num, temp; int question_list[NUM_QUESTIONS]; int exam_list[NUM_STUDENTS][QUESTIONS_PER_EXAM]; srand(time(NULL)); // 设置随机数种子 // 初始化题库,题目编号从1-3000 for (i = 0; i < NUM_QUESTIONS; i++) { question_list[i] = i + 1; } // 为每个学生生成一份试卷 for (i = 0; i < NUM_STUDENTS; i++) { // 随机选择题目 for (j = 0; j < QUESTIONS_PER_EXAM; j++) { // 避免重复选择同一道题目 do { num = rand() % NUM_QUESTIONS; temp = question_list[num]; } while (temp == 0); exam_list[i][j] = temp; question_list[num] = 0; // 标记已选择的题目 } // 恢复题库 for (k = 0; k < NUM_QUESTIONS; k++) { if (question_list[k] == 0) { question_list[k] = k + 1; } } } // 输出试卷 for (i = 0; i < NUM_STUDENTS; i++) { printf("学生%d的试卷:\n", i + 1); for (j = 0; j < QUESTIONS_PER_EXAM; j++) { printf("%d ", exam_list[i][j]); } printf("\n"); } return 0; } ``` 这个程序首先定义了题库的大小、学生人数以及每份试卷的题目数量。接着初始化题库,将题目编号从1到3000存储在数组中。然后,使用rand()函数生成随机数来选择题目,避免重复选择。将每个学生的试题存储在二维数组中,并输出试卷。 这个程序只是一个简单的示例,实际应用中需要考虑更多的因素,如题目的类型、难度、知识点覆盖等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值