目 录
摘要 ...................................................................................................... ii
Abstract.................................................................................................. iii
前言....................................................................................................... iv
1.3.1、ADO技术
1.3.2、SQL语言
1.3.3、ABA技术
1.4、主要功能
二、 系统需求分析
2.1、系统设计目标
2.2、系统设计原则
2.3、题库管理系统的数据流图
三、数据库的构建
3.1、数据库的建立
3.2、数据库的扩展
3.3、数据库中的表
3.4、设计要点
3.5、一点说明
四、系统的功能结构
4.1、系统功能结构图
4.2、系统功能模块
五、系统的设计与实现
5.1、主界面的设计
5.2、登录子模块
5.2.1、登录子模块的设计思想
5.2.2、登录子模块的具体实现
5.2.3、登录子模块的设计要点
5.3、试题录入子模块
5.3.1、试题录入子模块的设计思想
5.3.2、试题录入子模块的具体实现
5.3.3、试题录入子模块的主要算法
六、系统测试及性能分析
6.1、系统测试
6.2、性能分析
七、经验体会及可进行的后继开发
八、系统安装
8.1、系统环境
8.2、安装方法
8.3、“试题录入维护子系统”使用指南
8.3.1、系统启动
8.3.2、试题录入维护
8.3.2.1、判断类题录入
8.3.2.2、选择类题录入
8.3.2.3、文字类录入
8.3.2.4、试题查询与维护
8.3.3、题库管理
8.3.4、用户管理
结束语
致 谢
主要参考文献
《高校通用题库管理系统》是针对广大高校教师和学生开发的试题库管理系统。它主要由试题录入维护系统、试卷生成系统以及网络测试系统三部分组成,可完成试题录入、查询、维护,试卷生成、预览、打印、查询以及通过网络环境(Internet/Intranet)测试相关课程的模拟题等工作。由于采用了数据库技术、网络技术、自动化技术和智能管理,可大大减轻试卷管理工作的难度,提高试卷的生成速度,方便教师更好地管理课程考试工作。
Visual Basic是微软公司推出的基于Windows平台上的最方便快捷的软件开发工具。是在原有的Basic语言基础上进一步发展来的,它包含了数百条语句、函数及关键词,其中很多与Windows GUI 有直接的关系。Visual Basic 提供了可视化的用户界面设计功能,把程序设计人员从繁琐复杂的界面设计中解脱出来;可视化编程环境的“所见即所得”功能,使界面设计如积木游戏一般,编程变成了一种享受;强大的多媒体功能可轻而易举地开发多媒体应用程序;新增的网络功能提供了编写Internet程序的能力。Visual Basic6.0中文版不支持用户自己开发ActiveX控件和制作ActiveX文档.它之所以有这么广泛的用途是因为它具有以下的特点:
1、真正的的面向对象编程,使开发人员在维护系统运行时只需修改很小的代码,同时也加快了系统开发的速度。
2、可视化的编程方法,以及向导的功能,是开发人员几乎不用加太多的代码就可以开发标准的Windows程序。
3、数据访问特性允许对包括Microsoft SQL Server和其他企业数据库在内的大部分数据库格式建立数据库和前端应用程序。
4、通过ActiveX技术可使用其它应用程序提供的功能,例如Microsoft Word的字处理器,甚至可直接使用Visual Basic 创建的应用程序和对象。
5、Internet能力强大,使得在应用程序内很容易通过Internet访问文档和应用程序。
6、已完成的应用程序的真正的.EXE文件,公允形式的可自由发布的动态链接库
SQL是英文Structured Query Language的缩写,意思为结构化查询语言。SQL语言的主要功能就是同各种数据库建立联系,进行沟通。微软的SQL Server是一个多用户的关系数据库系统,他为在复杂环境下有效的实现重要的商业应用提供了一个强有力的客户机/服务器平台。他结合Microsoft Windows NT操作系统的能力,提供一个安全的,可扩展的,易管理,高性能的客户机/服务器数据库平台。
作为一个多层的客户机/服务器数据库系统,SQL Server的数据库驻留在一个中央计算机上,该计算机称为服务器。用户通过客户机的应用程序来访问服务器上的数据库。在能访问数据库之前,SQL Server首先对来访的请求作安全验证,验证通过后就处理请求,并将处理的结果返回给应用程序。这种处理方式也是大多数客户/服务器系统所使用的,即客户机向服务器提出请求,服务器分析处理请求,并将结果返回给客户机。
SQL Server 还可以作为一个存储在本地的单机数据库,即作为一个桌面数据库来使用。这样,应用程序可以将SQL Server 嵌入进入并作为整个程序的一部分。在这种情况下,不需要为每一个客户机分配管理员,SQL Server 能够动态的进行自身配置以达到最优的运行。本系统的设计就是安装SQL Server 2000的桌面版来建立数据库的。
ADO是Microsoft处理关系数据库和非关系数据库中信息的最新技术(关系数据库管理系统用表来操纵信息,但并非所有的数据源都遵从这一模式)。ADO没有完全取代现有的DAO,但是它确实把DAO的编程扩展到了新的领域。
ADO基于微软最新的被称为OLE DB的数据访问模式。它是专门为了给大范围的商业数据源提供访问而设计的,包括传统的关系数据库表、电子邮件系统、图形格式、Internet资源等等。ADO比DAO 所需的内存更少,所以它更适合于大流量和大事务量的网络计算机系统。
ADO方式是DAO和RDO方式的继承者,它也有一个类似的对象模式。在 ADO方式中,可编程对象展示了计算机上所有可获取的本地和远程数据源。
1、ADO对象
ADO顶层有三个对象Connection、Command、Recordset:
Connection对象可以指定数据源,建立与数据源的连接、隔离特定的连接;
Command对象对数据源执行指定的命令。它可以接受SQL语句、表的名称和存储过程的名称,执行SQL查询、更新数据、插入记录等。
Recordset对象表示的是来自表或命令执行结果的记录全集,操作来自提供者的几乎所有数据。
2、ADO集合
每个对象都有Properties(属性)集合;
Errors(错误)集合包含连接数据库失败时产生的所有Error对象;
Parameters (参数)集合包含Command对象的所有Parameter对象;
Fields(字段)集合包含Recordset对象的所有Field对象。
3、与数据库建立的连接
增加了一个模块Mconnection在模块中建立公共子程序Connection()在其它的窗体和模块调用此公共子程序就完全可以实现与数据库的连接。具体代码如下:
Public Sub Connection()
Set cn = New Connection
With cn
.Provider = "MSDASQL"
.ConnectionString= “dsn=datas;uid=sa;pwd=;database=datas”
.Open
End With
End Sub
SQL是一种数据库的查询和编程语言,是对数据库中的数据进行组织、管理和检索的工具。
当用户想检索数据库中的数据时,就用SQL编写出提取信息的SQL语句,SQL语句用某种规则来获取数目有限的特定的记录。数据库管理系统(DBMS)对SQL请求进行处理,检索到所需要的数据,并将其返回给用户,这个过程就是SQL查询。通过查询可以快速方便地从数据库中获取需要的数据。
尽管查询是SQL的核心,但是SQL不仅仅是一个查询工具,SQL可以控制数据库管理系统提供给用户的所用功能,包括定义数据存放的结构、数据更新、数据检索、实现数据共享和规定数据的完整性等。SQL已经成为关系型的标准语言,它广泛用于客户机/服务器的结构中,客户机利用SQL通过网络与存放数据库的服务器通信。正因为SQL是一个标准,所以SQL可以用来在不同的数据库管理系统间通信。
在以往的手工命题中,一份试卷的形成,不仅要书写大量的题目,而且还要随题画出图形,命题工作年年重复进行。为了使教师从烦琐和重复的组题工作中解脱出来,用计算机实现对题库进行全面、系统、科学、高效的管理和应用,以适应教学和考试的需要。我们决定开发一个题库管理系统.该系统将实现题库的录入、编辑、查询、生成试卷、输出试卷和更新系统等功能,具有较强的开放性、移植性以及完善的安全机制,从而实现数据库题库管理的计算机化,并加以推广使用。
·实用性原则:实用性是题库管理系统的基本原则。保证系统的使用,满足用户的业务需求是该系统的基本目标,在实用的基础上再追求其他的新颖的功能。
·科学与规范性原则:该原则要求题库管理系统在设计和开发中做到系统结构的科学性,软硬件环境的合理性,符合现代软件工程技术的规范性,并包括开发工具与后台数据库接口和输出等技术的规范性。
·可扩充性原则:该原则要求随软硬件技术的发展而可以实现系统的扩充,以及用户需求的扩充、用户数目的扩充等。
·安全性原则:由于该系统管理是面向考试服务的系统,因此具有严格的安全要求,在该系统中,将实行不同层次用户拥有不同密码,有不同的权限。
|
|
登录 |
信息管 理 |
生成试 卷 |
输出试 卷 |
|
|
|
|
|
|
|
|
|
|
在SQL Server服务器下面的“data base”单击鼠标右键,选择弹出式菜单中的“new database”,在数据库窗口中输入数据库的名称datas,在数据库文件栏将所属文件名称和容量做一下调整,单击日志选项卡,设置日志文件,如果设置的容量较大,SQL Server将花费较长时间来初始化数据库,待初始化完成后,数据库的增加就完成了。请注意,在设置数据库时,应该对数据文件和文件组有以下几个方面的清晰认识:
1、文件或文件组不能多于数据库。
2、文件只是一个文件组的成员。
3、日志文件不属于任何文件组。
4、如非必要,只需设置一个数据文件和一个日志文件就可以良好运作。
5、为提高运行效率,最好在本地不同的物理磁盘上为数据库创建多个数据文件和文件组,并给那些执行大量数据操作的数据库对象分配不同的文件组。
6、不要将日志文件存放在其他文件或文件组所在的物理磁盘上。
一般来说,在SQL Server 中扩展一个数据库有三种方法:
1、将数据库设置为自动增长。
2、为数据库原有的数据文件分配更多的空间。
3、为数据库增加另外的数据文件并为之分配空间。
我们在建立数据库时,采用了第一种方法。单击已经建好的datas数据库,在弹出式菜单中选择“properties”,在属性窗口中改变比例值,或者固定增长的大小,我们设置固定为10mb。数据库建立结束。
在SQL Server 中创建表有两种方式,一种是可视方式,另一种是程序方式。前者采用填表的形式创建表,后者采用SQL语句创建表,我们采用的是可视方式建立表格。执行Enterprise Manager命令,进入sql server enterprise manager 窗口,展开 sql server enterprise manager 窗口左框中的树结构,此时已经可以看到数据库datas的结构,右键单击sql server enterprise manager窗口左框中的datas数据库中的tables,出现弹出式菜单,单击弹出式菜单中的new table 命令,出现choose name 对话框,输入表名,填加完字段后此表就已经生成了。
在本系统的开发过程中我们共建立了17个表和11个视图:篇章表(T_Chapter)、文字题表(T_CharacterQst)、选择题表(T_ChoiceQst)、属性表(T_CommonAttribute)、试题难度表(T_Difficulty)、判断题表(T_JudgeQst)、知识点表(T_KnowledgePoint)、试题类型表(T_Type)、用户信息表(T_User)和用户类型表(T_UserType)。表具体的数据结构如下:
表3-1 T_Chapter
字段名称 |
数据类型 |
是否允许空 |
默认值 |
含义 |
ChapterID |
长整型 |
N |
0 |
篇章编号 |
ChapterName |
文本 |
N |
篇章名称 |
表3-2 T_CharacterQst
字段名称 |
数据类型 |
是否允许空 |
默认值 |
含义 |
CharacterQstID |
长整型 |
N |
0 |
文字题编号 |
BackBone |
备注 |
N |
文字题主干 |
|
BackBonePic |
OLE对象 |
文字题图片 |
||
Answer |
备注 |
N |
答案 |
|
AnswerPic |
OLE对象 |
答案图片 |
||
CommonAttID |
数字 |
N |
试题属性编号 |
|
Blanks |
数字 |
(填空题)填空数 |
表3-3 T_ChoiceQst
字段名称 |
数据类型 |
是否允许空 |
默认值 |
含义 |
ChoiceQstID |
长整型 |
N |
0 |
选择题编号 |
BackBone |
备注 |
选择题主干 |
||
BackbonePic |
OLE 对象 |
选择题主干图片 |
||
Choice1 |
文本 |
选项1 |
||
Choice1Pic |
OLE 对象 |
选项1图片 |
||
Choice2 |
文本 |
选项2 |
||
Choice2Pic |
OLE 对象 |
选项2图片 |
||
Choice3 |
文本 |
选项3 |
||
Choice3Pic |
OLE 对象 |
选项3图片 |
||
Choice4 |
文本 |
选项4 |
||
Choice4Pic |
OLE 对象 |
选项4图片 |
||
Choice5 |
文本 |
选项5 |
||
Choice5Pic |
OLE 对象 |
选项5图片 |
||
Choice6 |
文本 |
选项6 |
||
Choice6Pic |
OLE 对象 |
选项6图片 |
||
Answer |
文本 |
答案 |
||
CommonAttID |
数字 |
试题属性编号 |
表3-4 T_CommonAttribute
字段名称 |
数据类型 |
是否允许空 |
默认值 |
含义 |
CommonAttID |
长整型 |
N |
0 |
属性编号 |
TypeID |
数字 |
N |
试题类型 |
|
DifficultyID |
数字 |
N |
试题难度级别 |
|
ChapterID |
数字 |
试题所属篇章 |
||
SectionID |
数字 |
试题所属小节 |
||
KnowledgePointID |
数字 |
试题考察知识点 |
||
UsedTimes |
数字 |
试题使用次数 |
||
RecordTime |
日期/时间 |
N |
试题录入时间 |
|
LastUsedDate |
日期/时间 |
试题最后使用时间 |
||
Availability |
是/否 |
N |
试题是否可用 |
表3-5 T_Difficulty
字段名称 |
数据类型 |
是否允许空 |
默认值 |
含义 |
DifficultyID |
长整型 |
N |
0 |
难度级别编号 |
DifficultyName |
文本 |
N |
难度级别名称 |
表3-4 T_JudgeQst
字段名称 |
数据类型 |
是否允许空 |
默认值 |
含义 |
JudgeQstID |
长整型 |
N |
0 |
判断题编号 |
BackBone |
备注 |
N |
判断题主干 |
|
BackBonePic |
OLE 对象 |
主干图片 |
||
Answer |
是/否 |
N |
答案 |
|
CommonAttID |
数字 |
N |
试题属性编号 |
表3-4 T_KnowledgePoint
字段名称 |
数据类型 |
是否允许空 |
默认值 |
含义 |
KnowledgePointID |
长整型 |
N |
0 |
知识点编号 |
KnowledgePointName |
文本 |
N |
知识点名称 |
小节表:存储试题的所属小节信息,其中小节编号是本表的主键。
表3-4 T_Sector
字段名称 |
数据类型 |
是否允许空 |
默认值 |
含义 |
SectorID |
长整型 |
N |
小节编号 |
|
SectorName |
文本 |
N |
小节内容 |
|
Belong |
数字 |
N |
小节所属篇章 |
表3-4 T_Type
字段名称 |
数据类型 |
是否允许空 |
默认值 |
含义 |
TypeID |
长整型 |
N |
试题类型编号 |
|
TypeName |
文本 |
N |
试题类型名称 |
表3-4 T_User
字段名称 |
数据类型 |
是否允许空 |
默认值 |
含义 |
UserName |
文本 |
用户名 |
||
PassWord |
文本 |
N |
用户密码 |
|
UserTypeID |
数字 |
N |
用户类型编号 |
表3-4 T_UserType
字段名称 |
数据类型 |
允许空 |
默认值 |
含义 |
UserTypeID |
长整型 |
N |
用户类型编号 |
|
UserTypeName |
文本 |
N |
用户类型名称 |
题目的编码不仅要唯一标识题目,还必须能够标识题目属性:题型、章节、难度系数以及题号,在数据库的设计中我们把题目的编码统称为题号。利用这样定义的编码,容易区分题目之间的不同。由于编码的唯一确定性,可确保在生成的同一试卷中,不会抽取相同的试题。
在我们开发数据库题库管理系统的过程中,我们发现要想开发一个优秀的题库管理系统,应当解决以下几个问题:
根据上述分析,我们在做概要设计时就为系统设计了下面几个功能模块,用户登录、信息管理、生成试卷、输出试卷、更新系统、和窗体的设置、用户的帮助文件等。其具体的功能结构图如(图4-1)所示。
生成试 卷 |
数据库题库管理系统 |
登录 |
信息管 理 |
输出试 卷 |
更新系 统 |
清空章节 |
清空题库 |
用户信息 |
录入章节 |
录入 |
查询 |
录入试题 |
编辑章节 |
添加类型 |
编辑试题 |
帮助 |
手工组卷 |
自动组卷 |
编辑 |
窗口 |
图4-1 系统功能结构图
编辑题签:对所选出的试题进行修改和编辑。
更新用户信息:修改登录时用户名或用户密码。
清空试题库和清空章节库:删除所有题库中的信息。