网学网VC与C++类别编辑为广大网友搜集整理了:基于VC++试题库组卷系统的设计绩等信息,祝愿广大网友取得需要的信息,参考学习。
客服咨询,网学网竭诚为您服务,本站永久域名:myeducs.cn |
第五章 试题库系统组卷实现 5.1 自动出卷实现过程 为了让系统能够自动生成试卷,我们必须设置一些参数,比如本系统的出题数目,所以我们在自动出卷界面设置了判断题、选择题、填空题、简答题和程序设计题的题目输入框: 图5.1 自动出卷界面 点击自动出卷按钮,系统便会按要求的出题数生成WORD试卷。点击重置题数,之前输入的数字都会清0。点击返回则退回主界面。 想自动出卷,就要在数据库中提取题目记录,但试题数据库中的题目可能大于用户输入的题数,也可能小于用户输入的题数。所以要在代码中设置:如果试题库数大于用户输入,则要在所有符合条件的题目中随机抽取用户所需的题目数;如果用户输入大于试题库的题数,则弹出消息框报错。 自动出卷关键技术及代码: (1)连接数据库 自动出卷要从数据库中提取题目数据库,所以必须要连接数据库。 连接数据库代码(所有表以判断题表为例): Dim mycn1 As New ADODB.Connection Dim myrs1 As New ADODB.Recordset Set myrs1 = New ADODB.Recordset mycn1.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db2.mdb;" myrs1.Open "SELECT 题目内容 FROM [判断题表] where (判断题表.选中该试题)=''是'';", mycn1, adOpenKeyset, adLockOptimistic (2)用VB打开WORD 这是实现自动出卷的最关键技术VBA编程,首先要引用 Mircosoft OFFIC 11.0 Library和 Mircosoft Word 11.0 Library两个控件。 代码: Dim newdoc As Document Dim obj As Object Set obj = CreateObject("word.application") Set newdoc = obj.Documents.add newdoc.Activate obj.Visible = True (3)随机数的获得 如果数据库中有大量符合条件的试题,那我们不可能全部采用这些试题,只能选出要求的题目数量,所以要在所有符合的题目中随机抽取要求的题目数量。 代码: a=myrs1.recordcount ra=int((a)*rnd()) (4)重新选题 如果上一次随机所出的题目这一次又被随机选中,那不可能把这题再出一次,所以要重选这道题目。 代码: chongxuan1: ra = Int((a) * Rnd()) For X = 0 To a If ra = timu(X) Then GoTo chongxuan1 (5)word中显示试题 把题目选完后自然要把题目在WORD中输出 代码: Set px = ActiveDocument.Paragraphs.Add ActiveDocument.Paragraphs.Item(i).Range.Text = "第" + CStr(j) + "题:" + CStr(myrs1("题目内容")) ActiveDocument.Paragraphs.Item(i).Range.Font.Color = wdColorPink 重置题数代码: Private Sub Command2_Click() Text1.Text = "0" Text2.Text = "0" Text3.Text = "0" Text4.Text = "0" Text5.Text = "0" End Sub 返回代码: Private Sub Command3_Click() formmain.Show Unload Me End Sub 5.2 手工组卷实现过程 手工组卷,就是手动选择想要的试题进行组卷。所以手工组卷要在所要的题目上标记,最后把所有标记的题目在WORD中显示。所以进行手工组卷,我们要在维护试题界面上制作标记按钮。 例如程序设计题界面: 图5.2程序设计维护界面 红色框部分便是选择是否手工出卷的标记。当所有想要得题目都选完后,进入手工组卷界面出卷: 图5.3 手工组卷界面 手工组卷代码和自动出卷代码有些类似:但是比自动出卷少了随机选题。 (1) 连接数据库 这里自动出卷就是表字段选择不同 Dim mycn1 As New ADODB.Connection Dim myrs1 As New ADODB.Recordset Set myrs1 = New ADODB.Recordset mycn1.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db2.mdb;" myrs1.Open "SELECT 题目内容 FROM [判断题表] where (判断题表.手动选择)=''是'';", mycn1, adOpenKeyset, adLockOptimistic (2)打开WORD 这里和自动组卷代码一样 Dim newdoc As Document Dim obj As Object Set obj = CreateObject("word.application") Set newdoc = obj.Documents.add newdoc.Activate obj.Visible = True (3)WORD中显示试题 Set px = ActiveDocument.Paragraphs.Add ActiveDocument.Paragraphs.Item(i).Range.Text = "第" + CStr(j) + "题:" + CStr(myrs1("题目内容")) ActiveDocument.Paragraphs.Item(i).Range.Font.Color = wdColorPink |
本站发布的计算机毕业设计均是完整无错的全套作品,包含开题报告+程序+论文+源代码+翻译+答辩稿PPT |
本文选自计算机毕业设计http://myeducs.cn |