vba调用mysql随机出题软件_题库需要随机进行出题

Function 随机试题()    '产生随机数代码,40个随机数字从1~100中取

'1、声明变量

Dim dx As Integer            '随机单选题数值

Dim dxjh As New Collection   '随机单选题数值集合,不重复

Dim dxzsl As Integer         '单选题库总数量

Dim dxsl As Integer          '本次单选题数量

Dim ux As Integer            '随机多选题数值

Dim uxjh As New Collection   '随机多选题数值集合,不重复

Dim uxzsl As Integer         '多选题库总数量

Dim uxsl As Integer          '本次多选题数量

Dim pd As Integer            '随机判断题数值

Dim pdjh As New Collection   '随机判断题数值集合,不重复

Dim pdzsl As Integer         '判断题库总数量

Dim pdsl As Integer          '本次判断题数量

Dim ws1 As Worksheet

Dim ws2 As Worksheet

Dim ws3 As Worksheet

Dim a As Integer              '循环值

'2、初始赋值

Set ws1 = ThisWorkbook.Worksheets("题库")

Set ws2 = ThisWorkbook.Worksheets("考试结果")

Set ws3 = ThisWorkbook.Worksheets("系统参数")

dxzsl = 0

uxzsl = 0

pdzsl = 0

'3、计算单选、多选、判断题的总数量及本次选择数量

'(1)删除原来选择的题目

For a = 2 To ws2.UsedRange.Rows.Count

ws2.Cells(a, 3) = ""

ws2.Cells(a, 4) = ""

ws2.Cells(a, 5) = ""

ws2.Cells(a, 6) = ""

ws2.Cells(a, 7) = ""

Next

'(1)计算试题总量

For a = 2 To ws1.UsedRange.Rows.Count

If ws1.Cells(a, 8) = "单选题" Then

dxzsl = dxzsl + 1

End If

If ws1.Cells(a, 8) = "多选题" Then

uxzsl = uxzsl + 1

End If

If ws1.Cells(a, 8) = "判断题" Then

pdzsl = pdzsl + 1

End If

Next

dxsl = ws3.Cells(4, 2)

uxsl = ws3.Cells(8, 2)

pdsl = ws3.Cells(12, 2)

With ws3.Cells(4, 2).FormatConditions

.Delete

.Add Type:=xlExpression, Formula1:=dxsl > dxzsl

.Item(1).Interior.ColorIndex = 3

End With

With ws3.Cells(8, 2).FormatConditions

.Delete

.Add Type:=xlExpression, Formula1:=uxsl > uxzsl

.Item(1).Interior.ColorIndex = 3

End With

With ws3.Cells(12, 2).FormatConditions

.Delete

.Add Type:=xlExpression, Formula1:=pdsl > pdzsl

.Item(1).Interior.ColorIndex = 3

End With

If dxsl > dxzsl Then

dxsl = dxzsl: ws3.Cells(4, 2) = dxzsl: ws3.Cells(4, 2).Select

End If

If uxsl > uxzsl Then

uxsl = uxzsl: ws3.Cells(8, 2) = uxzsl: ws3.Cells(8, 2).Select

End If

If pdsl > pdzsl Then

pdsl = pdzsl: ws3.Cells(12, 2) = pdzsl: ws3.Cells(12, 2).Select

End If

'

'4、随机选择题目

On Error Resume Next '如果集合里出现重复值就会产生错误,故要用到错误处理

Randomize                    '初始化随机数生成器(用系统计时器(Timer 函数)的返回值作为新的随机数种子值)

Do

dx = Int(Rnd() * dxzsl) + 1

If dx > dxzsl Then

dx = dxzsl

End If

dxjh.Add dx, CStr(dx)

Loop Until dxjh.Count = dxsl '增加到集合里,一直到集合里的个数等于单选题数

For a = 1 To dxsl

ws2.Cells(a + 1, 3) = dxjh(a) + 1

Next

For Each dxx In dxjh

dxx.Remove

Next

