论文首页哲学论文经济论文法学论文教育论文文学论文历史论文理学论文工学论文医学论文管理论文艺术论文 |
2. 自动生成试卷
自动生成试卷界面下可进行如下操作:
v 生成试卷:系统根据用户要求随机选题,生成试卷。
v 预览试卷:通过WORD文档打开刚生成试卷,可以浏览生成试卷模版。
v 预览答案:通过WORD文档打开刚生成试卷答案,可以浏览试卷答案。
v 保存试卷:保存生成试卷“代号”、“创建者”、“难易度”等信息。
其界面如图5-4所示。
图5-4 自动生成试卷界面
实现该功能的核心代码如下:
Public Function LoadObject() '加载选择题
On Error GoTo DealError
strSQl = "select * from Choice order by BH" '确定操作的表和方式
Set rs = QueryExt(strSQl) '打开纪录集
If rs.RecordCount > 0 Then
rs.MoveFirst
Do Until rs.EOF
If rs.Fields("ND") = 5 Then
int1 = int1 + 1
Else
If rs.Fields("ND") = 10 Then
int2 = int2 + 1
Else
If rs.Fields("ND") = 15 Then
int3 = int3 + 1
End If
rs.MoveNext
Loop
int4 = int1 + int2 + int3
Label10(0).Caption = int1
Label10(1).Caption = int2
Label10(2).Caption = int3
Label10(3).Caption = int4
End If
rs.Close
Set rs = Nothing
Exit Function
DealError:
ShowError "程序执行出错,错误信息如下:" & vbCrLf & Err.Description
End Function
3. 手动生成试卷
自动生成试卷界面下可进行如下操作:
v 加入试卷:选定加入试卷的题目,并记录其信息。
v 保存试卷:当总分正好100分时,点击保存试卷,生成试卷并保存其信息。
其界面如图5-5所示。
图5-5 手动生成试卷界面
以下为保存试卷功能的核心代码:
Private Sub Command2_Click()
Dim index1 As Integer
RefreshMarks
Summarks=RandChoice.Summarks+RandPragramfilling.Summarks+ andAnswerQuestion.Summarks + RandPargramReading.Summarks + RandPargramDesign.Summarks
If Summarks = Combo1.Text Then
CalTestDifficult
SaveContest '保存试卷,调用函数
MsgBox "保存成功", vbInformation
Else
MsgBox "您设计的试卷与实际总分不合,请修改", vbCritical
End If
4. 生成试卷的模版
生成的试卷必须按照定义的模板保存,图5-6给出了定义的模板示意。
图5-6 生成试卷模版
5.3 系统中的关键技术实现
5.3.1 显示教材章节信息供用户使用
为了显示教材章节信息供用户使用,在数据库里章节的存放是没有规则也即它们的顺序不一定按照真实书本的章节顺序来存储的。但是在显示章节信息的时候必须按照书本的章节顺序来显示。所以特别设置如下的数据类型:
Dim Sql As String;
Dim rs As String;
论文选择了TreeView控件来显示章节,因为这个控件用起来比较方便。其具体算法代码如下:
If Not TreeView1.SelectedItem Is Nothing Then
'只响应叶节点(没有孩子)
If TreeView1.SelectedItem.Children = 0 Then
Dim Sql As String
Sql = "select BH,Type,TM,ZJ,ND from " & ItemInfo
Sql = Sql & " where ZJ= '"
Sql = Sql & Mid(TreeView1.SelectedItem.Key, 3, 4) & "'"
Set rs = QueryExt(Sql)
DataGrid_Object rs, DataGrid1
Else
5.3.2 手动生成试卷时所选试题的临时保存处理
手动生成试卷时要不断的将用户选择的题目临时存储起来,由于记录的信息不是很多,论文用数组把添加进去的试题的题号和类型存储起来,后面添加的时候检查在数组中是否存在,如果存在就证明已经添加过了。
If ItemInfo = “Choice” Then
If RandChoice.DataExit(DataGrid1.Columns(0).Text) = True Then
Text1(0).Text = Text1(0).Text + 1
RandChoice.TotalNum = Text1(0).Text
RandChoice.KindOfitem DataGrid1.Columns(4).Text ‘判断添加试题难度,并
RandChoice.IncreaseContents
RandChoice.SetContent DataGrid1.Columns(0).Text, Text1(0).Text - 1
MsgBox “添加成功!”, vbInformation
Else
MsgBox “您已经选择了此题!”, vbCritical