首页 优秀毕业设计-VB考试系统

优秀毕业设计-VB考试系统

举报
开通vip

优秀毕业设计-VB考试系统优秀毕业设计-VB考试系统 精品文档~ Visual Basic案例论文 VB考试系统 班级:08软件2班 姓名:范达 学号: 精品文档~ 精品文档~ VB自动考试系统 随着高科技的发展,考试系统自动化在现代社会已极为普遍,因此一个完美的自动考试系统,一直是众考核单位的渴求。该系统追求完美,但也不免瑕疵。 一、算法分析: 本系统采用回溯算法自动组卷,具有随机性、科学性、合理性,与随机选取法有一定区别,组卷速度较高。运行时计算机随机地抽取一道试题放入试题库,此过程不断重复,直到组卷完毕,或到已无...

优秀毕业设计-VB考试系统
优秀毕业设计-VB考试系统 精品文档~ Visual Basic 案例 全员育人导师制案例信息技术应用案例心得信息技术教学案例综合实践活动案例我余额宝案例 论文 VB考试系统 班级 班级管理量化考核细则初中班级管理量化细则班级心理健康教育计划班级建设班级德育计划 :08软件2班 姓名:范达 学号: 精品文档~ 精品文档~ VB自动考试系统 随着高科技的发展,考试系统自动化在现代社会已极为普遍,因此一个完美的自动考试系统,一直是众考核单位的渴求。该系统追求完美,但也不免瑕疵。 一、算法分析: 本系统采用回溯算法自动组卷,具有随机性、科学性、合理性,与随机选取法有一定区别,组卷速度较高。运行时计算机随机地抽取一道试题放入试题库,此过程不断重复,直到组卷完毕,或到已无法从题库中抽取满足控制指标的试题为止,该方法结构简单,对于单道题的抽取运行速度较快。回溯试探法是将随机选取法产生的每一状态类型纪录下来,当搜索失败时释放上次纪录的状态类型,然后再依据一定的规律变换一种新的状态类型进行试探,通过不断的回溯试探直到试卷生成完毕或退回出发点为止,这种有条件的深度优先算法,对于状态类型和出题量都较少的题库系统而言,组卷成功率较好。回溯试探法组卷成功率高,但它是以牺牲大量的时间为代价的,本软件只是个小型的单科考试组卷系统,结构简单,出题量也较少,所以本系统选择相对简单,且组卷成功率较好的回溯试探法进行组卷。 二、回溯算法: 回溯试探法的应用回溯算法也叫试探法,它是一种系统地搜索问题的解的方法,其基本思想是:从一条道往前走,能进则进,不能进则退回来,换一条道再试试。利用回溯算法解决问题的一般步骤为: (1)定义一个解空间,它包含问题的解; (2)利用适于搜索的方法组织解空间; (3)利用深度优先法搜索解空间; (4)利用限界函数避免移动到不可能产生解的子空间。 问题的解空间通常是在搜索问题的解的过程中动态产生的,这是回溯算法的一个重要特点。 回溯法是一个既带有系统性又带有跳跃性的搜索算法。它在包含问题的所有解的解空间树中,按照深度优先的原则,从根结点出发搜索解空间树。算法搜索至解空间树的任一结点时,总是先判断该结点是否肯定不包含问题的解。如果肯定不包含,则跳过对以该结点为根的子树的系统搜索,逐层向其祖先结点回溯。否则,进入该子树,继续按深度优先的原则进行搜索。回溯算法在用来求问题的所有解时,要回溯到根,且根结点的所有子树都已被搜索遍才结束,而回溯法在用来求问题的任一解时,只要搜索 精品文档~ 精品文档~ 到问题的一个解就可以结束。 搜索,即全面访问所有可能的情况。 分为两种:一是不考虑给定问题的特有性质,按事先顶好的顺序,依次运用规则,即盲目搜索的方法;另一种则考虑问题给定的特有性质,选用合适的规则,提高搜索的效率,即启发式的搜索。本系统使用的是回溯法的启发式搜索,以试题题型,试题分值和选题数量为约束条件进行随机搜索,而把设置的试卷总分数作为一个解空间。如果各题型分值之和等于用户设置的试卷总分数,则产生一个有效解,系统生成一份试卷,试题的题型,编号,分值等信息储存进试题库表中。系统通过所存信息搜索数据库,获取试题 内容 财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容 ,并组成一份完整试卷。 三、系统简介: 自动组卷自动组卷时,系统随机抽取试题,组成一份完整的试卷,包括选择、判断、填空三类。本系统使用的是回溯探取法随机抽题。其主要过程如下: 精品文档~ 精品文档~ (1)用户登陆后,点击开始考试,初始化随机数生成器,生成试题。 (2)系统根据题型数量在各题型表中随机抽取试题,并对其进行排序,如有重复则返回继续搜索,防止试题被重复选取,一直到抽取试题数等于用户设置的各题型的试题数量。 (3)系统根据数据库表TSOFT中信息搜索题库试题内容,生成一份完整的试卷。由于本系统 记录 混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载 用户信息,所以每位考生只允许参加一次考试。 下面是本系统考试的基本流程图: 程序开始 抽取试题 考试 交卷 自动打分 自动计时 四、编程大致思路流程: 本考试系统具备一般考试系统的基本功能,能够自动打分,并且在用 户考试时,系统自动显示考试时间,以便用户充分利用有限时间答题,用 户交卷后,试卷自动保存到数据库中,方便后台查询控制。 精品文档~ 精品文档~ 程序开始 加载试题 NO 存入数据库 设判分 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 、 YES 出题 题库试题充分 题型比例 保存试题 用户抽题 五、部分重要代码: 自动生成试卷 Dim rs As New ADODB.Recordset '声明认识为记录集对象 Dim XZT As Long '选择题比例 Dim PDT As Long '判断题比例 Dim TKT As Long '填空题比例 Dim TMLX As Long '题目类型 Dim TMID As Long '题目编号 Dim Result(1 To 100) As String '用于记录选出的试卷题目 Dim Sel() As String '存储题目类型和题目编号 Dim i As Long '用于循环的变量 Dim ct As Long '记录的条数 精品文档~ 精品文档~ Dim th As Long '随机的题号 Dim j As Long '用于循环的变量 Dim lUB As Long '数组上限 On Error GoTo Err1 Screen.MousePointer = 11 '设置鼠标形状 Sql = "select * from tb_Param WHERE id=1" '把获取系统参数的SQL语句赋给字符串变量Sql rs.Open Sql, cnn, adOpenStatic, adLockReadOnly '以只读的方式静态的打开Sql执行的结果的记录集 If rs.RecordCount > 0 Then '如果记录集不为空 XZT = rs.Fields("xzt_bl") '整形变量XZT记录选择题的比例 XZTFZ = rs.Fields("xzt_fz") '整形变量XZTFZ记录选择题的分值 PDT = rs.Fields("pdt_bl") '整形变量PDT记录判断题的比例 PDTFZ = rs.Fields("pdt_fz") '整形变量PDTFZ记录判断题的分值 TKT = rs.Fields("tkt_bl") '整形变量TKT记录填空题的比例 TKTFZ = rs.Fields("tkt_fz") '整形变量TKTFZ记录填空题的分值 Else '如果记录集为空 MsgBox "还没有设定系统参数,请您与系统管理员联系~", vbOKOnly + vbInformation '显示错误 Me.Hide '卸载考试窗体 frm_Stu.Show '显示学生窗体 Exit Sub '跳出sub过程 End If '结束if语句 '将所有的选择题读出来放在数组中 If Not rs Is Nothing Then '如果记录集不为空 If rs.State = adStateOpen Then '如果记录集在打开状态 rs.Close '关闭记录集 End If '结束if语句 Set rs = Nothing 'rs设为空 End If 精品文档~ 精品文档~ Sql = "SELECT * FROM tb_topicstor WHERE typeid=0" '把选取所有的选择题的SQL语句赋给变量Sql rs.Open Sql, cnn, adOpenStatic, adLockReadOnly '以只读的方式静态的打开Sql执行的结果的记录集 ct = rs.RecordCount '把记录集中的元组数赋给变量ct If ct < XZT / XZTFZ Then '如果题库中试题数目小于考试试题数 MsgBox "题库中选择题数目小于试卷要求的题目数,请与管理员联系~", _ vbOKOnly + vbInformation '提示错误 GoTo Err2 '转向错误处理 ElseIf ct = XZT / XZTFZ Then '如果题库中试题数目等于考试试题数 ReDim Sel(1 To ct) '重新为动态数组分配内存空间 '将选择题的题目类型、题目编号存起来 For i = 1 To ct '循环读取记录集的题目号 Sel(i) = "0" & "-" & CStr(ToLong(rs("topicid"))) '把题目类型和题目号存到数组中 rs.MoveNext '转向下一条记录 Next i 'i值加1 If Not rs Is Nothing Then '如果记录集不为空 If rs.State = adStateOpen Then '如果记录集在打开状态 rs.Close '关闭记录集 End If '结束if语句 Set rs = Nothing '记录集设为空 End If '结束if语句 '根据随机数产生选择题 For i = 1 To (XZT / XZTFZ) '设定循环值,XZT / XZTFZ为选择题个数 For j = th + 1 To lUB '把题号赋给j Sel(j - 1) = Sel(j) '调整数组Sel:将已经产生的去掉 Next j 'j加1 End If '结束if语句 ReDim Preserve Sel(1 To lUB) '重新为动态数组分配内存空间 精品文档~ 精品文档~ Next i 'i加1 '如果题库中试题数目等于考试试题数 Else ReDim Sel(1 To ct) '重新为动态数组分配内存空间 For i = 1 To ct '循环读取记录集的题目号 Sel(i) = "0" & "-" & CStr(ToLong(rs("topicid"))) '把题目类型和题目号存到数组中 rs.MoveNext '转向下一条记录 Next i 'i值加1 If Not rs Is Nothing Then '如果记录集不为空 If rs.State = adStateOpen Then '如果记录集在打开状态 rs.Close '关闭记录集 End If '结束if语句 Set rs = Nothing '记录集设为空 End If '结束if语句 For i = 1 To (XZT / XZTFZ) '设定循环值,XZT / XZTFZ为选择题个数 lUB = UBound(Sel) '读取数组sel()的下标赋给变量1UB Randomize '初始化 th = Int(lUB * Rnd() + 1) '产生随机题号 Result(i) = Sel(th) '将产生的题目放在Result中 If th < lUB Then '调整数组Sel:将已经产生的去掉 For j = th + 1 To lUB '把题号赋给j Sel(j - 1) = Sel(j) '调整数组Sel:将已经产生的去掉 Next j 'j加1 End If '结束if语句 ReDim Preserve Sel(1 To lUB - 1) '重新为动态数组分配内存空间 Next i End If 由于本系统自动生成试卷,所以对于试卷知识覆盖面的问题不好控制,这也是本系统尚未解决的一个问题,正是所谓的瑕疵所在。 精品文档~ 精品文档~ 精品文档~
本文档为【优秀毕业设计-VB考试系统】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_348501
暂无简介~
格式:doc
大小:55KB
软件:Word
页数:9
分类:工学
上传时间:2017-09-30
浏览量:21