您的当前位置:首页在线题库系统论文

在线题库系统论文

2023-04-29 来源:六九路网
在 线 题 库 系 统

目 录

摘要 ………………………………………………………… 第一章 前言 ………………………………………………………… 第二章 系统体系结构 ……………………………………………… 第三章 系统设计 …………………………………………………… 3.1系统设计原则 …………………………………… 3.2工作流程分析 …………………………………………… 3.3总体模块分析 ………………………………………………… 3.4关键问题分析 ……………………………………………… 3.5系统数据库E-R图……………………………………………… 3.6系统具体模块设计 ………………………………………… 3.7系统CI设计…………………………………………………… 3.8 系统采用的主要技术………………………………………… 第四章 系统实现 ……………………………………………………… 4.1系统实现原则 ………………………………………………… 4.2系统共用信息处理 …………………………………………… 4.3系统数据库连接……………………………………………… 4.4系统登录模块部分……………………………………………… 4.5系统管理模块部分……………………………………………… 4.6 题目管理模块………………………………………………… 4.7 分页的实现…………………………………………………… 4.8上载文件的实现……………………………………………… 第五章 系统测试及结果分析 ………………………………………… 5.1系统功能测试 …………………………………………… 5.2系统错误处理测试 ……………………………………… 5.3系统安全性分析……………………………………………… 5.4系统实用性分析 ………………………………………… 5.5结论………………………………………………………… 第六章 展望 …………………………………………………… 参考文献 ………………………………………………………………

摘 要

本文阐述了一个基于WEB的题库管理系统的体系结构和设计实现过程。系统采用的三层体系结构,ASP-ACTIVE-ACCESS开发,即前端由ASP网页实现表现逻辑,中间使用ASP的组件实现系统内部复杂的业务逻辑,后端使用ACCESS数据库实现数据逻辑,并提出了在线题库管理系统解决方案,提出了题目分类的特殊原则。采用了com.jspsmart.upload组件实现文件上传。系统实现了题库的基本增加、修改、删除功能,实现了对于题库系统各科目的统计,分析;实现了对于题目的使用频率统计分析,实现了对于出题人员的工作量的统计分析。系统在WindowsXP平台下开发。 关键字: 在线题库 ASP ACCESS数据库

第一章 前言

目前,在国家有关项目的支持下,出现了一系列实用的题库系统,如高等教育基础学科系列题库、国家医学水平考试题库、基础教育系列题库等。这些系统,有的由国家机关控制,有的作为商品出售,产生了巨大的经济与社会效益。但随着这些系统的运行,问题也就随之出现,封闭运行,缺乏开放性是此类系统的致命弱点。由于题库是一个精密的测量工具,其维护、管理、更新、数据统计与分析都是由专业人士来进行的,故基本上都是由某一重要的大机关封闭运行,这样,只局限于某些权威单位使用,不能得到广泛的普及,无法真正在教学过程中发挥其应有的作用。另外,封闭运行无法得到广泛的使用和参与,对于题库的修订和校正缺乏数据基础,使得提高整个题库数据质量较为困难。

随着Internet的出现和广泛使用,WEB使得实现广泛的网络共享、集中的安全控制和友好的使用界面达到了完美的统一。这为解决题库系统运行中存在的一些问题提供了新的解决方案。

一个基于WEB的通用题库系统,是将系统架设在一个WEB站点上运行,通过浏览器访问,它提供了传统单机题库系统所不能完成的某些功能。传统题库都是分散运行的题库,一般无法保持一个专家群体,因此一般题库由任课教师自主修改,这样容易导致题库总体质量下降,而对于一个题库来讲,只有具备广泛的使用才真正具有它的价值,因此对于单机题库来讲,要想保持良好的题库质量,又要想让其得到广泛的使用,其难度是相当大的。基于WEB的通用考试系统则可以完美的解决这一难题,它可以实现题库集中管理,共享使用。从而不但可以拥有集中的专家群,可以及时更新题库,保证题库的质量,而且可以通过网络统一管理和控制试题库,从而是通用试题库得到最广泛的使用。

第二章 系统体系结构

系统采用三层结构,在客户端用户通过浏览器完成数据下载与模拟操作,浏览器端的表现逻辑通过JSP网页完成。而系统内部复杂的业务逻辑主要通过ASP的组件(Component)实现, ASP组件在WWW服务器上运行,通过ASP返回到客户浏览器。通过表现逻辑与业务逻辑的分离,使网页内容简洁,系统的可维护性和可扩充性增强。在服务器端,系统使用ADO中间件访问数据库,数据库服务器定义了本系统所需要的事务逻辑和数据逻辑。

本系统使用ASP技术作为表现手段系统业务逻辑由JavaBean 组件完成,使用ADO驱动程序访问数据库。由于系统测试需要成熟的数据库支持,因此系统采用ACCESS数据库作为数据库服务器。

