时间:2022-07-25 09:54:21
摘要:该文论述了如何利用ASP制作英语在线考试系统,并且通过实例加以说明。
关键词:ASP技术;ACCESS数据库;英语在线考试
中图分类号: TP311.52 文献标识码:A 文章编号:1009-3044(2013)29-6538-03
Design and Realization of Online English Test System Based on ASP
LI Zheng1 , LI Zai-xia2
(Chengde Petroleum College, Chengde 067000, China)
Abstract: This paper discusses and illustrates how to establish online English test system based on ASP technology.
Key words: ASP technology; ACCESS database; online English test
1 现行的英语考试方式
1.1 现状
现行英语教学环节中考试一般采取笔试方法,即教师出纸质试卷,学生答题。从试卷的类型来说,主要是以选择题为主,附以一定量的填空,且一般题量很大。这种考试方式既浪费了大量的资源,如纸张、教师的判卷时间等,又不能够及时地反应出学生的考试成绩。
1.2 对现有考试方式的思考
既然试卷以选择填空为主,参考计算机类课程的考试。笔者认为也可以采用相似的考试方法,即利用计算机的便捷和网络的优势,对英语考试模式进行网络化改革。
2 系统的设计
2.1 系统基础
本系统的用户群主要是学校,因此笔者本着适用性的原则,采取ASP技术作为在线考试系统的基础,数据库采用ACCESS数据库。
2.2 数据表的设计
首先需要建立数据库用来保存相关考试信息,数据库文件名为exam.mdb。本系统需要使用两个数据表用来储存相应的数据,分别是考试题目表和考试成绩表。其中考试题目表用来存储考试题目和考试答案,成绩表用来存储学生的信息和考试成绩。
现简要介绍一下每个表的相应字段。题目表主要字段为key作为主键,st用于多套题目的标号,id为题目的编号,ti存储题目的标题,ty存储题目类型。s1-s5字段具有两个用途,选择题s1-s4字段用于存储选项,s5存储标号,简答和论述题s1-s5字段用来存储答案的关键点。
学生信息表比较简单,StudentID字段用来存储学生编号,StudentName存储学生的姓名,Score字段存储学生的分数,最后IP字段用于记录登陆的IP,防止学生作弊。
2.3 具体模块设计
2.3.1 登陆注册模块(login.asp)
本模块主要的作用是进行登陆验证和学生信息的注册。
按照本模块的作用分别设计两个相应的部分。第一部分主要用于学生的登陆,系统运行流程如下。
学生登陆到本界面,选择进入考试或者注册,系统根据学生的选择把学生所填写的信息与数据库中相应的信息进行比对,如果选择的是登陆则比对学生的姓名和学号,正确便根据随机数抽取题目,把题目信息储存在Session中,同时将session过期时间设置为65分钟,转向考试界面。
第二部分主要用于学生的注册,首先根据from提交的学号和姓名与数据库中相应的信息进行对比,如果已有相关信息则返回,没有则进行注册。
本模块主要技术代码如下:
if request.form("id")"" and request.form("name")"" then
sql="select * from SCORE where StudentID='"&trim(request.form("ID"))&"' and StudentName='"&trim(request.form("Name"))&"'"
if rs.eof then %>’连接数据库查询相应的信息
alert("对不起,您的信息输入有误,请注册或重新填写!") ;
’如果登陆信息错误就发出警告
st=int(rnd(1)*10)
if st
END IF
Session.TimeOut=65 ’进行抽题,并设置缓存时间为65分钟。
response.redirect("exam.asp") …’此处省略数据库关闭的代码
end if%>
2.3.2 试卷模块(exam.asp)
该模块主要用于生成试卷,并实现了考试计时的功能。
本模块设计思路如下。首先系统连接数据库,抽取与保存在Session中保存信息相符的试卷,然后根据TY字段的值生成不同的题目,如ty值为s或者m则生成单选和多选题,如果值为j或者l则生成简答或者论述题。同时为了防止学生答题超过规定的时间,利用javascript控制学生的答卷时间并显示剩余的时间。
本模块主要技术代码如下:
if rs("ty")="s" or rs("ty")="m" then %> ’从数据库中读取单选、多选题
.
if rs("ty")="s" then ty="radio"
else ty="checkbox"
end if %>
[] ;