关于自动组卷系统的研发

时间:2022-07-01 06:28:00

关于自动组卷系统的研发

摘 要:随着计算机的应用的普及和计算机技术的不断发展,传统的出卷方式已经不能适应当前的需要,为了能更好的建立学校所需的试题库,以及将老师从繁重出考卷的工作中解脱出来,开发了自动组卷系统。本系统在前台VB6.0为开发环境,后台数据库使用SQL2000下完成的。本系统能够获取所需要的数据库,在题库管理模块中,能对单选题、多选题、填空题、简答题、计算题进行管理,最后根据出卷教师的设定生成相应的试卷。

关键词:自动组卷;数据库;题库管理;SQL SERVER

中图分类号:TP311.13

系统研发的起点是系统设计,关系到系统整个应用程序的成败与否,是进行系统开发中最为关键的一步,系统设计包括了开发与运行环境的选择,系统功能分析,模块的设计与实施,数据库的设计,而数据库设计又是最为基础的一部分。

1 开发与运行环境的选择

开发与运行环境的选择会影响到整个设计的成败,要本着稳定,通用性强,设计者掌握熟练的要素进行选择,这里选择了:开发环境:Windows XP或者Windows7

开发工具:Visual Basic6.0

数据库管理系统:SQL SERVER 2000

2 系统分析与设计

自动组卷系统应包括4个组成部分:(1)系统管理。本部分包括系统登录,系统退出。在系统登陆的同时可以进行数据库的选择,但是一定是具有权限者才能登录,进一步的可以操作该系统。(2)题型管理。本部分包括单选题、多选题、填空题、简答题、计算题,选择章节、按难度进行录入试题,也可以对试题进行修改,删除等操作;(3)自动组卷系统,根据难易程度,设定好分值和题量,再根据章节按照百分比出题;(4)帮助模块,对该系统进行介绍,对试卷的生成问题的解释和说明。

3 数据库的设计与实施

随着题量的不断增加,我们尽量用一个可扩充的数据库,因此我们采用当前使用极为普遍的SQLSERVER,作为数据库的开发环境。通过分析,我们设计出共6张表,分别是单选题,多选题,填空题,简答题,计算题以及用户表,表之间的关联不是很复杂,比较容易实现。它们之间是通过章节表联系在一起的。用户表是单独一张表和其他的表不存在联系。

4 系统功能模块的设计

4.1 系统管理

在系统管理模块中包含了登陆系统和退出系统,当进入登陆系统,首先要选择数据库,如果系统获取数据库成功,也不能对数据库和系统进行操作,要进行身份验证,有管理员权限和教师权限,只有获得权限的用户才能对系统进行操作。验证通过,其他模块才能使用,这样防止了学生或者不相关人员看到进入,增加的保密性。

关键代码如下:Dim strSQL As String

Set objCn = New Connection

With objCn

.Provider = "SQLOLEDB"

strSQL = "User ID=sa;PWD=sa;Server=(local);database=" & ThisDBName

.ConnectionString = strSQL

.Open '打开连接

End With

Set objRs = New Recordset

Set objRs.ActiveConnection = objCn

objRs.CursorLocation = adUseClient

objRs.CursorType = adOpenDynamic

objRs.LockType = adLockOptimistic

strSQL = "select * from 系统用户"

objRs.Open strSQL

ShowCurrentRecord

cmdSave.Enabled = True

Exit Sub

4.2 题型管理

本部分是本系统的基础部分,包括单选题,多选题,填空题,简答题和计算题。关系到后面的组卷能否成功,每一个细节都要注意到。我们以这里面的多选题为例进行详细说明,这也是该程序比较有难度的地方。首先要能够进行章节的选择,并且显示出该题目在章节中所处于的顺序,可添加章节,也可以添加章节的名称,该处的优点是不同的科目老师,可以更改数据库中数据,这样系统就不需要限定在某一个学科中了。系统的通用性就由此显示出来了。在进行录入试题的同时,我们可以限定该题目的难易程度,注意此处的难易程度要均衡,否则会影响后面生成试卷的速度。可以浏览各个章节的题目,重要的是能够编辑试题,包括增删改,由于某些题目是有图形,因此在每个管理题目模块中我们编写了添加图片的功能。

