基于Word的图文试题库系统(一)

下面介绍一些我今年暑假编的一套题库系统,是在word上用VBA编的题库系统。所有的操作在Word上完成!主要的功能有题库的录入,题库的统计,随机抽取题库试题,试题难度和内容的安排,试卷的排版!想知道具体的东西,可以到我发布的资源下载。下面把我的代码公布:

    下面把题库文档,分布表文档中的代码公布:

 ‘===========================================================================

’题库文档中的VBA代码:

‘thisdocument中的代码是:
Private Sub Document_Open()
Call ActivateOrOpenDocument("分布表.doc")
End Sub
Private Sub Document_Close()
Documents("题库.doc").Save
Call ActivateOrCloseDocument("分布表.doc")
End Sub
Sub ActivateOrOpenDocument(lb)
    Dim doc As Document
    Dim docFound As Boolean

    For Each doc In Documents
        If InStr(1, doc.Name, lb, 1) Then
            doc.Activate
            docFound = True
            Exit For
        Else
            docFound = False
        End If
    Next doc
    If docFound = False Then Documents.Open FileName:=lb
End Sub

Sub ActivateOrCloseDocument(lb)
On Error Resume Next
    Dim doc As Document
    Dim docFound As Boolean
    For Each doc In Documents
        If InStr(1, doc.Name, lb, 1) Then
            doc.Activate
            docFound = True
            Exit For
        Else
            docFound = False
        End If
    Next doc
    If docFound = True Then ActiveDocument.Close
End Sub


’题库中模块中的代码:

'“题标涂色”子程序
'这个子程序用来给试题库中所有试题和答案的题标(也就是编号和参数部分)涂上颜色,这样使每道题、答案看起来醒目,界限分明。
'其中,试题题标涂粉红色,答案题标涂青绿色,用下面程序“题标涂色”实现。子程序“题标涂色”代码如下:

Sub 题标涂色()
    Call ts(" ", wdWhite)
    Call ts("`", wdPink)
    Call ts("~", wdTurquoise)
End Sub

'由于对试题和答案题标的涂色方法相同,所不同的只是试题和答案的起始标志不同(分别是“`”和“~”),填涂的颜色不同,所以可以用带有两个参数的子程序进行涂色操作。

'“ts”子程序
'这个子程序进行涂色操作。参数mark和x_color分别表示起始标志和要填涂的颜色。程序从文件开头向下查找起始标志,如果找到的话,则选中当前行,填涂指定的颜色,再继续查找下一个起始标志,进行同样的处理,直至文件结尾。代码如下:

Sub ts(mark, x_color)
    Selection.HomeKey Unit:=wdStory     '到文件头
    Selection.Find.Text = mark          '指定要查找的字符
    fd = Selection.Find.Execute         '进行查找
    Do While fd
        Selection.EndKey Unit:=wdLine, Extend:=wdExtend     '选中当前行
        Selection.Range.HighlightColorIndex = x_color
        Selection.MoveRight Unit:=wdCharacter, Count:=1     '右移一个字符
        fd = Selection.Find.Execute                         '继续查找
    Loop
    Selection.HomeKey Unit:=wdStory                         '到文件头
End Sub

'“查找同题”子程序
'定义这个子程序的目的是为了检查题库中是否有重复出现的试题。在题库中选定任意一段文本,利用系统的环绕查找功能进行查找,如果找到相同的内容,光标将定位到相应的位置,如果没有重复内容,光标原地不动。子程序代码如下:

Sub 查找同题()
    tt = Selection.Text     '选定的文本
    With Selection.Find
        .Text = tt          '作为要查找的内容
        .Wrap = wdFindContinue   '环绕
        .Execute                 '执行查找
    End With
End Sub


‘=============================================================================

’分布表中的代码:

‘thisdocument中的代码:
Private Sub Document_Open()
Call ActivateOrOpenDocument("答案A.doc")
End Sub
Private Sub Document_Close()
Documents("试卷A.doc").Save
Call ActivateOrCloseDocument("答案A.doc")

End Sub

Sub ActivateOrOpenDocument(lb)
    Dim doc As Document
    Dim docFound As Boolean

    For Each doc In Documents
        If InStr(1, doc.Name, lb, 1) Then
            doc.Activate
            docFound = True
            Exit For
        Else
            docFound = False
        End If
    Next doc
    If docFound = False Then Documents.Open FileName:=lb
End Sub
Sub ActivateOrCloseDocument(lb)
On Error Resume Next
    Dim doc As Document
    Dim docFound As Boolean
    For Each doc In Documents
        If InStr(1, doc.Name, lb, 1) Then
            doc.Activate
            docFound = True
            Exit For
        Else
            docFound = False
        End If
    Next doc
    If docFound = True Then ActiveDocument.Close
