自动出卷系统设计
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
密 惠 保
1.1.3 数据库连接方式选择
Visual basic6.0连接数据库的主要方式以下几种方式:一是:用data控件进行数据库链接 ,二是利用adodc(ADO Data Control)进行数据库链接 。三是: 利用DataEnvironment进行数据库链接.四是利用ADO(ActiveX Data Objects)进行编程
:现在我们来大致对这几种技术应用介绍:
一、 用data控件进行数据库链接.
第一步:给窗体添加一个Data控件。
第二步:用Access建立一个名为Pad的数据库,在库中建立一个表Myset,给表添加四个字段:backcolor(数据),forecolor(文本),fontname(文本),fontsize(文本)。注意:请将库文件存入程序所在目录。
如果你的机器没安装有Access,可通过VB建库。
二、 利用adodc(ADO Data Control)进行数据库链接:
使用adodata控件访问数据库可以完全不用编写代码,只需要通过简单的设置和操作其属性就可以实现与数据库的连接,通过绑定数据感知控件,就能提供一个访问数据库的界面,用来实现对数据库的浏览,贴加,删除,修改等操作.
三、 利用DAO对数据库进行操纵:
在visual basic 中提供了两种与jet数据引擎接口的方法:data控件与数据访问对象(DAO)DAO是database object的英文缩写,要访问数据库一方面数据库要提供访问接口,另一方面要在编程环境中有对数据库的支持.
本文来自think58
[资料来源:http://THINK58.com]
DAO模型是设计关系数据库系统结构的对象类的集合.他们提供了管理关系型数据库系统所需要的全部操作属性和方法,这其中包括建立数据库,定义表,字段和建立表间关系,定位和查询数据库等.
关系数据库介绍:
关系数据库是目前各类数据库中最重要、最流行的数据库,他应用数学方法来处理数据库数据,是目前使用最广泛的数据库系统。20世纪70年代以后开发的数据库管理系统产品几乎都是基于关系的。在数据库发展的历史上,最重要的成就就是关系模型。
关系数据库系统与非关系数据库系统的区别是:关系系统只有“表“这一种数据结构;而非关系数据库系统还有其他数据结构,对这些数据结构有其他的操作。
结构化查询语言SQL(Structured Query Language)是一种介于关系代数与关系演算之间的语言,其功能包括查询、操纵、定义和控制四个方面,是一个通用的、功能极强的关系数据库语言。目前已成为关系数据库的标准语言
Microsoft Access介绍:
使用 Microsoft Access,可以在单一的数据库文件中管理所有的信息。在这个文件中,用户可以将自己的数据分别保存在各自独立的存储空间中,这些空间称作表;可以使用联机窗体来查看、添加及更新表中的数据;使用查询来查找并检索所要的数据;也可以使用报表以特定的版面布置来分析及打印数据。 [版权所有:http://think58.com]
如果要保存数据,请为每一种类型的信息创建一个表。如果要从查询、窗体或报表中的多个表中将数据合并在一起,就要定义各个表之间的关系。
如果要搜索并检索符合指定条件的数据,包括来自多个表中的数据,就要创建查询。查询的同时也可以更新或删除多条记录,并对数据执行内嵌或自定义的计算。
如果要简单地直接在某个表中查看、输入及更改数据,请创建一个窗体。在打开一个窗体时,Microsoft Access 将从一个或多个表中检索数据,并使用用户在“窗体向导”选择的版面布局或所创建的版面布局,将窗体显示在屏幕上。
如果要分析数据或将数据以特定的方式打印出来,请创建一个报表。例如,可以打印一份将数据分组并计算数据总和的报表,也可以打印另一份带有各种数据格式的打印邮件标签的报表。 think58.com
[资料来源:www.THINK58.com]
1.2 程序运行环境
操作系统:Windows 9x/Me/Windows 2000/Windows XP
办公软件:Office XP/Office 2003/ Office 2000
think58好,好think58 [资料来源:THINK58.com]
[来源:http://www.think58.com]
2 . 需求分析
2.1 负责的功能模块
设计试题生成功能,试题能分布整个教学内容
具有试题的答案生成功能
数据库设计及维护
程序的其它选项设置
2.2 软件功能分析
根据我负责的功能模块,主要是在试卷的生成上。
1.要显示书本章节信息以供用户使用。而在数据库里章节的存放是没有规则也即它们的顺序不一定按照真实书本的章节顺序来存储的。但是在显示章节信息的时候必须按照书本的章节顺序来显示。所以特别设置如下的数据类型:
Public Function AddQuestion(ByVal iCount 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 > 0 Then
AddQuestion = False
Else
DataEnv.rsQstPaper.Filter = "" think58
[资料来源:www.THINK58.com]
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(ByVal iCount As Long, ByVal QID As Long, ByVal QType As QuestionType, ByVal Score As Single) As Boolean [版权所有:http://think58.com]
On Error Resume Next
DataEnv.rsQstPaper.Open
DataEnv.rsQstPaper.Filter = "QuestionID = " & CStr(QID) & " and QuestionType = " & CStr(QType) & " "
If DataEnv.rsQstPaper.RecordCount > 0 Then
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 本文来自think58 [版权所有:http://think58.com]
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
think58
下一篇:学校田径运动会管理系统