ImageVerifierCode 换一换
格式:DOCX , 页数:53 ,大小:268.30KB ,
资源ID:8971017      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8971017.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据库原理课程设计题库管理系统.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数据库原理课程设计题库管理系统.docx

1、数据库原理课程设计题库管理系统摘 要一般情况教师想出一份试卷,要么到庞大的题库里一道一道的把题找出来,或是从几本相关的书里把题一道一道挑出来。这样即费时又费力,而且很难保证试题的覆盖面和把握好试卷的难度。正是为了能够帮助教师轻松的出一份高质量的试卷而开发了本系统。以做一个数据库原理这门课的题库系统为例,为了达到预期的标准本文最终选择了txt文本文件做为本系统的终端输出。并且实现了以下主要功能试题数据库的创建、不同章节不同难度的试题录入、图片保存、试卷分析、自动生成试卷等功能,多次运行证明本系统运行较为稳定且各项功能运行得比较正确,基本达到了预期的要求。关键词: Visual Basic 6.0

2、,SQL Server 2000,题库管理系统 1 系统功能概述1.1系统功能系统功能介绍:1、创建题库:本系统适合不同科目的老师进行试题的录入,可根据不同的课程名创建不同的试题数据库,且自动生成简答题、单选题、多选题、填空题、难度值四张表。题库维护系统:该系统是适合不同课程的老师录入考试试题,本系统包括了题文的录入、题文的查找、题文的删除和修改,章节的设定,分值的设置,试题的难度设置,试卷分析,以及生成试卷的功能。2、生成卷:该系统是本软件的主要的功能的体现,不受分值和难易程度的限制,可以人为定义,同时在分析的过程中那判定合理性,并提示最高设置值,让老师更合理地考察不同程度的学生的学习情况。

3、3、各个试题数据库中主要包含以下实体及其属性:(1)简答题(旅游团编号、旅游点名称、地理位置、旅游天数,价格,出发日期,返回日期)(2)单选题(导游编号、导游姓名、性别、联系电话)(3)多选题(游客编号、游客姓名、性别、年龄、联系电话)(4)填空题(用户名、密码)1.2系统结构总图流程图:题库系统试卷分析题库维护系统退出1试题的录入2试题的删除3试题的查找4试题的修改随机组卷题 文 库结构图:1.3系统E-R模型2 数据库设计2.1 需求分析1) 设计试题生成功能,试题能分布整个教学内容2) 设计试题的难易程度分析功能3) 具有试题的答案生成功能4) 数据库设计及维护5) 程序的其它选项设置2

4、.2 功能分析1每创建一个数据库将自动生成四种题型几个各个章节的数据表,因为在录入题目的时候要显示书本章节信息以供用户使用。而在数据库里章节的存放是没有规则也即它们的顺序不一定按照真实书本的章节顺序来存储的。但是在显示章节信息的时候必须按照书本的章节顺序来显示。所以分别设置如下的各张表的数据类型: 创建“章节”数据表 strSQL = Create Table 章节 ( _ & 编号 int identity primary key, _ & 名称 varchar(50) not null) objCn.Execute strSQL objCn.Close Set objCn = Nothin

5、g MsgBox 数据库已成功创建!由于数据库里章节的数量是不定的,故此种数据类型的变量必须是一种长度可变的类型才行。接下来的问题就是把这个变量记录的数据按一定顺序显示到combobox的控件里了。由于章节的数量还是比较多的,所以我选择了“改进的选择排序”,具体的排序算法代码实现如下: If cmbChapter Then objRs.Filter = 章节= & cmbChapter.ItemData(cmbChapter.ListIndex) If objRs.RecordCount 0 Then objRs.MoveFirst Show_Data Else objRs.Filter =