End Sub

'模块一中的代码:
'题库信息统计
'    为了统计并显示出题库中各章、各种题型、各级难度的试题数量,各种题型、各级难度的总题数和总分数,各章的总题数和总分数,
'我们首先将统计结果存放到变量或数组中,然后再将变量或数组的内容添加到表格相应的单元格中。

'    另外,在统计组卷时要抽取的各种题型、各级难度的总题数和总分数,各章总题数和总分数以及在生成试卷过程中,也要用到相应的变量和数组。
'    这样,我们在“分布表”工程中插入“模块1”,在“模块1”中首先用下列语句声明模块级变量和数组:

Dim ts(18, 6, 3) As Integer     '题数(章号,题型,难度)
Dim zts(18) As Integer          '各章题数
Dim xns(18) As Integer          '各题型、难度的题数
Dim zfs(18) As Integer          '各章分数
Dim txf(6) As Integer           '各题型分数
Dim tb As Table                 '定义表类型变量
Dim txh(10) As Integer          '存放取题序号
Dim th                          '题号
Dim qts(18, 6, 3) As Integer    '取题数(章号,题型,难度)
Dim txm(6) As String          '各题型名
Dim txzs(6) As Integer          '各题型总题数
Dim txzf(6) As Integer           '各题型总分数

'“题库统计”代码如下:

