自动题库出题组卷系统论文
呼伦贝尔学院
本科生毕业论文(设计)
题目:专业班级:学生姓名:
指导教师:学号:2010年4月5日
摘要
关键词
正文
目录........................................
一、引言..................................
1、开发工具简介....................................
(1)Visual Basic 6.0的特点......................
(2)VB 如何与数据库连接............................
(3)数据库连接方式选择............................
2、程序运行环境......................................
二、需求分析.............................
1、负责功能的模块...........................
2、软件功能分析........................................
三、数据库设计..............................
1、概要设计
(1)系统数据库设计
2、详细设计
(1)程序流程图
四、界面设计................................
1、窗体功能简介...........................................
五、软件测试机器维护............................
1、系统测试平台简介
2、测试方法...............................................
3、系统维护.............................................
六、论文不足及解决办法
结论
参考文献
致谢
附录
中文摘要
一般情况教师想出一份试卷,要么到庞大的题库里一道一道的把题找出来,
或是从几本相关的书里把题一道一道挑出来。这样即费时又费力,而且很难保证试题的覆盖面和把握好试卷的难度。正是为了能够帮助教师轻松的出一份高质量的试卷而开发了本软件。为了达到预期的目标我们最终选择了Microsoft Office DocumentImaging 做为本软件的终端输出。本软件是在对现有控件的改进和VBA 编程的研究的基础上开发的。本软件实现了以下主要功能:1.手动生成试卷;2. 自动生成试卷;3.抽取现有试卷;4.数据库管理。大量的测试表明本软件在Windows 98/me/2000/XP平台配合Office 系列的环境下程序运行稳定且各项功能运行得都很正确,基本达到了预期的要求!!
关键词:题库系统;试卷生成;数据库;VBA
英文摘要
Title :
Abstract :
The general situation teacher thinks out a paper ,reach huge exam pool each finds out the question, or shoulder the question together out from several relevant books.
Time-consuming and also strenuous like this, and very difficult to guarantee coverage rate and paper degree of difficulty of examination question. Helping the teacher thinks out a higt quality paper is the destination of develop this Software. In the cause of this we select the terminal is Microsoft Office Word. This Software’sbase of develop is improve on control in existence and study the VBA programing. These functions of this software are as follows:One. Manual create paper; Two. Auto create paper; Three. Select from existential papers; Four. User manage; Five. Database manage. The result of many test is that this software is runing steady and these funtions of it is runing right in the environment which make up of Windows 98/me /2000/XP and Office 2000/XP/2003, it is basic reach the requests.
Keywords :Exam ;Problem pool ;VBA ;word
论文综述
计算机基础课程是高校的一门基础课程。学习的人数越来越多,传统的教学与考核方式应该进行改革以适应快速的教学步伐。本课程主要解决面向本校计算机笔试自动出卷系统开发。适用大中小学校的老师方便:随着学校基本硬件条件的提高,现在绝大多数学校都有了软件系统。自动出卷系统信息化可以减少人力资源的浪费,可以使传统的人工出卷告一段落,老师有足够的时间提高自己的教学质量,就可以承担好学校更多的日常工作的任务。
进一步提高学校的工作服务质量,充分发挥学校资源优势的需要:目前,一些学校仍采用油墨人工打印的方式进行烦琐的出卷。工作人员在日常工作中要面对枯燥资料的大量重复操作,并且靠手工进行油印很困难,而且在实际工作中会由于人工处理的疏漏、不慎造成一定的问题,整体上讲,原始的出卷方法一定程度
上导致了工作效率无法进一步提高。为了能更好的为教育服务,把握好学生们的需求,做好服务工作,自动出卷信息化是一条切实可行的改革之路。
数据可维护性、安全性的需要:原始的手工出卷的方式,要整理大量的资料很困难,而且手写的数据一旦被毁,要重新整理就相当不容易。自动出卷系统的信息化,可以使有关数据的统计可以轻松、精确实现,而且数据的备份、恢复也很容易,只要有良好的操作习惯,遇到怎样的数据灾难都可以从容应对。
一、引言
1、开发工具简介
(1)Visual Basic 6.0的特点
Visual Basic 6.0是Micrsoft 公司出品的开发工具,VisualBasic 是一种可视化的,面向对象的Windows 开发语言,它具有易用,通用和开发效率高的特点。随着微软对它不断地改进以及计算机本身性能的提高,使得Visual Basic 越来越适合一般的应用程序开发。正如Bill Gate 所说,世界上绝大多数的Windows 应用程序是用Visual Basic 编写的。在众多的开发工具中,我们为什么要选择Visual Basic6.0呢?因为VB 具有众多其它开发工具所没有的优点!具体介绍如下:
◆
◆
◆
◆
◆开发的高效语言的高效编译的高效执行的高效维护的高效
基于以上理由,我们毫不忧郁的选择了VB6.0做为我们的开发工具!
(2)VB 程序如何与数据库连接
数据库用VB6编程语言,对学者而言,如何用好ADODC 控件和DATAGRID 控件相当重要。具体做法:
新建工程时选数据工程,此时VB6集成调试环境左边工具箱内已加载了有关数据
库编程必须的控件。
然后在FORM1窗体中添加ADODC 控件和DATAGRID 控件,将DATAGRID1的属性DATASOURCE 选ADODC1,打开ADODC1控件属性页使用连接字符串,选生成,在提供者选项中选MICROSOFT jet 4.0OLE DB Provider,然后按要求连接数据库等。在ADODC1控件属性页使用连接字符串空白文本窗口中就有一长串字符串,注意该字符串可复制到程序代码用于编程。ADODC1控件属性页的数据源内有命令文本(SQL)编写窗口可编写SQL 查询语言。该窗口的SQL 语句可复制到程序代码用于编程。
SQL 查询语言主要结构为:
Select 查询字段from 表名Where 查询条件语句(排序语句或分组语句)查询字段必须分别用逗号分开或就用一个*号代替,上述查询中排序语句建议最好应用。
SQL 查询语言如有错程序运行时告诉你出错,作相应改动即可。本人一般先按上述连接,SQL用"SELECT*FROM TabelName"作调试,无问题,用一个按钮孔件将前述需复制的连接字符串和SQL 查询语言先复制于按钮控件的CLICK 事件中备着,以便放着以后使用。然后删去ADODC1孔件,再添加ADODC1控件再添其他内容。
(3)数据库连接方式选择
Visual basic6.0连接数据库的主要方式以下几种方式:一是用data 控件进行数据库链接。二是利用adodc(ADOData Control)进行数据库链接。三是利用DataEnvironment 进行数据库链接。四是利用ADO(ActiveXData Objects)进行编程。
现在我们来大致对这几种技术应用介绍:
用data 控件进行数据库链接.
第一步:给窗体添加一个Data 控件。
第二步:用Access 建立一个名为Pad 的数据库,在库中建立一个表Myset,给表添加四个字段:backcolor(数据),forecolor(文本),fontname(文本),fontsize(文本)。注意:请将库文件存入程序所在目录。
如果你的机器没安装有Access,可通过VB 建库。
利用adodc(ADOData Control)进行数据库链接:
使用adodata 控件访问数据库可以完全不用编写代码,只需要通过简单的设置和操作其属性就可以实现与数据库的连接,通过绑定数据感知控件,就能提供一个访问数据库的界面,用来实现对数据库的浏览,贴加,删除,修改等操作.
利用DAO 对数据库进行操纵:
在visual basic 中提供了两种与jet 数据引擎接口的方法:data控件与数据访问对象(DAO)DAO是database object 的英文缩写,要访问数据库一方面数据库要提供访问接口,另一方面要在编程环境中有对数据库的支持。
2、程序运行环境
操作系统:Windows9x/Me/Windows2000/WindowsXP
办公软件:OfficeXP/Office2003/Office 2000
二、需求分析
1、负责的功能模块
(1)设计试题生成功能,试题能分布整个教学内容
(2)具有试题的答案生成功能
(3)数据库设计及维护
(4)程序的其它选项设置
2、软件功能分析
根据我负责的功能模块,主要是在试卷的生成上。
(1)要显示书本章节信息以供用户使用。而在数据库里章节的存放是没有规则也即它们的顺序不一定按照真实书本的章节顺序来存储的。但是在显示章节信息的时候必须按照书本的章节顺序来显示。所以特别设置如下的数据类型:
Public Function AddQuestion(ByValiCount As Long, ByVal QID As Long, ByVal QType As QuestionType, ByVal Score As Single) As Boolean
On Error Resume Next
DataEnv.rsQstPaper.Open
DataEnv.rsQstPaper.Filter ="QuestionID =" &CStr(QID)&" and QuestionType =" &CStr(QType)&" "
If DataEnv.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
End If
DataEnv.rsQstPaper.Filter =""
DataEnv.rsQstPaper.Close
End Function
(2)手动生成试卷时要不断的将用户选择的题目临时存储起来,由于记录一道题所包含的信息不是很多,再因为这些信息一会儿还要在“保存答案”里使用,所以我设置了4个全局变量,定义如下:
Public Function AddQuestion(ByValiCount As Long, ByVal QID As Long, ByVal QType As QuestionType, ByVal Score As Single) As Boolean
On Error Resume Next
DataEnv.rsQstPaper.Open
DataEnv.rsQstPaper.Filter ="QuestionID =" &CStr(QID)&" and QuestionType =" &CStr(QType)&" "
If DataEnv.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
End If
DataEnv.rsQstPaper.Filter =""
DataEnv.rsQstPaper.Close
End Function
(3)在自动生成试卷里最主要的一点就是如何生成一个覆盖知道点广且试题不重复的试卷。其中的关键算法在于如何生成一个不重复的随机数序列。其中变量定义如下:
Public Function Create()As Boolean
On Error Resume Next
If Created Then
Create =False
Exit Function
End If
DataEnv.DelQuestion
Dim iCount As Long
Dim QID As Long
Dim Score As Single
For iCount =1To FillingNum
QID =GetQID(1,Score)
AddQuestion iCount, QID, 1, Score Next
For iCount =1To RightWrongNum
QID =GetQID(2,Score)
AddQuestion iCount +FillingNum, QID, 2, Score Next
For iCount =1To SingleSelNum
QID =GetQID(3,Score)
AddQuestion iCount +FillingNum +RightWrongNum, QID, 3, Score Next
For iCount =1To MultiSelNum
QID =GetQID(4,Score)
AddQuestion iCount +FillingNum +RightWrongNum +SingleSelNum,
QID, 4, Score
Next
For iCount =1To EssayQuesNum
QID =GetQID(5,Score)
AddQuestion iCount +FillingNum +RightWrongNum +SingleSelNum +
MultiSelNum, QID, 5, Score
Next
Created =True Create =True End Function
三、数据库设计
1、概要设计
(1)系统数据库设计
根据任务书的规定,现设计如下的数据库表格:
表1:用户表(UserTable)
字段中文名
编号姓名密码
字段英文名UserID UserName Password
字段类型数字文本文本
字段长度
102018
主键是
表2:题型(Type)
字段中文名
编号名称分值
字段英文名TypeID TypeName
FZ
字段类型自动编号
文本数字
20长整型字段长度
主键是
表3:单项选择题(SingleSel)
字段中文名
题号选项A 选项B 选项C 选项D 正确答案
字段英文名QuestionID Choice1Choice2Choice3Choice4Answer
字段类型自动编号文本文本文本文本文本
[1**********]51字段长度
主键是
表4:多项选择题(SingleSel)
字段中文名
题号选项A 选项B 选项C 选项D 选项E 选项F 正确答案
字段英文名QuestionID Choice1Choice2Choice3Choice4Choice5Choice6Answer
字段类型自动编号文本文本文本文本文本文本文本
[***********]1字段长度
主键是
表5:填空题(Filling)
字段中文名
题号题目答案分数
字段英文名QuestionID Question Answer Score
字段类型自动编号备注文本文本
字段长度主键是
1003
表6:简答题(JianDaTi)
字段中文名
题号题目答案分数
字段英文名QuestionID Question Answer Score
字段类型数字文本备注数字
长整型字段长度
主键是
表7:判断题(XiTongCZ)
字段中文名
题号题目分数答案
字段英文名QuestionID Question Score Answer
字段类型数字文本数字是/否
字段长度
主键是
2、详细设计
(1)自动生成试卷的流程图:
程序开始
输入题目类型与数量
预览试卷
修改试卷
打印试卷
程序退出
(2)下图是手动生成试卷的流程
程序开始
选择题型与数量
生成试卷报表
预览试卷修改试卷
打印试卷
四、界面设计
1、软件的登陆界面
在这里输入用户名及密码就可以进行入软件的主界面了!!
下图是软件的主界面:
在以上的软件主界面的左边是各个功能模块的调用接口!!如:
自动生成试卷:点击后进入自动生成试卷的功能界面。手动生成试卷:点击后进入手动生成试卷。题库管理:在这里可以往数据库里添加删处试题。
软件的右上角有“帮助”和“关于”按钮!!在这里可以得到软件的使用帮助,和有关此软件的一些开发信息!!下图是自动生成试卷的界面:
上图中标为“设定组卷方式”中我们选择“自动出卷”即可进入自动出卷方式界面。
上图中标为“设定各种题型的数量”的是用来设置各种题型的在试卷中出现的量数。
下图是手动生成试卷的界面图:
上图中标为“第一部分”选择挑选已有题库中的题目到试卷中。
上图中标为“第二部分”的是用来设置关键字从而查询欲加入试卷的题目。上图中标为“第三部分”的是用来设置题型。
上图中标为“第四部分”的是用浏览已经加入试卷的题目。“试卷报表”是用来生成试卷的按钮。
五、软件测试及其维护
1、系统测试平台简介
硬件平台
CPU 主板内存硬盘显卡显示器操作系统办公软件显卡驱动
Intel P41.5G
Intel 850芯片组的GA-8TX-C 2×128M的三星Rambus 内存Seagate Barracuda 7200.780G
Unika 小妖G9800美格770PF,17寸纯平显示器软件环境
Microsoft WindowsXP 简体中文专业版+SP1
Microsoft Office 2003
nVIDIA ForceWare 驱动56.72版For Win2000/XP
2、测试方法
测试在软件开发过程中一直都是备受关注的,即使在传统的软件工程中,也有一个明确、独立的测试阶段。随着软件危机的频频出现以及人们对于软件本质的进一步认识,测试的地位得到了前所未有的提高。测试已经不仅仅局限于软件开发中的一个阶段,它已经开始贯穿于整个软件开发过程,人们已经开始认识到:测试开始的时间越早,测试执行的越频繁,所带来的整个软件开发成本的下降就会越多。Extreme Programming 更是把测试推到了极限的位置,一切软件开发活动都要从首先编写测试代码开始。
为了使本软件运行更加稳定,我对它进行了全面的测试,测试分为二部分来进行,一是:界面测试;二是功能测试。
首先是界面测试,为了使软件在不同的的操作系统平台上运行界面能保持原来的风格,我的开发平台如上介绍。我把完整程序拷贝到我同学的机子,同学机子的
相关配置如下:Windowsxp +15寸显示器;程序运行界面正常,但由于我同学的显示器是15寸的显示的范围比较小外,界面上的字体等设置都保持得相当好。没有出现类似字体变形的情况!第二个平台:Windows Me +17显示器,测试结果:字体有些不正常了。后来在网查找了很多相关的资料,得出这是由于Window Me 或Windows 98和我的开发平台的操作系统Window XP 的字体集不一样造成的。解决方案是:把软件的字体设置成:宋体+9号,字符集使用:CHINASE_GB2312。至此软件的界面测试顺利完成。
二是进行功能的测试。我的功能模块主要是试卷生成。而试卷生成后都是输出到Microsoft Office Word 里。而Office 的版本又那么的多,因此,我一直很担心在不同的Office 平台下软件会有不同的运行结果!!实际测试结果如下:在Windows 2000+MicrosoftOffice 2000的平台下,试卷功能里的预览功能不能用了。界面停留在“正在链接Microsoft Office Word ......”这里,一看就知道没有办法和Microsoft Office Word 链接了。换平台测试,这回是在Windows 2000+OfficeXP,程序正常运行了包括试卷预览等功能都正常运行。再换平台:Windows XP+Office2003程序同样完全正常运行,由此可以总结出在低于Office XP 的平台下程序无法和办公软件交互。本来我想把程序换成能支持Office 2000的,可后来一想Office 2000距离现在已经有4年之久了。支持了它反而支持不了最新的Office 平台,所以决定让程序运行在Office XP 或是Office 2003平台上。至此到这里在功能的测试上也已经比较圆满的完成了!
3、系统维护
由于在开发本程序的时候我就特别注意软件的后续维护和再开发,因此极努力的想把它开发成一个强内聚、弱耦合、接口明确、意图明晰的软件。对于程序里的功能我尽力把它们封装在类的私有过程或私有函数里,这样可以大大提高软件的内聚性,在各个功能模块和窗体之间尽可能减少它们之间的调用关系,以减少软件的耦合性。在软件设计初期我就预留了接口用于调用另一个同学的模块。为了保证两人开发出的功能模块能在最后能顺利地联合。在一开始我就预先编了一个公共的“数据模块”以提高软件连接数据库能高效共享。并且给他规定一些如控件的命名规则,代码的规范等。这些都大大提高了软件后续的可维护性。
六、论文不足及解决办法
论文的设计目的是在题库建立管理维护和试卷生成方面为教学单位和
人员提供方便和帮助。通过这几个月的毕业设计,我学到很多以前没
有学到的Delphi 开发技术,在软件工程学上更是取得了很大的进步。经过大量的测试和试用,作者深信本软件达到了方便和实用的设计目的,并在软件界面和易用实用等方面有着独到之处。
虽然软件基本达到设计要求并且达到同行的先进水平,但由于作者水平有限,软件存在错误也是在所难免的,您的意见和建议将极大的帮助我改进并完善软件。真诚的希望你的参与。
参考文献
1. 刘志铭,高春艳,孙健鹏.Visual Basic 数据库开发实例解析.机械工业出版社
2曹青,邱李华,郭志强.Visual Basic 程序设计教程.机械工业出版社3. 黄明,梁旭.Visual BASIC 6.0信息系统设计与开发实例(第2版).机械工业出版社
4李春葆,曾平.数据库原理与应用——基于ACCESS. 清华大学出版社,北京科海电子出版社
5. 周国民.Visual Basic ACCESS 数据库项目开发实践.中国铁道出版社6. 飞思科技产品研发中心. visual basic 6.0数据库应用开发.电子工业出版社,2003
7飞思科技产品研发中心. visual basic 6.0开发者手册. 电子工业出版社,2002
8.乔林.参透Delphi/Kylix. 中国铁道出版社.2003
9. 李维.Inside 深入核心VCL 架构剖析. 电子工业出版社.2004
致谢
我首先感谢我的指导老师丽娜老师,在她严格的要求下我懂得了开发软件要有一种极其认真负责的态度。无论做什么事都要大胆的去想去做,这样会有好的创意,才能更有作为。
在这里我还要感谢我的同学和辅导员以及所有的老师和领导们,他们和我共同生活了四年,在生活和学习上给了我很大的帮助。