6、章节=-99999 Show_DataEnd If 2试卷分析的过程中,要考虑到一张试卷里面各个不同题目所在比例与试题库中该类试题占所有试题库中的比例之间的差异问题,所以在分析的过程中在成分不足或者成分超过的情况需要设置提示,整个参数分析代码为: 分析章节中的题数分配 Dim News, i%, j%, strFilter$, Chapter%(3, 2), k% News = Array(判断题, 单选题, 多选题, 填空题) For i = 0 To 3 If Val(txtScore(i) 0 And Val(lblRemain(i) 0 Then MsgBox News(i) & 试题

7、剩余 & lblRemain(i) & %未分配, vbCritical txtScale(i).SetFocus Exit Sub End If Next 检查章节题量分配是否有效 If objRsChapter.RecordCount = 0 Then Exit Sub For i = 0 To 3 If Val(txtScore(i) 0 Then For j = 0 To cmbChapter(i).ListCount - 1 objRsChapter.MoveFirst objRsChapter.Find 名称= & cmbChapter(i).List(j) & strFilter

8、 = 章节= & objRsChapter!编号 Select Case i Case 0 检查判断题题量分配是否有效 objRsJudge.Filter = strFilter If objRsJudge.RecordCount Int(cmbChapter(i).ItemData(j) * _ txtCount(i) / 100) Then MsgBox 中只有道试题,小题百分比最多, vbCritical cmbChapter(i).ListIndex = j Exit Sub End If 小题数通过检验,统计各类难度试题数量 For k = 0 To 2 objRsJudge.Fil

9、ter = strFilter & and 难度= & k Chapter(i, k) = Chapter(i, k) + objRsJudge.RecordCount Next Case 1 检查单选题题量分配是否有效 objRsSingle.Filter = strFilter If objRsSingle.RecordCount Int(cmbChapter(i).ItemData(j) * _ txtCount(i) / 100) Then MsgBox 中只有道试题,小题百分比最多, vbCritical cmbChapter(i).ListIndex = j Exit Sub En

10、d If 小题数通过检验,统计各类难度试题数量 For k = 0 To 2 objRsSingle.Filter = strFilter & and 难度= & k Chapter(i, k) = Chapter(i, k) + objRsSingle.RecordCount Next Case 2 检查多选题题量分配是否有效 objRsMore.Filter = strFilter If objRsMore.RecordCount Int(cmbChapter(i).ItemData(j) * _ txtCount(i) / 100) Then MsgBox 中只有道试题,小题百分比最多,

11、 vbCritical cmbChapter(i).ListIndex = j Exit Sub End If 小题数通过检验,统计各类难度试题数量 For k = 0 To 2 objRsMore.Filter = strFilter & And 难度 = & k Chapter(i, k) = Chapter(i, k) + objRsMore.RecordCount Next Case 3 检查填空题题量分配是否有效 objRsSpace.Filter = strFilter If objRsSpace.RecordCount Int(cmbChapter(i).ItemData(j)

12、* _ txtCount(i) / 100) Then MsgBox 中只有道试题,小题百分比最多, vbCritical cmbChapter(i).ListIndex = j Exit Sub End If 小题数通过检验,统计各类难度试题数量 For k = 0 To 2 objRsSpace.Filter = strFilter & and 难度= & k Chapter(i, k) = Chapter(i, k) + objRsSpace.RecordCount Next End Select Next End If Next 按难度检查题量分配是否合理 For i = 0 To 3

13、 检查难度属于“难”的题题量分配是否有效 If Chapter(i, 0) Int(Val(txtCount(i) * txtLevel0(i) / 100) Then MsgBox News(i) & 题库中难度属于“难”的题只有道,难度百分比最大可为, vbCritical txtLevel0(i).SetFocus Exit Sub End If 检查难度属于“一般”的题题量分配是否有效 If Chapter(i, 1) Int(Val(txtCount(i) * txtLevel1(i) / 100) Then MsgBox News(i) & 题库中难度属于“一般”的题只有道,难度百

14、分比最大可为, vbCritical txtLevel1(i).SetFocus Exit Sub End If 检查难度属于“容易”的题题量分配是否有效 If Chapter(i, 2) Int(Val(txtCount(i) * txtLevel2(i) / 100) Then MsgBox News(i) & 题库中难度属于“容易”的题只有道,难度百分比最大可为, vbCritical txtLevel2(i).SetFocus Exit Sub End If Next MsgBox 试卷参数设置正确,可以生成试卷!, vbInformation 取消各个记录集的过虑设置 objRsSp

15、ace.Filter = objRsMore.Filter = objRsSingle.Filter = objRsJudge.Filter = cmdMakePaper.Enabled = True Exit Sub 3在自动生成试卷里最主要的一点就是如何生成一个覆盖知道点广且试题不重复的试卷。其中的关键算法在于如何生成一个不重复的随机数序列。同时,为了防止生成时间过长或者说代码编写出错时造成程序运行不停止,需要设置一个时间函数,控制试卷生成时间,本文定义的是30秒,如果超过这个时间将停止生成试卷并提示错误。程序如下: Randomize Timer Dim Level0%(3), Leve

16、l1%(3), Level2%(3), i%, n%, strTest$, strAnswer$ Dim Count%(3), Selected$, Chapter%(), Ok, Abcd, more%, doTime As Long doTime = Timer 开始计算生成试题时间 Abcd = Array(A, B, C, D) ReDim Chapter(3, cmbChapter(0).ListCount - 1) 计算各类题型的难度小题数 For i = 0 To 3 n = Val(txtCount(i) Count(i) = n Level0%(i) = Int(Val(tx

17、tLevel0(i) * n / 100) Level1%(i) = Int(Val(txtLevel1(i) * n / 100) Level2%(i) = Int(Val(txtLevel2(i) * n / 100) If Level0%(i) + Level1%(i) + Level2%(i) n Then _ Level1%(i) = n - Level0%(i) - Level2%(i) Next For i = 0 To 3 cmbChapter(i).ItemData(0) = 20 cmbChapter(i).ItemData(1) = 30 cmbChapter(i).It

18、emData(2) = 30 cmbChapter(i).ItemData(3) = 20 Next 计算个章节各类题型的小题数 For i = 0 To 3 For j = 0 To cmbChapter(0).ListCount - 1 Chapter(i, j) = Int(cmbChapter(i).ItemData(j) * Val(txtCount(i) / 100) Next n = 0 For j = 0 To cmbChapter(0).ListCount - 1 n = n + Chapter(i, j) Next If n Val(txtCount(i) Then Cha

19、pter(i, 0) = Chapter(i, 0) + Val(txtCount(i) - n Next 将cmbchapter列表itemdata中的百分比数转换为章节编号 For i = 0 To 3 For j = 0 To cmbChapter(0).ListCount - 1 objRsChapter.MoveFirst objRsChapter.Find 名称= & cmbChapter(i).List(j) & cmbChapter(i).ItemData(j) = objRsChapter!编号 Next Next 生成试卷 For i = 0 To 3 Selected =

20、 Select Case i Case 0 选择判断题 strTest = strTest & 一、简答题。(共 & txtCount(i) _ & ,每小题 & txtAvg(i) & 分,共 & txtScore(i) & 分) & vbCrLf strAnswer = strAnswer & 一、简答题。(共 & txtCount(i) _ & ,每小题 & txtAvg(i) & 分,共 & txtScore(i) & 分) & vbCrLf j = 1 While Count(i) 0 随即产生一个未选择的试题的记录序号 Do If Timer - doTime 30 Then Ms

21、gBox 本次生成判断题花费时间过长,退出重试!, vbCritical Exit Sub End If n = Int(Rnd * objRsJudge.RecordCount + 1) Loop Until InStr(Selected, # & n & #) = 0 Selected = Selected & # & n & # objRsJudge.MoveFirst objRsJudge.Move n - 1 Select Case objRsJudge!难度 Case 0 If Level0(i) 0 Then 检查本章试题是否已选够 For n = 0 To 3 If cmbCh

22、apter(i).ItemData(n) = objRsJudge!章节 Then Exit For Next If Chapter(i, n) 0 Then strTest = strTest & j & 、 & objRsJudge!题干 & ( ) & vbCrLf strAnswer = strAnswer & j & 、 If objRsJudge!答案 Then strAnswer = strAnswer & 错误 Else strAnswer = strAnswer & 正确 End If strAnswer = strAnswer & vbCrLf j = j + 1 Chap

23、ter(i, n) = Chapter(i, n) - 1 Level0(i) = Level0(i) - 1 Count(i) = Count(i) - 1 If Not IsNull(objRsJudge!图片) Then _ strTest = strTest & 本题图片: & objRsJudge!图片 End If End If Case 1 If Level1(i) 0 Then 检查本章试题是否已选够 For n = 0 To 3 If cmbChapter(i).ItemData(n) = objRsJudge!章节 Then Exit For Next If Chapter

24、(i, n) 0 Then strTest = strTest & j & 、 & objRsJudge!题干 & ( ) & vbCrLf strAnswer = strAnswer & j & 、 If objRsJudge!答案 Then strAnswer = strAnswer & 错误 Else strAnswer = strAnswer & 正确 End If strAnswer = strAnswer & vbCrLf j = j + 1 Chapter(i, n) = Chapter(i, n) - 1 Level1(i) = Level1(i) - 1 Count(i) =

25、 Count(i) - 1 If Not IsNull(objRsJudge!图片) Then _ strTest = strTest & 本题图片: & objRsJudge!图片 End If End If Case 2 If Level2(i) 0 Then 检查本章试题是否已选够 For n = 0 To 3 If cmbChapter(i).ItemData(n) = objRsJudge!章节 Then Exit For Next If Chapter(i, n) 0 Then strTest = strTest & j & 、 & objRsJudge!题干 & ( ) & vb

26、CrLf strAnswer = strAnswer & j & 、 strAnswer = strAnswer & vbCrLf j = j + 1 Chapter(i, n) = Chapter(i, n) - 1 Level2(i) = Level2(i) - 1 Count(i) = Count(i) - 1 If Not IsNull(objRsJudge!图片) Then _ strTest = strTest & 本题图片: & objRsJudge!图片 End If End If End Select Wend Case 1 卸载单选题 strTest = strTest &

27、 二、单选题。(共 & txtCount(i) _ & ,每小题 & txtAvg(i) & 分,共 & txtScore(i) & 分) & vbCrLf strAnswer = strAnswer & 二、单选题。(共 & txtCount(i) _ & ,每小题 & txtAvg(i) & 分,共 & txtScore(i) & 分) & vbCrLf j = 1 While Count(i) 0 随即产生一个未选择的试题的记录序号 Do If Timer - doTime 30 Then MsgBox 本次生成单选题试题花费时间过长,退出重试!, vbCritical Exit Sub End If n = Int(Rnd * objRsSingle.RecordCount + 1) Loop Unt

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1