Randomize                    '初始化随机数生成器(用系统计时器(Timer 函数)的返回值作为新的随机数种子值)

Do

ux = Int(Rnd() * uxzsl) + 1

If ux > uxzsl Then

ux = uxzsl

End If

uxjh.Add ux, CStr(ux)

Loop Until uxjh.Count = uxsl '增加到集合里,一直到集合里的个数等于多选题数

For a = 1 To uxsl

ws2.Cells(a + dxsl + 1, 3) = uxjh(a) + dxzsl + 1

Next

For Each uxx In uxjh

uxx.Remove

Next

Randomize                    '初始化随机数生成器(用系统计时器(Timer 函数)的返回值作为新的随机数种子值)

Do

pd = Int(Rnd() * pdzsl) + 1

If pd > pdzsl Then

pd = pdzsl

End If

pdjh.Add pd, CStr(pd)

Loop Until pdjh.Count = pdsl '增加到集合里,一直到集合里的个数等于判断题数

For a = 1 To pdsl

ws2.Cells(a + dxsl + uxsl + 1, 3) = pdjh(a) + dxzsl + uxzsl + 1

Next

For Each pdx In pdjh

pdx.Remove

Next

'5、试题标准答案、试题分值

For a = 2 To ws2.UsedRange.Rows.Count

ws2.Cells(a, 4) = ws1.Cells(ws2.Cells(a, 3), 9)

ws2.Cells(a, 5) = ""

If ws2.Cells(a, 2) = "单选题" Then

ws2.Cells(a, 6) = ws3.Cells(5, 2)

End If

If ws2.Cells(a, 2) = "多选题" Then

ws2.Cells(a, 6) = ws3.Cells(9, 2)

End If

If ws2.Cells(a, 2) = "判断题" Then

ws2.Cells(a, 6) = ws3.Cells(13, 2)

End If

ws2.Cells(a, 7) = ""

Next

'6、试题排序

ws2.Columns("C:D").Sort Key1:=ws2.Range("C1"), Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:=True, Orientation:=xlSortColumns, SortMethod:=xlPinYin, DataOption1:=xlSortNormal

'Err.Clear

'On Error GoTo 0 '清除错误处理,之后产生的错误还会捕捉到