Sub 题库统计()
    '将试题参数送数组或变量
    Erase ts, zts, xns, zfs, txf     '数组初始化
    Windows("题库.doc").Activate
    Application.ScreenUpdating = False  '关闭屏幕更新
    Options.DisplaySmartTagButtons = False  '关闭智能标记操作按钮
    Selection.HomeKey Unit:=wdStory         '光标到文件头
    Selection.Find.Text = "`"           '查找"标题"
    fnd = Selection.Find.Execute        '执行查找
    Do While fnd            '如果找到,循环
        Selection.MoveRight Unit:=wdWord, Count:=1, Extend:=wdExtend    '选中一个词
        Selection.MoveRight Unit:=wdCharacter, Count:=1                 '右移光标
        Selection.MoveRight Unit:=wdWord, Count:=1, Extend:=wdExtend    '选中下一个词
        tt = Selection.Text     '取出最右边4个字符
        If tt = "####" Then Exit Do     '遇到结束标记,结束循环
        zh = Val(Left(tt, 2))           '章号才
        tx = Asc(Mid(tt, 3, 1)) - 64    '题型
        nd = Val(Right(tt, 1))          '难度
        ts(zh, tx, nd) = ts(zh, tx, nd) + 1 '计数到数组
        zts(zh) = zts(zh) + 1               '统计各章题数
        xns((tx - 1) * 3 + nd) = xns((tx - 1) * 3 + nd) + 1 '统计各题型、难度的题数
        zj = zj + 1     '总题数
        Selection.MoveRight Unit:=wdCharacter, Count:=1 '右移一个字符
        fnd = Selection.Find.Execute    '继续查找
    Loop
    '删除第3、5、7、9、…、39行原有的信息
    Windows("分布表.doc").Activate
    Set tb = ActiveDocument.Tables(1)   '表格变量赋值
    For i = 3 To 39 Step 2
        Set rg = ActiveDocument.Range(tb.Cell(i, 4).Range.Start, _
        tb.Cell(i, 23).Range.End)       '设置一行20个单元格的区域
        rg.Delete Unit:=wdCharacter, Count:=1   '删除内容
    Next
    '删除第40行原有的信息
    Set rg = ActiveDocument.Range(tb.Cell(40, 4).Range.Start, _
    tb.Cell(40, 23).Range.End)          '设置一行20个单元格的区域
    rg.Delete Unit:=wdCharacter, Count:=1   '删除内容
    '将各题型分数送数组
    For k = 1 To 6
        s_txf = tb.Cell(k * 6 + 2, 1).Range.Text
        txf(k) = Val(s_txf)
    Next
    '填写表格中除39行以外的各“题库”行数据
    For r = 3 To 37 Step 2      '表格行循环
        For c = 4 To 21         '表格列循环
            cs = ts(c - 3, (r + 3) / 6, ((r - 3) / 2 Mod 3) + 1)
            If cs > 0 Then      '填充题数
                tb.Cell(r, c).Range.InsertAfter cs
            End If
            zfs(c - 3)

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
计算机试题库系统,是将编好的试题、答案、编码事先存入计算机的外部存储器(硬盘、光盘等),使用时,通过软件的控制,按照一定的方式和规则,将试题抽取、组合,形成卷,打印输出。 使用计算机试题库系统可以大大提高工作效率,不论是抽题、组卷,还是提取答案、打印卷,都非常迅速。同时,用计算机随机抽取试题,可以排除人为因素和误差,使试题的范围、难度、题型标准一致,卷规范,保证教育测量的客观、公正。 本试题库系统由两部分组成:一是试题库本身(试题、答案、编码),二是试题库管理软件。试题库是系统的基础、原材料,软件是系统的调度者、加工者。 一、主要特点 1.直接利用Office平台 可以使用Word、Excel的所有功能,特别是它的编辑、排版、打印功能。 由于Word、Excel是人们最为熟悉、用户最为广泛的软件平台,用其内嵌的编程语言VBA进行二次开发得到的应用软件,既可以使大量繁琐、重复操作的自动化,提高工作效率和应用水平,同时又不改变原有的界面风格、系统功能和操作方式。人们不必花时间去适应另外一种软件环境,学习另外一种操作方式,大大降低使用门槛,提高了软件的可用性。 2.拷贝即用,绿色软件 本试题库管理系统包含一个Word文档和一个Excel工作簿文件(均带有VBA程序),只要将这两个文件拷贝到任何装有Office 2002以上版本系统的计算机中就可以直接使用,不用时可直接删除。不像一般软件那样包含大量系统文件,要进行安装和卸载。 3.可以管理多媒体试题库 由于试题、答案、卷、参数全部在Word文档中,所以可以方便地处理文字、图形、表格、公式、符号,甚至声音、视频等信息,管理多媒体试题库。 4.在理论和技术上具有先进性 利用教育测量理论的最新研究成果,合理设置试题参数,动态制定组卷策略,使题库科学、合理。同时,采用先进的软件技术和算法,提高了时空效率,增加了通用性、可维护性和可移植性。 二、基本功能 1.题库维护 本软件作为一个通用试题库管理系统,可以管理各种试题库。每一门课程的试题库为一个Word文档,其中包括若干道试题以及其答案。对每一道试题的参数、题干和答案,可直接在Word环境中进行增、删、改、排等操作。可随时检测是否有重复题。为醒目起见,系统可自动将试题和答案的参数涂上不同颜色。可对试题和答案的参数进行有效性检验。 2.信息统计 统计整个题库中各章、各题型、各难度的试题数量、分数,总题量,总分数。指定组卷时各章、各题型、各难度的试题抽取数量后,系统可统计出抽取的总题数,总分数。 3.生成卷 按照预先设置或临时制定的组卷策略,即各章、各题型、各难度的抽题数量,进行随机或排他抽题,组成卷和答案文档。 4.卷加工 可以用Word本身的功能对卷进行编辑、排版、打印等操作。
计算机试题库系统主要由两部分组成:一是试题库本身(试题、答案、编码),二是试题库管理软件。试题库是系统的基础、原材料,软件是系统的调度、加工者。  在计算机应用迅速普及的今天,试题库管理软件并不少见。但要想找到一款适合大众、通用性强、简单方便的软件却不容易。针对这种情况,我们经过多年研究,开发了一套独具特色的试题库管理软件。它面向大众,所有操作全部在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本身功能可以对卷和答案进行编辑、排版、格式控制、打印等操作。
Spring Boot是一个开源的Java框架,提供了快速开发和部署Java应用程序的解决方案。Hello World是一个经典的示例,用于展示Spring Boot的基本功能和架构。下面是一个使用Spring Boot编写的Hello World程序的示例: 1. 首先,建立一个新的Maven或Gradle工程,并添加Spring Boot的依赖关系。在pom.xml(或build.gradle)文件中添加以下依赖关系: ```xml <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> ``` 2. 创建一个Java类,作为Spring Boot应用程序的入口。该类需要添加`@SpringBootApplication`注解,以指示它是一个Spring Boot应用程序。 ```java @SpringBootApplication public class HelloWorldApplication { public static void main(String[] args) { SpringApplication.run(HelloWorldApplication.class, args); } } ``` 3. 创建一个控制器类,用于处理HTTP请求。这个类需要添加`@RestController`注解,以指示它是一个控制器,并提供一个处理GET请求的方法。 ```java @RestController public class HelloWorldController { @GetMapping("/hello") public String helloWorld() { return "Hello, World!"; } } ``` 4. 运行应用程序。可以使用IDE或命令行工具来构建和运行Spring Boot应用程序。如果一切顺利,应用程序将在默认端口(一般为8080)上启动。 5. 测应用程序。在浏览器或命令行中访问`http://localhost:8080/hello`,应该能看到"Hello, World!"的输出。 总结:Spring Boot框架使得开发Java应用程序变得简单易用。Hello World示例展示了如何创建一个基本的Spring Boot应用程序,并通过控制器处理HTTP请求并返回响应。这只是一个简单的例子,Spring Boot还提供了丰富的功能和特性,可以帮助开发者更快速、高效地构建Java应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值