网站导航网学 原创论文 网站设计 最新系统 最新研究 原创论文 获取论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 设计下载 > VC与C++类别 > 正文

基于VC++试题库组卷系统的设计

来源:http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 13/05/14

网学网VC与C++类别编辑为广大网友搜集整理了:基于VC++试题库组卷系统的设计绩等信息,祝愿广大网友取得需要的信息,参考学习。

QQ交谈客服咨询,网学网竭诚为您服务,本站永久域名: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
论文文章部分只是部分简介,如需了解更多详情请咨询本站客服!QQ交谈QQ3710167

原创论文

设为首页 | 加入收藏 | 论文首页 |原创论文 |
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师