End Function

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
计算机试题库系统主要由两部分组成:一是试题库本身(试题、答案、编码),二是试题库管理软件。试题库是系统的基础、原材料,软件是系统的调度、加工者。  在计算机应用迅速普及的今天,试题库管理软件并不少见。但要想找到一款适合大众、通用性强、简单方便的软件却不容易。针对这种情况,我们经过多年研究,开发了一套独具特色的试题库管理软件。它面向大众,所有操作全部在Word环境中进行,符合人们习惯。本系统无须安装,直接拷贝就可以使用,属于绿色软件。本题库系统可以实现图文混排,功能丰富,通用性强,适用于各级各类学校及教育管理部门。  下面对这个软件的特点、功能和使用方法进行介绍。 一、主要特点     (一)直接利用Word环境,使用Word的所有功能。  Word是微软公司集成办公软件Office中的一个组件,是用户使用最为广泛的软件平台之一。用其内嵌的编程语言VBA进行二次开发得到的应用软件,既可以使繁琐、重复操作自动化,提高工作效率和应用水平,同时又不改变Word原有的界面风格、系统功能和操作方式,特别是它的编辑、排版、打印功能。用户不必经过特殊学习和培训,即可使用,大大降低软件的使用门槛,提高了软件的可用性。   (二)拷贝即用,绿色软件。  本试题库管理系统包含四个Word文档文件(其中带有VBA程序),只要将这些文件拷贝到任何装有Word系统的计算机中就可以直接使用,不需额外安装,不用时可直接删除,无需卸载,属于绿色软件。   (三)可以管理多媒体试题库。  由于试题、答案、试卷、参数及统计信息全部在Word环境中,所以可以方便地处理文字、图形、表格、公式、符号,以及音频、视频等信息,实现对各种媒体信息的管理和加工处理。   (四)利用了教育测量理论的最新研究成果。  本题库管理系统利用教育测量理论的最新研究成果,合理设置试题参数,动态制订组卷策略,使题库结构科学、合理。同时,采用先进的软件技术和算法,优化了时空效率,增加了通用性、可维护性和可移植性。    二、基本功能     (一)题库维护  本软件作为一个通用试题库管理系统,不同课程均可以使用该软件管理相应的试题库。每一门课程的试题库为一个Word文档,其中包括试题及其答案。对每一道试题的参数和题干部分,可直接在Word环境中进行增、删、改、排序等操作,并可随时检测是否有重复试题现。为醒目起见,系统可自动将试题和答案的参数涂上不同颜色。  (二)信息统计  统计整个题库中各章、各题型、各难度的试题数量、分数,总题量,总分数。指定组卷时各章、各题型、各难度的抽题数量后,系统可统计总题数,总分数。  (三)生成试卷  按照预先设置或临时指定的组卷策略,即各章、各题型、各难度的抽题数量,系统进行随机抽题,形成试卷和答案文档。   (四)试卷加工  除了用Word本身功能对试卷进行编辑、排版、打印等操作外,系统还提供了更换试题(更换符合条件的其它试题)、查看原题(定位到题库中对应的试题,以便查看或修改)、删除参数(删除试卷和答案文档中全部参数,准备进行打印)功能。     三、使用方法     (一)准备软件环境  计算机系统中要装有Word2002或者更高版本。要允许Word使用“宏”,方法是在Word中选择“工具|宏|安全性”菜单项,设置安全级为“低”或“中”。   (二)打开文件  试题库管理系统包含四个文档文件:“题库”、“分布表”、“试卷”和“答案”。其中,“题库”是主文件,只要打开该文件,其余三个文件自动打开。  每一门课程的题库系统都应有一套四个这样的文件。   (三)题库维护  选择“题库”文档,在最前面设置标题,输入题型和内容说明信息。接下来依次输入每一道试题和答案。     图1试题库的设置     1、试题格式    ---答案内容,长度不限,形式任意---  其中:  "为答案开始标记(按住Ctrl键,在按键盘上左上角的字符)  ####为试题的四位编号(与试题编号对应)。  试题和答案可直接在Word环境中进行增添、删除、修改、格式控制、排版等操作。生成试卷时,格式与试题库中设置  的完全相同。  选中试题库的任意文本,单击题库工具栏的“查找同题”按钮,如果题库中有相同的内容,则光标定位到下一处,否则光标不动。  单击题库工具栏的“题标图色”按钮,系统将题库中全部试题和答案的参数分别涂上颜色。  “题库”窗口界面及内容如图1所示。   (四)信息统计  选择“分布表”文档,单击“题库统计”按钮,系统将统计整个题库中各章、各题型、各难度的试题数量、分数,总题量,总分数,并填入表格相应的单元中。  在得到试题分布信息后,可以在试题分布表相应的单元格中设置组卷时各章、各题型、各难度的抽题数量,单击“抽取信息”按钮后,系统统计抽取的总题数、总分数和试题分布信息。试题分布表及其内容如图2所示。   (五)生成试卷  在“分布表”文档的工具栏上单击“生成试卷”按钮,系统将按照指定的各章、各题型、各难度的抽题数量,进行  随机抽题,组成试卷和答案初稿,分别放到“试卷”和“答  案”文档中。接下来,可以进行调题、编辑、删除参数等加  工操作。   六)试卷加工  选择“试卷”文档,可以看到如图3所示的试卷初稿。  光标定位到任意试题参数行,单击“更换试题”按钮,系统将更换符合条件的其它试题。单击“查看原题”按钮,光标将定位到“题库”文档中对应的试题,此时可查看或修改原题。  单击“删除参数”按钮,系统自动删除试卷和答案文档中全部参数。  用Word本身功能可以对试卷和答案进行编辑、排版、格式控制、打印等操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值