第三章 系统设计

3.1系统设计原则

本系统设计遵循结构化设计原则: 1. 模块独立性、适度性原则

模块独立的概念是模块化、抽象、信息隐蔽和局部化概念的直接结果。模块独立性是通过指定具有单一功能并且和其它模块没有过多联系的模块来实现的。

模块独立性是由内聚性和偶合性两个定性指标来度量的。内聚性是度量一个模块功能强度的一个相对指标。偶合性是用来度量模块之间的相互联系的程度。

模块过大时,模块的可理解性会迅速下降。另外对过大的模块分解时,也不应降低模块的独立性。因为当对一个大的模块分解时,可能会增加模块间的依赖。 2. 系统结构深度、宽度、扇出、扇入适当原则

深度表示从根模块到最低层模块的层数;宽度表示控制的总分布;扇出数指由一模块直接控制的其它模块

数;扇入数指有多少模块直接控制一个给定的模块。

图3-1 软件结构图

好的系统结构通常顶层扇出比较大,中间扇出比较少,底层模块大扇入。 3. 模块的作用范围保持在该模块的控制范围内

模块的作用范围是指受该模块内一个判定影响的所有模块的集合。模块的控制范围是指这个模块本身以及所有直接或者间接从属于它的模块的集合。 4. 系统模块的单入口,单出口原则

这一准则是要防止内容耦合性。如果模块都是从顶部入口,从底部出口的话,这样系统更容易理解和维护。如可以避免病态连接(病态连接关系是指从中间进入或者访问一个模块)等。 5. 模块结果可预测原则

如果一个模块可以当作一个黑箱,即只要输入的数据相同就产生同样的输出,这个模块的功能就是可以预测的。

6. 数据一致性原则

3.2工作流程分析

工作流程描述:进入系统,首先需要登录,然后根据分配的权限,可以进行相应的操作。 1. 系统管理员初始化系统

管理员需要对题库初始化参数进行设置:设置课程--->添加知识点;添加题型;添加用户,此项包含用户权限分配。 2. 填加试题

具有添加权限的教师可以进行如下操作:选择添加题目所在课程—>选择添加题目所在知识点—>添加题目 3. 审核试题

具有审核权限的教师可以进行如下操作:选择课程—>选择知识点—>查看或者修改题目—>通过审核 4. 浏览题目

有此权限或者更高权限的教师可以操作:选择课程—>选择知识点—>查看题目内容 3.3总体模块分析

图3-3 系统结构图

系统整体分分三大模块,登录模块,系统管理模块,题目管理模块。

系统登录模块主要完成整个系统登录,从而传递登录参数到系统管理或者题目管理模块。 系统管理模块主要完成整个系统的初始化以及对于系统内部操作用户的管理。 题目管理模块主要完成系统对于题目的管理。

3.4关键问题分析

1、题目分类

一般的题目分类是这样的,客观题型,主观题型或者分为选择、填空、判断、简答等。 在本系统中,按照数据量的大小,只将题目分为两类,一类是A型题目,一类是B型题目。 A型题目是小的数据量,它包含填空、选择、判断、简答等。 B型题目指一些大的综合题目,大都以文件的形式存在。 2、题目存储

根据题目分类,题目有两种存储方式,一是全部存入数据库服务器,一是将大数据类型以文件形式存入业务服务器。

前中方法有利于保证数据的完整性,而后一种方法有利于系统向不同数据库移植。

在本题库管理系统中,考虑到系统以后的通用性以及往其他数据库的移植,因此未将大数据类型的文件的数据以LOB类型存入数据库,而是将其以文件的形式存入业务服务器,在数据库服务器中只存相应业务服务器的文件路径。因此系统题目根据题目分类将A型题目直接存入数据库,B型题目以文件形式存入业务服务器。

3、关于人机交互的问题

良好的人机界面设计是系统的一部分,因此也是本系统设计的一个重要部分。另外多方面的信息提示也能提高系统的易理解性与易操作性,因此在系统中应加入人性化的标志以及一些数据的提示。数据提示中包含了系统对于一些有用数据的统计,即:对各科题目数量进行统计,对于各个知识点详细题目数量也进行统计,为了使出题人员能明确题库中题目数量,可以按照题目数量随时补充题目,另外,对于出题人员的出题数量也应进行统计,为了考察各个出题人员的工作量,也有利于管理员管理。 4、系统访问权限管理

系统访问权限设置是一个系统多权限系统的设计的关键。

本系统根据要求,对于用户权限划分为5个等级,系统管理人员(1)、审核人员(2)、出题人员(3)、阅卷人员(4)、普通受限用户(5)。

他们对于系统功能可操作关系如下图所描述:

图3-4 系统操作权限图

5、实际考试与系统模拟复杂度权衡

系统中在实际考试时需要涉及一些表单信息的处理,如单选框,多选框,填空框等等,因此在出题过程中应该加以考虑,既要出题人员操作简单,又要系统设计简单,还要避免一些冲突,因此考虑到诸多方面,

在本系统中定义了转义字符串。

具体定义如下:[X]定义为单选框,[DX]定义为多选框,[T]定义为填空框,在出题过程中,可以按出题按钮进行出题,也可以直接输入这些转义字符串,在题目显示的时候,再将这些转义字符串转为分别定义的功能属性。

系统中既然对于一些字符串进行了定义,则对于出题时候题干中可能出现的此类字符串应当予以考虑,在出题的时候,应当注意这些特别申明了的字符串的使用,若非要在题干中出现,应这样处理,因为在系统中是经浏览器解释的,因此对于[X]这样处理,写为[ X],在这个串中, 解释为一个空格,显示为[ X],不会将它解释为一个表单的功能属性,其他几个转义字符串处理方法相同。 6、 数据一致性,完整性的保证

系统数据一致性,完整性是数据库稳定的关键。在本系统中,只有保证了系统管理部分的数据完整性,才能进行题目管理部分的操作,因此系统数据的一致性,完整性是系统正常运行的关键。 在本系统中,对于数据一致性是这样保证的:

B型题目数=题目总数(数据库存)-A型题目数(数据库存);

待审题目数=题目总数(数据库存)-可用题目数(数据库存)-回收站题目数(数据库存); 添加题目,需要更新统计信息:

科目题目总数加1;题目类型加1;知识点题目总数加1; 删除题目,需要更新统计信息:

科目题目总数减1;题目类型减1;知识点题目总数减1。

3.5系统数据库E-R图

图3-5 数据库E-R图 系统包含六个实体:

教师、课程、知识点、题型、文件。实体间关系如图3-5所表示。

3.6具体模块设计 3.6.1登录模块设计

登录模块应该完成用户登录及用户权限验证,并保存登录信息及权限信息,它主要有一个功能处理页面,要实现检索数据库,按照不同身份跳转不同页面。系统登录模块主要涉及到的数据库表tblSYS_USER,其设计如下:

序号 名称 编码 类型 宽度 精度 备注

表3-1 数据库用户表tblSYS_USER 1 编码 ID C 6 0 教师编号 2 科目 UserName C 15 0 3 题型 UserPWD C 15 0

4 权限 UserPower N 1 0 1:系统管理员;2:审核人员;3:出题人员;4:阅卷人员;5:普通用户(默认) 5 出题数 SubjectNum N 10 默认值0

6 标志 DelSign C 1 N:正常(默认);Y:删除

7 登录时间 LastTime C 20 默认值0000-00-00

3.6.2系统管理模块设计

系统管理模块包括用户管理,科目管理,知识点管理,题型管理。用户管理包含出题人员、审核人员、判卷人员、受限用户的帐号分配,停用,删除,密码设置等功能。科目管理包含课程的填加,删除,修改,另外统计该课程的知识点数量,题目数量等信息。知识点管理包含对于各课程知识点的增加修改删除,以及对于各知识点包含的A类题目的统计信息。题型管理包含对于题目类型的填加删除修改,题型管理是大多相对于A型而言,包括一般的题目类型,如选择、判断、简答等。

此部分需要设计的数据库表有科目表tblM_COURSE;题型表tblM_SUBJECTTYPE;知识点表tblM_POINT;

表3-2 数据库科目表tblM_COURSE 序号 名称 编码 类型 宽度 精度 备注 1 编号 ID N 5 0 自动加1 2 课程名 CourseName C 40

3 知识点数 PointNum N 10 0 默认值0 4 题目总数 SubjectNum N 10 0 默认值0 5 A型题目数 SubjectANum N 10 默认值0 6 可用题目数 SubjectUseableNum N 10 默认值0 7 删除题目数 SubjectDelNum N 4 默认值0 8 删除标志 DelSign C 1 N:正常(默认) Y:删除

表3-3 数据库题型表tblM_SUBJECTTYPE 序号 名称 编码 类型 宽度 精度 备注 1 编号 ID N 5 0 自动加1 2 题型 SubjectType C 40

3 题目数 SubjectNum N 10 0 默认值0 4 删除标志 DelSign C 1 N:正常(默认) Y:删除

表3-4 数据库知识点表tblM_POINT 序号 名称 编码 类型 宽度 精度 备注 1 编号 ID N 5 0 自动加1 2 课程 Course N 5 关联课程表ID 3 知识点 Point C 100

4 题目总数 SubjectNum N 10 0 默认值0 5 A型题目数 SubjectANum N 10 0 默认值0 6 可用题目数 SubjectUseableNum N 10 默认值0 7 删除题目数 SubjectDelNum N 4 0 默认值0 8 删除标志 DelSign C 1 N:正常(默认) Y:删除

3.6.3题目管理模块设计

题目管理模块包含题目填加,审核,删除,修改。题目的填加又分为A型题目的填加与B型题目的填加,A型题目的填加按照不同类型题目有几个常用的出题模板,不同的题目按照不同的出题模板增加题目,然

后提交处理页面进行处理,B型题目的填加是按照文件的上传实现的,采用了一个组件jspsmartupload实现文件的上传。

此部分需要的数据库表为A型题目表tblM_SUBJECT_A;B型题目表tblM_SUBJECT_B,具体设计如下: 表3-5 数据库A型题目表tblM_SUBJECT_A 序号 名称 编码 类型 宽度 精度 备注 1 编码 ID N 10 0 自动编号

2 科目 Course_id N 5 0 关联科目表中ID 3 题型 Type N 4 0 关联题型表中字段ID 4 内容 Content C 3000 5 附件 SAffix C 100

6 知识点 SPoint_id N 10 0 关联知识点表中字段ID 7 分值 SScore N 3 8 答案 SAnswer C 2000

9 难度等级 SDifficulty N 2 0:简单 ;1:难 10 出题人 SAddUser N 6 关联管理表中字段ID 11 填加时间 SAddTime C 20 格式:YYYY-MM-DD 12 抽中率 Probability N 6 0 默认值0

13 审核标志 CheckSign N 1 0 0:未审核(默认值);1:已审核 14 审核人 Checkuserid C 6 关联管理表中字段ID 表3-6 数据库B型题目表tblM_SUBJECT_B 序号 名称 编码 类型 宽度 精度 备注 1 编码 ID N 10 0 自动编号

2 科目 Course_id N 5 0 关联科目表中ID 3 内容 Content C 100 4 文件大小 Content_size N 9 5. 答案文件 SAnswer_saffix C 100 6 答案要点 SAnswer C 2000 7 分值 SScore N 3

8 出题人 SAddUser C 6 关联管理表中字段ID 9 填加时间 SAddTime C 20 格式:YYYY-MM-DD 10 抽中率 Probability N 4 0 默认值0

11 审核标志 CheckSign N 1 0 0:未审核(默认值);1:已审核 12 审核人 Checkuserid C 6 关联管理表中字段ID 3.7系统CI设计

所谓CI,是借用的广告术语。(CI是英文corporate identity的缩写),意思是通过视觉来统一企业的形象。一个好的系统,和实体公司一样,也需要整体的形象包装和设计。准确的,有创意的CI 设计,对系统的宣传推广有事半功倍的效果。因此CI形象设计是非常重要的。 3.7.1 系统CI形象定位

本通用在线题库管理系统定位于北方软件学院内部,因此版面设计中以北方软件学院为主。考虑到系统的实用性以及面向教学的特点,因此整个版面趋向于清淡于简练。如图3-5所示: 系统配色方案设计,不同色彩产生的不同效果,主要大体表现为:

红色---激奋的色彩。刺激效果,能使人产生冲动,愤怒,热情,活力的感觉。

绿色---介于冷暖两中色彩的中间,显得和睦,宁静,健康,安全的感觉。它和金黄,淡白搭配,可以产生优雅,舒适的气氛。

橙色---也是一种激奋的色彩,具有轻快,欢欣,热烈,温馨,时尚的效果。

黄色---具有快乐,希望,智慧和轻快的个性,它的明度最高。蓝色---是最具凉爽,清新,专业的色彩。它和白色混合,能体现柔顺,淡雅,浪漫的气氛(象天空的色彩白色---具有洁白,明快,纯真,清洁的感受。) 黑色---具有深沉,神秘,寂静,悲哀,压抑的感受。 灰色---具有中庸,平凡,温和,谦让,中立和高雅的感觉。

在本系统中,采用蓝色调,使整个系统看起来清新,专业,另外,再配有黄色部分导航作为提示,能够体现出轻松希望和智慧,对于主题部分,采用黑色字体,能够突出显示,使整个系统更体现的色彩和谐。系统采用的色彩分别用十六进制数值表示为:64A5DB,FCD94C,000000,FF6600。64A5DB为整体色调,因此系统具体空白色块以及滚动条均为此颜色。系统中根据不同需要表格采用1PX实线或者1PX虚线构成,表格边框颜色分别采用000000或者与系统整体色调融合的64A5DB。系统中字体采用宋体,为了能清晰显示,并且宋体为较为通用字体。导航条色彩值选用FCD94C,导航超连接字体采用色彩值336699,翻转字体色彩值采用000000,为了体现翻转以及强调各个连接功能。其他部分超连接采用翻转字体,颜色值FF6600,为了体现更清晰,另外,也是因为橙色(FF6600)是一种激奋的色彩,具有轻快,欢欣,热烈,温馨,时尚的效果。 3.7.3 系统链接结构设计

系统的链接结构是指页面之间相互链接的拓扑结构。它建立在目录结构基础之上,但可以跨越目录。具体来说:每个页面都是一个固定点,链接则是在两个固定点之间的连线。一个点可以和一个点连接,也可以和多个点连接。更重要的是,这些点并不是分布在一个平面上,而是存在于一个立体的空间中。一般基于网络系统的链接结构的目的在于:用最少的链接,使得浏览最有效率。因此在本系统中,采用了一个导航条基本连接所有功能。

一般的,建立基于网络的管理系统链接结构有两种基本方式:

一是树状链接结构(一对一)。类似DOS的目录结构,首页链接指向一级页面,一级页面链接指向二级页面。这样的结构优点是条理清晰,访问者明确知道自己在什么位置,不会\"迷\"路。缺点是浏览效率低,一个栏目下的子页面到另一个栏目下的子页面,必须绕经首页。

二是星状链接结构(一对多)。类似网络服务器的链接,每个页面相互之间都建立有链接。这种链接结构的优点是浏览方便,随时可以到达某个页面。缺点是链接太多,容易使浏览者迷路,搞不清自己在什么位置,看了多少内容。在本系统的链接设计中,将两种连接方式结合使用,首页与管理页面采用树状链接结构,在管理以及题目浏览页面之间采用星状链接。我们希望浏览者以及管理者可以随意到达他所需要操作的页面,又可以知道他处于整个系统的什么位置。详细系统链接如图3-8:

图3-8 系统链接结构图

3.8 系统采用的主要技术 3.8.1 ASP技术

JSP是由Sun微系统公司于1999年6月推出的一项技术,是基于AavaServlet以及整个Java体系的Web开发技术,利用这一技术可以建立先进、安全和跨平台的动态网站。ASP技术在多个方面加速了动态Web页面的开发。它主要有如下几个方面的特点: 将内容的生成和显示进行分离

使用ASP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面。使用JSP标识或者脚本来生成页面上的动态内容(内容是根据请求来变化的,例如请求帐号信息或者一本书的价格)。生成内容的代码被封装在Servlet和ASP组件中,并且结合在脚本中,所有的脚本在服务器端运行。 ASP引擎解释ASP标识和脚本程序,生成所请求的内容(例如,通过访问ASP组件,使用ADO技术访问数据库,或者包含文件),并且将结果以HTML(或者XML)页面的形式发送回浏览器。这有助于作者保护自己的代码,而又保证任何基于HTML的Web浏览器的完全可用性。 强调组件的重用

绝大多数ASP页面依赖于可重用的,跨平台的组件(ASP或者Enterprise ASP组件)来执行应用程序所要求的更为复杂的处理。开发人员能够共享和交换执行组件,或者使得这些组件为更多的使用者或者客户团体所使用。此方法加速了总体开发进程。 采用标识简化页面开发

Web页面人开发员不都是熟悉脚本语言的编程人员。JSP技术封装了许多功能:访问和实例化ASP组件、设置和检索组件的属性、下载Applet以及执行用其他方法更难于编码和耗时的功能。

JSP技术可以通过开发定制的标识库进行扩展。第三方开发人员和其他人员可以为常用功能创建自己的标

识库。这使的Web页面开发人员能够使用熟悉的工具和如同标识一样执行特定功能的组件来工作。 当与ASP2平台、J2EE和Enterprise JavaBean(EJB)技术整合时,ASP页面将提供企业级的扩展性和性能,这对于在企业中部署基于Web的应用是必需的。 与微软公司的JSP技术相比,ASP具有如下优点:

1. 开放的技术:ASP技术基于平台和服务器的相互独立,技术支持来自广泛的、专门的、各种工具包,有服务器的组件和数据库产品开发商提供。相比之下,JSP技术主要依赖MICROSOFT支持。

2. 平台和服务器的独立性:ASP编写的代码可运行在任何符合JAVA语法结构的环境中。这样ASP就能够运行在多种WEB服务器上并支持来自多家开发商提供的各种工具包。

3. 开放的开发过程,开放的源码:自1995年以来,SUN用开放过程方法同国际JAVA组织合作开发和修改JAVA技术和规范。

4. ASP标记可扩充性:JSP技术能够是开发者扩展ASP标记,充分利用与XML兼容的标记技术强大的功能,大大减少对脚本语言的依赖。

5. ASP跨平台的可重用性:ASP组件(EJB,ASP或定制的ASP标记)都是跨平台可重用的。 3.8.2 JavaBean技术

ASP作为一个很好的动态网站开发语言得到了越来越广泛的应用,在各类ASP应用程序中,ASP + ACTIVE的组合成为了一种事实上最常见的ASP程序的标准.ACTIVE是描述ASP的软件组件模型,有点类似于Microsoft的COM组件概念。在ASP模型中,通过ACTIVE可以无限扩充Java程序的功能,通过ACTIVE的组合可以快速的生成新的应用程序。对于程序员来说,最好的一点就是active可以实现代码的重复利用,另外对于程序的易维护性等等也有很重大的意义。avtive通过Java虚拟机(Java Virtual Machine)可以得到正确的执行,具有平台无关性。 一个active有三个部分组成: 属性(Property)

Bean的属性就是对象的属性,但提供了属性读取和设置的接口支持。例如一个时钟Bean可以有时区和镇铃属性,日历Bean可以有年份和月份属性。每个属性通常遵守简单的方法命名规则。这样可以很方便的找出Bean提供的属性,然后查询属性值或改变属性值,对Bean进行操作。 方法(Method)

由于Bean本身是Java对象,调用这个对象的方法是与其交互作用的唯一途径。JavaBean严格遵守面向对象的类设计逻辑,不让外界访问其任何实例字段(没有Public字段)。这样,方法调用的是接触Bean的唯一途径。 事件(Event)

Bean与其他软件组件交流信息的主要方式是发送和接收事件。这与对象之间通过消息通信类似。 JavaBean传统的应用在于可视化的领域,如AWT下的应用。自从JSP诞生后,JavaBean更多的应用在非可视化领域,在服务器端应用方面表现出来了越来越强的生命力。利用非可视化JavaBean, 来封装事务逻辑、数据库操作等等,可以很好地实现业务逻辑和前台程序(如JSP)的分离,使得系统具有更好的健壮性和灵活性。 3.8.3ado技术

ado是Java的开发者——Sun的MICROSOFT公司制定的数据库连接技术的简称,是为各种常用数据库提供无缝联接的技术。ado在Web和Internet应用程序中的作用和ODBC在Windows系列平台应用程序中的作用类似。ado有一个非常独特的动态连接结构,它使得系统模块化。使用ado来完成对数据库的访问包括以下四个主要组件:Java的应用程序、JDBC驱动器管理器、驱动器和数据源。MICROSOFT公司开发了ado是一个标准统一的SQL数据存取接口。ado在Internet中的作用与ODBC在Windows系列中的作用类似。它为Java程序提供了一个统一操作各种数据库的接口,程序员编程时,可以不关心它所要操作的数据库是哪个厂家的产品,从而提高了软件的通用性,而且在Internet上确实无法预料你的用户想访问什么类型

的数据库。只要系统上安装了正确的驱动器组,ado应用程序就可以访问其相关的数据库。

第四章 系统实现

4.1系统实现原则 1、结构化程序编码原则

系统实现遵循结构化程序设计的思想,为了确保每个模块的逻辑清晰,应该尽量使各个模块使用单入口,单出口和顺序、选择和循环三种基本控制结构。另外为了增强系统的编码效率,也采用扩展的结构程序设计,即除了使用三种基本的控制结构以外,还使用多分支的选择结构和下部判断循环条件的循环结构。 2、良好的程序编写风格

为了提高程序的可读性和易维护性,关键是使程序结构简单清晰,因此在程序编写过程中应保持良好的程序设计风格。主要在以下方面体现:

(1)、采用序言性和描述性两种注释对程序进行解释。 (2)、变量说明尽量使其具有实际意义。

(3)、程序语句构造应该简单直接,应直接反映意图,不必过于巧妙和深奥。 (4)、对于交互输入输出,要有简单而有提示的输入方式,出错检查。 (5)、提高输入输出效率。 4.2系统共用信息处理

在本系统中,将所有能够共用的信息单独做出来,然后包含到各个页面中,其中包括头部导航条top.jsp,尾部版权信息页面end.jsp,功能部分,包含提示信息,主要有错误提示信息页面error.jsp,成功处理页面(个别成功提示信息页面为方便单独制作)。

按照不同的错误,定义不同的错误提示,在本系统中,在登录后对系统的操作中总共定义了26种错误信息提示,根据传入参数errorid确定显示不同的错误提示信息,详细图4-4所表示:

图4-4 系统错误分类图

系统中对于公用参数的处理,将所有系统参数都保存于parmeter.jsp文件中,在各个使用的页面中包含此文件即可。

系统中权限分配主要有几个包含文件实现,将不同权限的操作内容包含不同的判断页面信息,它们分别是sys_state.jsp;check_state.jsp;add_state.jsp;user_state.jsp。其中,sys_state.jsp判断用户是否具有系统管理员权限,check_state.jsp判断用户是否是审核权限,add_state.jsp判断用户是否具有填加试题权限,user_state.jsp判断用户是否具有可以浏览题库题目内容。在登录过程中,保存了登录成功的session变量值,在权限判断页面里边,将这些保存在session变量里的值分别取出来,然后判断其存的内容,从而确定登录用户属于什么权限,然后确定是否该用户有操作系统某项功能的权限。