该处重要代码,就是录入好数据后,保存尤其的重要。

If isAdding Then objRs.AddNew

'保存试题

objRs!章节 = cmbChapter.ItemData(cmbChapter.ListIndex)

objRs!题干 = Trim(txtContent)

objRs!选项1 = txtAnswer(0)

If picName "" Then

objRs!图片 = picName

Else

objRs!图片 = Null

End If

For i = 0 To 3

If CheckAnswer(i).Value = 0 Then objRs!答案 = objRs!答案 & Int(CheckAnswer(i).Value)

If CheckAnswer(i).Value = 1 Then objRs!答案 = objRs!答案 & Int(CheckAnswer(i).Value)

Next

If optLevel(0) Then

objRs!难度 = 0

ElseIf optLevel(1) Then

objRs!难度 = 1

Else

objRs!难度 = 2

End If

MsgBox "kk"

objRs.Update

MsgBox "试题保存成功!"

4.3 试卷管理

试卷管理模块主要设定试卷的各种题型的数目和分值以及总分值,根据所设定的分值在设定各个章节的百分比,然后由系统分析,试卷的设定是否合理,在分析部分我们通过定义了一个五维数组,并定义了过滤器,以此筛选各个章节中的内容和比例。再利用循环进行筛选,本部分是系统中最为复杂的内容,我还将在论文关键技术探究中详细讲解。这里只给出一小部分的重要代码: '按难度检查题量分配是否合理

For i = 0 To 4

'检查难度属于“难”的题题量分配是否有效

If Chapter(i, 0) < Int(Val(txtCount(i)) * txtLevel0(i) / 100) Then

MsgBox News(i) & "题库中难度属于“难”的题只有

& Chapter(i, 0) & ">道,难度百分比最大可为

& Int(Chapter(i, 0) / Val(txtCount(i)) * 100) _

& ">", vbCritical

txtLevel0(i).SetFocus

Exit Sub

End If

4.4 帮助

在帮助模块中,说明了系统的主要内容:该系统是一个小型的题库管理系统,教师可以对自己所授的学科的试题可以进行添加、修改、删除等操作,并可以根据自己的需求来分配试卷的题量。在登陆该系统的时候,在选择数据库后,需输入自己的用户名和密码,才能登陆到自己的学科数据库。解释了出卷失败的原因。一旦生成试卷不成功:若是此次未能生成试卷,请重新分配各章节的题量和难易分配的比例!使用者可以进行修改重新设定试卷。

5 结束语

自动组卷并不是一个新的领域,但它仍处在需要不断的完善的阶段之中。由于各个学科的不同,基于试题库的自动组卷系统在数据库设计等方面会有些许的差异,本文介绍和完成了一个具体的组卷系统的开发,它具有一定的实际应用价值,然而由于在时间、能力、技术等诸方面的不足,在算法优化和库结构的设计上还有一些有待于改进的地方,还有许多功能有待于日后来增强。这次系统开发是团结协作的结果,得到了同事和好朋友的帮助,得以顺利的完成,增强了合作的能力。在开发的过程中在一次次的发现问题、解决问题的过程中,学到了许多专业知识以及处理事务的方法,为以后的学习和工作积累了丰富的经验,更重要的是该系统的完成,对于缓解我校教师出试卷的工作量起到了一定作用,这是本人认为完成软件更具有意义价值的地方。

参考文献:

[1]王丽娜,肖京.通用智能题库系统研究[J].东北大学学报(自然科学版).

[2]高守传.精通SQL——结构化查询语言详解[M].人民邮电出版社,2007-3-1.

[3]邓贵英.试卷自动生成算法[J].上海理工大学学报.

[4]刘志妩.基于VB和SQL的数据库编程技术[M].清华大学出版社,2008-4-1.

[5](美)沸里兹,尹哲等译.Visual basic 数据库编程宝典[M].电子工业出版社.

[6]李丹丹,史秀璋.SQL Server 2000数据库实训教程[M].清华大学出版社,2007-8-1.

[7]戴亚非,李晓明,唐溯飞.计算机自动组卷算法分析.哈尔滨工业大学计算机中心.

上一篇:高校教工住房管理系统的设计与实现 下一篇:基于Android平台的新疆气象移动终端系统设计