自动题库出题组卷系统论文.docx
《自动题库出题组卷系统论文.docx》由会员分享,可在线阅读,更多相关《自动题库出题组卷系统论文.docx(18页珍藏版)》请在冰豆网上搜索。
自动题库出题组卷系统论文
呼伦贝尔学院
本科生毕业论文(设计)
题目:
题库自动出题组卷系统
专业班级:
学生姓名:
学号:
指导教师:
2010年4月5日
摘要
关键词
正文
目录........................................
一、引言..................................
1、开发工具简介....................................
(1)VisualBasic6.0的特点......................
(2)VB如何与数据库连接............................
(3)数据库连接方式选择............................
2、程序运行环境......................................
二、需求分析.............................
1、负责功能的模块...........................
2、软件功能分析........................................
三、数据库设计..............................
1、概要设计
(1)系统数据库设计
2、详细设计
(1)程序流程图
四、界面设计................................
1、窗体功能简介...........................................
五、软件测试机器维护............................
1、系统测试平台简介
2、测试方法...............................................
3、系统维护.............................................
六、论文不足及解决办法
结论
参考文献
致谢
附录
中文摘要
一般情况教师想出一份试卷,要么到庞大的题库里一道一道的把题找出来,或是从几本相关的书里把题一道一道挑出来。
这样即费时又费力,而且很难保证试题的覆盖面和把握好试卷的难度。
正是为了能够帮助教师轻松的出一份高质量的试卷而开发了本软件。
为了达到预期的目标我们最终选择了MicrosoftOfficeDocumentImaging做为本软件的终端输出。
本软件是在对现有控件的改进和VBA编程的研究的基础上开发的。
本软件实现了以下主要功能:
1.手动生成试卷;2.自动生成试卷;3.抽取现有试卷;4.数据库管理。
大量的测试表明本软件在Windows98/me/2000/XP平台配合Office系列的环境下程序运行稳定且各项功能运行得都很正确,基本达到了预期的要求!
!
关键词:
题库系统;试卷生成;数据库;VBA
英文摘要
Title:
computeratuomaticconstruction
testpapersystem
Abstract:
Thegeneralsituationteacherthinksoutapaper,reachhugeexampooleachfindsoutthequestion,orshoulderthequestiontogetheroutfromseveralrelevantbooks.Time-consumingandalsostrenuouslikethis,andverydifficulttoguaranteecoveragerateandpaperdegreeofdifficultyofexaminationquestion.HelpingtheteacherthinksoutahigtqualitypaperisthedestinationofdevelopthisSoftware.InthecauseofthisweselecttheterminalisMicrosoftOfficeWord.ThisSoftware’sbaseofdevelopisimproveoncontrolinexistenceandstudytheVBAprograming.Thesefunctionsofthissoftwareareasfollows:
One.Manualcreatepaper;Two.Autocreatepaper;Three.Selectfromexistentialpapers;Four.Usermanage;Five.Databasemanage.TheresultofmanytestisthatthissoftwareisruningsteadyandthesefuntionsofitisruningrightintheenvironmentwhichmakeupofWindows98/me/2000/XPandOffice2000/XP/2003,itisbasicreachtherequests.
Keywords:
Exam;Problempool;VBA;word
论文综述
计算机基础课程是高校的一门基础课程。
学习的人数越来越多,传统的教学与考核方式应该进行改革以适应快速的教学步伐。
本课程主要解决面向本校计算机笔试自动出卷系统开发。
适用大中小学校的老师方便:
随着学校基本硬件条件的提高,现在绝大多数学校都有了软件系统。
自动出卷系统信息化可以减少人力资源的浪费,可以使传统的人工出卷告一段落,老师有足够的时间提高自己的教学质量,就可以承担好学校更多的日常工作的任务。
进一步提高学校的工作服务质量,充分发挥学校资源优势的需要:
目前,一些学校仍采用油墨人工打印的方式进行烦琐的出卷。
工作人员在日常工作中要面对枯燥资料的大量重复操作,并且靠手工进行油印很困难,而且在实际工作中会由于人工处理的疏漏、不慎造成一定的问题,整体上讲,原始的出卷方法一定程度上导致了工作效率无法进一步提高。
为了能更好的为教育服务,把握好学生们的需求,做好服务工作,自动出卷信息化是一条切实可行的改革之路。
数据可维护性、安全性的需要:
原始的手工出卷的方式,要整理大量的资料很困难,而且手写的数据一旦被毁,要重新整理就相当不容易。
自动出卷系统的信息化,可以使有关数据的统计可以轻松、精确实现,而且数据的备份、恢复也很容易,只要有良好的操作习惯,遇到怎样的数据灾难都可以从容应对。
一、引言
1、开发工具简介
(1)VisualBasic6.0的特点
VisualBasic6.0是Micrsoft公司出品的开发工具,VisualBasic是一种可视化的,面向对象的Windows开发语言,它具有易用,通用和开发效率高的特点。
随着微软对它不断地改进以及计算机本身性能的提高,使得VisualBasic越来越适合一般的应用程序开发。
正如BillGate所说,世界上绝大多数的Windows应用程序是用VisualBasic编写的。
在众多的开发工具中,我们为什么要选择VisualBasic6.0呢?
因为VB具有众多其它开发工具所没有的优点!
具体介绍如下:
◆开发的高效
◆语言的高效
◆编译的高效
◆执行的高效
◆维护的高效
基于以上理由,我们毫不忧郁的选择了VB6.0做为我们的开发工具!
(2)VB程序如何与数据库连接
数据库用VB6编程语言,对学者而言,如何用好ADODC控件和DATAGRID控件相当重要。
具体做法:
新建工程时选数据工程,此时VB6集成调试环境左边工具箱内已加载了有关数据库编程必须的控件。
然后在FORM1窗体中添加ADODC控件和DATAGRID控件,将DATAGRID1的属性DATASOURCE选ADODC1,打开ADODC1控件属性页使用连接字符串,选生成,在提供者选项中选MICROSOFTjet4.0OLEDBProvider,然后按要求连接数据库等。
在ADODC1控件属性页使用连接字符串空白文本窗口中就有一长串字符串,注意该字符串可复制到程序代码用于编程。
ADODC1控件属性页的数据源内有命令文本(SQL)编写窗口可编写SQL查询语言。
该窗口的SQL语句可复制到程序代码用于编程。
SQL查询语言主要结构为:
Select查询字段from表名Where查询条件语句(排序语句或分组语句)
查询字段必须分别用逗号分开或就用一个*号代替,上述查询中排序语句建议最好应用。
SQL查询语言如有错程序运行时告诉你出错,作相应改动即可。
本人一般先按上述连接,SQL用"SELECT*FROMTabelName"作调试,无问题,用一个按钮孔件将前述需复制的连接字符串和SQL查询语言先复制于按钮控件的CLICK事件中备着,以便放着以后使用。
然后删去ADODC1孔件,再添加ADODC1控件再添其他内容。
(3)数据库连接方式选择
Visualbasic6.0连接数据库的主要方式以下几种方式:
一是用data控件进行数据库链接。
二是利用adodc(ADODataControl)进行数据库链接。
三是利用DataEnvironment进行数据库链接。
四是利用ADO(ActiveXDataObjects)进行编程。
现在我们来大致对这几种技术应用介绍:
<1>用data控件进行数据库链接.
第一步:
给窗体添加一个Data控件。
第二步:
用Access建立一个名为Pad的数据库,在库中建立一个表Myset,给表添加四个字段:
backcolor(数据),forecolor(文本),fontname(文本),fontsize(文本)。
注意:
请将库文件存入程序所在目录。
如果你的机器没安装有Access,可通过VB建库。
<2>利用adodc(ADODataControl)进行数据库链接:
使用adodata控件访问数据库可以完全不用编写代码,只需要通过简单的设置和操作其属性就可以实现与数据库的连接,通过绑定数据感知控件,就能提供一个访问数据库的界面,用来实现对数据库的浏览,贴加,删除,修改等操作.
<3>利用DAO对数据库进行操纵:
在visualbasic中提供了两种与jet数据引擎接口的方法:
data控件与数据访问对象(DAO)DAO是databaseobject的英文缩写,要访问数据库一方面数据库要提供访问接口,另一方面要在编程环境中有对数据库的支持。
2、程序运行环境
操作系统:
Windows9x/Me/Windows2000/WindowsXP
办公软件:
OfficeXP/Office2003/Office2000
二、需求分析
1、负责的功能模块
(1)设计试题生成功能,试题能分布整个教学内容
(2)具有试题的答案生成功能
(3)数据库设计及维护
(4)程序的其它选项设置
2、软件功能分析
根据我负责的功能模块,主要是在试卷的生成上。
(1)要显示书本章节信息以供用户使用。
而在数据库里章节的存放是没有规则也即它们的顺序不一定按照真实书本的章节顺序来存储的。
但是在显示章节信息的时候必须按照书本的章节顺序来显示。
所以特别设置如下的数据类型:
PublicFunctionAddQuestion(ByValiCountAsLong,ByValQIDAsLong,ByValQTypeAsQuestionType,ByValScoreAsSingle)AsBoolean
OnErrorResumeNext
DataEnv.rsQstPaper.Open
DataEnv.rsQstPaper.Filter="QuestionID="&CStr(QID)&"andQuestionType="&CStr(QType)&""
IfDataEnv.rsQstPaper.RecordCount>0Then
AddQuestion=False
Else
DataEnv.rsQstPaper.Filter=""
DataEnv.rsQstPaper.AddNew
DataEnv.rsQstPaper.Fields("PaperSerial")=iCount
DataEnv.rsQstPaper.Fields("QuestionID")=QID
DataEnv.rsQstPaper.Fields("QuestionType")=QType
DataEnv.rsQstPaper.Fields("Score")=Score
DataEnv.rsQstPaper.Update
AddQuestion=True
EndIf
DataEnv.rsQstPaper.Filter=""
DataEnv.rsQstPaper.Close
EndFunction
(2)手动生成试卷时要不断的将用户选择的题目临时存储起来,由于记录一道题所包含的信息不是很多,再因为这些信息一会儿还要在“保存答案”里使用,所以我设置了4个全局变量,定义如下:
PublicFunctionAddQuestion(ByValiCountAsLong,ByValQIDAsLong,ByValQTypeAsQuestionType,ByValScoreAsSingle)AsBoolean
OnErrorResumeNext
DataEnv.rsQstPaper.Open
DataEnv.rsQstPaper.Filter="QuestionID="&CStr(QID)&"andQuestionType="&CStr(QType)&""
IfDataEnv.rsQstPaper.RecordCount>0Then
AddQuestion=False
Else
DataEnv.rsQstPaper.Filter=""
DataEnv.rsQstPaper.AddNew
DataEnv.rsQstPaper.Fields("PaperSerial")=iCount
DataEnv.rsQstPaper.Fields("QuestionID")=QID
DataEnv.rsQstPaper.Fields("QuestionType")=QType
DataEnv.rsQstPaper.Fields("Score")=Score
DataEnv.rsQstPaper.Update
AddQuestion=True
EndIf
DataEnv.rsQstPaper.Filter=""
DataEnv.rsQstPaper.Close
EndFunction
(3)在自动生成试卷里最主要的一点就是如何生成一个覆盖知道点广且试题不重复的试卷。
其中的关键算法在于如何生成一个不重复的随机数序列。
其中变量定义如下:
PublicFunctionCreate()AsBoolean
OnErrorResumeNext
IfCreatedThen
Create=False
ExitFunction
EndIf
DataEnv.DelQuestion
DimiCountAsLong
DimQIDAsLong
DimScoreAsSingle
ForiCount=1ToFillingNum
QID=GetQID(1,Score)
AddQuestioniCount,QID,1,Score
Next
ForiCount=1ToRightWrongNum
QID=GetQID(2,Score)
AddQuestioniCount+FillingNum,QID,2,Score
Next
ForiCount=1ToSingleSelNum
QID=GetQID(3,Score)
AddQuestioniCount+FillingNum+RightWrongNum,QID,3,Score
Next
ForiCount=1ToMultiSelNum
QID=GetQID(4,Score)
AddQuestioniCount+FillingNum+RightWrongNum+SingleSelNum,QID,4,Score
Next
ForiCount=1ToEssayQuesNum
QID=GetQID(5,Score)
AddQuestioniCount+FillingNum+RightWrongNum+SingleSelNum+MultiSelNum,QID,5,Score
Next
Created=True
Create=True
EndFunction
三、数据库设计
1、概要设计
(1)系统数据库设计
根据任务书的规定,现设计如下的数据库表格:
表1:
用户表(UserTable)
字段中文名
字段英文名
字段类型
字段长度
主键
编号
UserID
数字
10
是
姓名
UserName
文本
20
密码
Password
文本
18
表2:
题型(Type)
字段中文名
字段英文名
字段类型
字段长度
主键
编号
TypeID
自动编号
是
名称
TypeName
文本
20
分值
FZ
数字
长整型
表3:
单项选择题(SingleSel)
字段中文名
字段英文名
字段类型
字段长度
主键
题号
QuestionID
自动编号
是
选项A
Choice1
文本
255
选项B
Choice2
文本
255
选项C
Choice3
文本
255
选项D
Choice4
文本
255
正确答案
Answer
文本
1
表4:
多项选择题(SingleSel)
字段中文名
字段英文名
字段类型
字段长度
主键
题号
QuestionID
自动编号
是
选项A
Choice1
文本
255
选项B
Choice2
文本
255
选项C
Choice3
文本
255
选项D
Choice4
文本
255
选项E
Choice5
文本
255
选项F
Choice6
文本
255
正确答案
Answer
文本
1
表5:
填空题(Filling)
字段中文名
字段英文名
字段类型
字段长度
主键
题号
QuestionID
自动编号
是
题目
Question
备注
答案
Answer
文本
100
分数
Score
文本
3
表6:
简答题(JianDaTi)
字段中文名
字段英文名
字段类型
字段长度
主键
题号
QuestionID
数字
是
题目
Question
文本
答案
Answer
备注
分数
Score
数字
长整型
表7:
判断题(XiTongCZ)
字段中文名
字段英文名
字段类型
字段长度
主键
题号
QuestionID
数字
是
题目
Question
文本
分数
Score
数字
答案
Answer
是/否
2、详细设计
(1)自动生成试卷的流程图:
(2)下图是手动生成试卷的流程
四、界面设计
1、软件的登陆界面
在这里输入用户名及密码就可以进行入软件的主界面了!
!
下图是软件的主界面:
在以上的软件主界面的左边是各个功能模块的调用接口!
!
如:
自动生成试卷:
点击后进入自动生成试卷的功能界面。
手动生成试卷:
点击后进入手动生成试卷。
题库管理:
在这里可以往数据库里添加删处试题。
软件的右上角有“帮助”和“关于”按钮!
!
在这里可以得到软件的使用帮助,和有关此软件的一些开发信息!
!
下图是自动生成试卷的界面:
上图中标为“设定组卷方式”中我们选择“自动出卷”即可进入自动出卷方式界面。
上图中标为“设定各种题型的数量”的是用来设置各种题型的在试卷中出现的量数。
下图是手动生成试卷的界面图:
上图中标为“第一部分”选择挑选已有题库中的题目到试卷中。
上图中标为“第二部分”的是用来设置关键字从而查询欲加入试卷的题目。
上图中标为“第三部分”的是用来设置题型。
上图中标为“第四部分”的是用浏览已经加入试卷的题目。
“试卷报表”是用来生成试卷的按钮。
五、软件测试及其维护
1、系统测试平台简介
硬件平台
CPU
IntelP41.5G
主板
Intel850芯片组的GA-8TX-C
内存
2×128M的三星Rambus内存
硬盘
SeagateBarracuda7200.780G
显卡
Unika小妖G9800
显示器
美格770PF,17寸纯平显示器
软件环境
操作系统
MicrosoftWindowsXP简体中文专业版+SP1
办公软件
MicrosoftOffice2003
显卡驱动
nVIDIAForceWare驱动56.72版ForWin2000/XP
2、测试方法
测试在软件开发过程中一直都是备受关注的,即使在传统的软件工程中,也有一个明确、独立的测试阶段。
随着软件危机的频频出现以及人们对于软件本质的进一步认识,测试的地位得到了前所未有的提高。
测试已经不仅仅局限于软件开发中的一个阶段,它已经开始贯穿于整个软件开发过程,人们已经开始认识到:
测试开始的时间越早,测试执行的越频繁,所带来的整个软件开发成本的下降就会越多。
ExtremeProgramming更是把测试推到了极限的位置,一切软件开发活动都要从首先编写测试代码开始。
为了使本软件运行更加稳定,我对它进行了全面的测试,测试分为二部分来进行,一是: