基于C/S多层结构模式计算机通用考试系统的设计与实现
2016-03-04王蕊
王蕊
摘要:该文介绍了计算机通用考试系统的设计过程,结合利用Borland Delphi和SQL SERVER进行考试系统软件开发应用程序的实例,阐述了考试系统实现的主要技术特点。
关键词:Borland Delphi 7;C/S模式多层结构;IP安全技术;自动组卷
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2015)36-0003-02
1概述
随着计算机技术和网络技术的发展,更多的技术和成果被应用到教学管理和教学中,冲击着传统的教学理念和教学考核方法。传统的考试模式被先进的、客观的计算机考试系统所替代;充分利用自身学校现有的计算机硬件和软件资源,采用合适的编程技术和编程方法开发出教师简单易用、通用性强的考试系统是非常必要的。
2系统设计
考试系统设计总体目标是要建立管理性规范、安全性高、功能性齐全、运行性稳定、界面性友好的计算机考试系统。
2.1 系统体系结构设计及开发工具
计算机考试系统常用的体系结构主要有C/S和B/S两种。 由于教学考试是基于内部网络的应用系统,C/S模式提供了更安全的存取模式,其交互性强,所以本系统C/S模式。但传统的C/S模式是一种“Fat Client、Thin Server”的网络结构模式,随着技术的发展及广泛应用,这种体系结构可靠性降低、灵活性缺乏、资源浪费、维护费用高等缺点日益显现出来,为了解决上述缺点,其本系统采用C/S模式多层结构开发数据库应用系统。
C/S模式多层结构将业务逻辑从客户端分离出来,在中间层上设计了大量的供客户端调用的远程方法,形成了“Thin Client、Fat Server”结构模式,可以更好地实现软件系统的功能,程序设计大大简化,网络流量大大减少,最终提升软件的运行效率,提升软件的整体性能和可维护性。计算机考试系统设计服务器采用安全性较高、稳定性较好的数据服务器SQL Server 2000开发环境,采用Windows 2003 Server 作为服务器操作系统,C/S结构前端采用Borland Delphi 7作为开发工具[1]。
2.2系统的需求分析
从总体性能上来说考试系统要具备准确率、及时性、可扩展性、应用性、低负荷性、容错性、健壮性等;从功能需求来说,要开发设计出适用多学科的通用计算机考试系统,要对试题的内容、形式、数量、评分准则、卷面分析等一系列问题进行周密的部署,在正常的网络环境运行下,计算机考试系统要完成考生登录、自动组卷、自动阅卷、回收成绩、试卷分析、成绩打印等一系列功能。
通过系统的需求分析, 考试系统中有三类用户,即教师、学生、管理员, 用户使用功能相互交叉;通过模块化设计, 将系统功能设计成四部分,分别为用户管理、题库管理、考试管理、成绩管理。计算机通用考试系统功能模块如图1所示。
2.3系统工作流程设计
考试系统的工作流程如图2所示。
2.4数据库的设计
数据库的设计包括概念设计、逻辑结构设计、物理设计。根据需求分析实际得到的数据项和数据结构,设计出能够满足不同用户需求的各种实体以及它们之间的关系,最后形成对实体具体描述的E-R图;将E-R中各个实体和联系转换数据表,如:管理员信息表、考生信息表、科目信息表、选择题题库、试卷信息表、考生成绩表等;选择合适的数据存储结构、存取方法、选择存取路径、确定数据的存放位置,完成数据库的物理设计,标志着数据库的框架搭设已完成,进入数据库的实施和维护阶段。
3系统的实现
考试系统中的服务器要同时与众多的考试终端进行信息交互,为了防止服务器超负荷导致系统崩溃,还要再相对安全的网络环境下进行系统的运行,设计采用了C/S多层结构计算模式,将任务合理分配到Client和 Server,再依赖彼此的硬件优势,提升整个系统的数据处理效率,实现终端和管理的相互通信。
3.1中间业务逻辑层设计
使用C/S多层结构计算模式,如果客户功能有变动时,只需更改中间层上的相关方法,而不需要重新分发客户端。在Delphi7中使用DataSetProvider控件提供RPC服务,对于每一个客户端的操作,都可以通过在中间层服务器中设计相应的方法实现。在中间层进行设计方法主要有两个:一个是function ExeClientSql(const MySql: WideString): WordBool; safecall;另一个是function GetClientData(const MySql: WideString): OleVariant; safecall。
3.2考试系统的主要技术特点
考试时由于考生随机抽取试卷,还需保证相邻的机器抽取不同的考题。实现该功能的存储过程如下:
CREATE PROCEDURE cp_Pap_Sel
@tblDL char(25),
@Prior int,
@Next int,
@KM char(35)
AS
exec(′select top 1 TTBH,TTMC from tblcrecord where TTBH not in(select TTBH from ′+@tblDL+′ where IP序号=′+@Prior+′or IP序号=′+@Next+′) and KMMC=‘‘+@KM+‘and 是否抽取=′′是′′ order by newid()′)
GO
1)IP安全技术
将考试系统中IP地址限定在某一固定区域内,如:192.168.2.1到192.168.2.100,可以防止考生在考场外进行替考,与此同时在考试期间设置“未登录考生禁止考试”功能,在考生登录之后避免场外替考现象的发生,双保险。同时,一并将考生号和考生机器IP地址进行双重绑定,在考试过程中,考生只能在一台计算机上进行答题,防止考生相互换题。考生登录到考试系统后,将机器IP地址第一时间写入考生信息表,防止一个考号在两台机器上登录[2]。检查是否同一个IP登录的过程如下:
with cds2 do
begin
Close ;
SQL.Clear ;
SQL.Add(′exec sp_Query_All:fldName,:tblName′);;
Params.ParamByName(′fldname′).Value :=′*′;
Params.ParamByName(′tblName′).Value:=
dm.tblDL+′ where entrance IP='''+dm.MyIP+''';
try
Open;
if recordcount<>0 then
begin
sMessageDlg(′warning′,′Invalid test request ′,mtWarning ,[mbOK],0);
exit;
end ;
except
raise ;
end;
2)考试时间的限制
考试时间为120分钟,考生在规定的时间内才可以抽取试卷,计时均由服务器来完成。考生一旦登录,便不可再次重新抽题,非人为原因导致的考试终止的情况,考生可以在监考老师输入二次登录密码后继续答题,保证了时间的公平性和试卷的安全性。
3) 数据加密
考试系统中采用了关键数据加密和数据库动态加密技术,比如将题库中的考题采用加密的存储方式,用户登录的密码加密后存储到相应的数据库中,防止被他人获取。用户登录数据库时,系统会自动对修改数据库密码进行动态加密,增加了数据的安全性。
4) 试题录入功能独立于考试主系统
利用登录账号和录入科目的设置,限制教师在指定的时间通过验证码录入相应的考试科目试题,将试题的录入功能和主考试系统分开,保障了系统的安全性。
5) 自动组卷策略
自动组卷是考试系统非常重要的一个组成部分。考试系统基于知识点的层次结构试题库模型为基础,首先根据用户的命题要求计算出试卷的量化模型,包括试题分数分配矩阵、不同难度类型的试题分数分配矩阵,采用随机抽取和近似匹配的策略进行组卷。
6)应用大量的存储过程,以保障系统快速、高效的运行 以将抽取的试题加入到考试数据库中的过程存储为例:
CREATE PROCEDURE cp_Paper_Add
@tblKS char(30),
@MyNo char(20),
@Mynum char(30),
@Mytbl char(20)
AS
exec(′insert into′+@tblKS+′ (xsxh,tbh,txh,tnr,tda,tfs,sfdt,ttmc,kskm,stlx,xsfs,lbxh)select'''+@MyNo+''','''+@Mynum+''',txh,tnr,tda,tfs,′′否′′,ttmc,kmmc,stlx,0,lbxh from ′+@Mytbl+′ where tbh='''+@mynum+''')
GO
4 结束语
结合学院的软硬件环境开发出通用强的计算机考试系统软件对于学校的成绩考核工作至关重要,软件的运行和维护也是必不可少的。在开发的过程中还有许多细节和不完善的地方,将会通过不断的学习和探索进一步完善。
参考文献:
[1] Borland Delphi应用与开发教程[M].北京:机械工业出版社,2011:101-225.
[2] 王玉.SQL Server数据库应用技术[M].北京:中国铁道出饭社,2012:101-225.