4.3系统数据库连接

在本系统中,采用ado驱动,并用conn.inc将常用的数据库功能封装,这样可以隐藏复杂的数据库操作,还可以避免安全性问题,另外可以增强系统的复用性以及可移植性。

在本系统中,连接数据库的opendb.class目录结构如图所表示。连接数据库主要是这样实现的: <%

Set Conn=Server.CreateObject(\"ADODB.Connection\")

Connstr=\"DBQ=\"+server.mappath(\"db1.mdb\")+\";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS

Access;ImplicitCommitSync=Yes;MaxBufferSize=512;MaxScanRows=8;PageTimeout=5;SafeTransactions=0;Threads=3;UserCommitSync=Yes;\"

Conn.Open Connstr %>

4.4系统登录模块部分

图4-6 系统登录流程图

系统登录部分有一个功能页面checklogin.jsp实现,通过login.jsp页面提交的参数到数据库进行检索,从而完成系统的登录,登录完成以后,将用户的登录信息保存在session变量里边,用Flag保存用户正常登录信息,用UserID保存用户登录时ID号,用UserPower保存用户权限信息,这样在其他页面中包含权限分配以及登录验证时,直接调用判断。用程序实现如下: session.putValue(\"Flag\session.putValue(\"UserID\

session.putValue(\"UserPower\

4.5系统管理模块部分 4.5.1 系统用户管理

系统用户管理文件结构如图所表示:

图4-7 系统用户管理文件结构 4.6 题目管理模块

图4-15 系统题目管理文件结构图

题目管理部分是本题库管理系统的主要部分,它涉及不同科目不同题型不同题类的填加、修改、删除功能。其具体文件结构如图4-15所示,实现见图4-17~图4-21。

题目管理功能主要有四大块组成,A型题目的添加,B型题目的添加,A型题目的管理,B型题目的管理。 在本系统中,A型题目的添加主要有几个常用题型的模板组成,包括单选类题目模板,多选类题目模板,简答类题目模板,判断类题目模板,填空类题目模板等,如图中最下方框所表示。B型题目的添加文件结构如图中中间小框所表示。题目添加流程图见图4-16所表示。

A型题目的管理包括A型题目的浏览,修改,删除,恢复,审核,文件结构如图4-15中第二框所表示。实现如图4-20,4-21所示。

B型题目的管理包括题目的下载,答案要点的查看,答案的下载,题目的重新上载,答案要点的修改,答案的重新上载,题目的删除,题目的审核,题目的恢复,文件结构见图4-15中第一个框,实现后管理如图4-19所示。 4.7 分页的实现

在本系统中,通过使用一个JAVA类Page来记录分页信息,构造Page类进行分页控制。

具体定义如下: package page; public class Page {

public int pageCount; public int recordCount; public int pageId; public int pageSize; }

其中,pageCount 用来保存总页数,recordCount用来保存总的记录数;pageId用来记录当前的页码;pageSize用来保存每页的记录数。建立了Page类以后,可以对分页信息进行处理。 首先,对分页信息进行初始化 Page sPage=new Page(); int count=rsall.getInt(1);

sPage.recordCount=rsall.getInt(1); sPage.pageSize=20; sPage.pageCount=0;

然后计算当前页码及起始记录: if(sPage.recordCount%sPage.pageSize>0)

{sPage.pageCount=sPage.recordCount/sPage.pageSize+1;} else

{sPage.pageCount=sPage.recordCount/sPage.pageSize;} sPage.pageId=Integer.parseInt(getPage);

if(sPage.pageId<=sPage.pageCount&&sPage.pageId>0) { startid=(sPage.pageId-1)*sPage.pageSize; endid=sPage.pageId*sPage.pageSize; } else

{ sPage.pageId=sPage.pageCount; startid=(sPage.pageId-1)*sPage.pageSize;

endid=sPage.pageId*sPage.pageSize; }

然后,根据确定的起始记录号检索数据库

select id from(select rownum as row_num ,id from tblM_SUBJECT_A where SPoint_id='\"+SPoint_id+\"' AND DelSign='N' order by id desc) where row_num between '\"+startid+\"' and '\"+endid+\"'\"; 实现换页

<%if(sPage.pageId!=1){%>

&pageId=1\" target=\"_parent\">首页

&pageId=<%=sPage.pageId-1%>\" target=\"_parent\" title=\"前一页\">前一页 <%}%> <%if(sPage.pageId!=sPage.pageCount){%>

&pageId=<%=sPage.pageId+1%>\" target=\"_parent\" title=\"后一页\">后一页

&pageId=<%=sPage.pageCount%>\">尾页<%}%> 转到第\"> 4.8上载文件的实现

在本系统中对于文件的上传涉及到两部分,一部分是A型题目中关于附件的处理,一部分是B型题目的上载。在本系统中,采用com.jspsmart.upload组件进行文件的上载。所在路径如图4-23所表示。 调用如下:

<%@ page language=\"java\" import=\"com.jspsmart.upload.*\"%>

图4-23 com.jspsmart.upload组件类结构图 mySmartUpload.initialize(pageContext); //初始化 mySmartUpload.upload();//上载 //获得文件

com.jspsmart.upload.File myFile = mySmartUpload.getFiles().getFile(0); //取得上载的文件的文件名

String myFileName=myFile.getFileName(); //文件上载于服务器虚拟 String trace=\"/uploadfiles/\"; //保存文件

myFile.saveAs(trace + myFileName); 4.9题目显示时转义代码的处理

系统中定义了的转义字符串,在出题过程中,可以按出题按钮进行出题,也可以直接输入这些转义字符串,在题目显示的时候,再将这些转义字符串转为分别定义的功能属性,题目显示需要将这些代码解释,在显示时候是通过循环控制实现的,下边就单选框为例显示模拟如下: <%//解释JBB代码将[X]装换为单选框 String temp=Content;//定义中间变量

String check=\"[X]\";

int stringlength=check.length(); int i;

while(Content.indexOf(\"[X]\")>0) {i=Content.indexOf(\"[X]\");

if(i>0){Content=temp.substring(0,i);%> <%=Content%> <% Content=temp.substring(i+stringlength); temp=Content;}}%>

测试如图4-24所示

在题目显示中经过代码处理以后显示如图4-25所示。

第五章 系统测试及结果分析

因为在系统的生命周期的各个阶段都有可能产生差错,所以对于系统的测试是贯穿于系统整个开发的全工程的。

5.1系统功能测试 系统功能内容测试如下: 填加 修改 置位 删除 科目 60 20 20 50 知识点 100 40 40 90 题型 270 100 100 200 A型题目 1280 540 460 1140 B型题目 100 40 50 90 5.2系统错误处理测试

系统错误处理测试,此项测试内容包含了输入确认测试,输入确认用来保证系统拒绝无用信息,主要测试系统是否阻止无用信息进入系统,测试内容有: [1] 输入文本框内容为空 [2] 不登录直接进入系统 [3] 越权操作

[4] 需要输入数字的文本框输入字符 [5] 重复输入提交题库信息

[6] 提交内容中含有“’”“*”等非法字符 [7] 输入删除信息数据库不存在

[8] 不按照出题流程操作(如未选择出题模板等) 5.3系统安全性分析

系统对于错误操作和非法用户的恶意破坏的安全保证的可靠程度。在本系统中,测试了所有可能涉及的错误操作,每个可能涉及到的错误操作都有相应的错误处理机制,在系统实现过程中,定义了本系统可能出现的错误的处理信息以及相应的解决办法。 5.4系统实用性分析

对于系统全部模块进行测试,达到了系统用户起初的设计需求。详细说明如下:全部功能要求达到满足,

全部性能达到要,文件与数据库正常。。 5.5结论

本系统设计是基于教学平台,因此系统设计基本按照题库设计需求。经过测试,系统完成了基于WEB的在线题库管理,实现了题库管理的一般功能,符合题库建设的要求。

系统可以实现了题库的基本增加、修改、删除功能,不同题目录入包含难度等级选择;实现了对于题库系统各科目的统计,分析;实现了对于题目的使用频率统计分析,实现了对于出题人员的工作量的统计分析;对于系统的权限分配,并依据题库管理要求,对于难度等级简易划分,从而完成整个题库题目添加。 通过系统测试,本系统已经达到了设计要求,完成了系统的功能目标和性能需求。基本在线题库的建设的需求,能够适应一般在线题库的扩展。到目前为止,系统尚且没有出现不可预料的错误,测试证明系统是可靠的。

第六章 展望

1与基于网络的远程教学平台进行无缝集成

目前,国内基于网络的远程教学正处于迅速崛起的发展阶段,迫切需要一个能够很好地支持教师教学、学生学习的专用远程教学平台,相关的研究正在进展之中。本系统可以为远程教学提供强有力题库的支持,可以与网络课程紧密整合,无缝的集成到远程教学支持平台中。 2加强统计与分析功能,提供更加丰富的题库测量指标分析

目前,本系统只提供了一些基本的统计与分析功能,如题目分科数量统计,题目按知识点数量统计,分科知识点数量统计,分科可用题目数量统计分析等。这些指标还不能满足题库描述的完全信息,还需要进一步地引入新的测量指标,并详细阐述它在题库中所代表的含义,如定区间题目使用频率、各教师所出题目优选使用频度分析等等。 参考文献

(1) SQL数据库工程实践与分析 邮电出版社 (2) ASP网站制作实例经典 冶金出版社 (3) DREAMWAVER基础教程 机械工业出版社

因篇幅问题不能全部显示,请点此查看更多更全内容