基于.net的英语词汇学习与测试系统设计与实现_
[摘要]介绍在.net环境下实现一个高效、高信度的英语词汇学习与测试系统,系统按照词汇级别测试的要求随机抽题组卷,以友好的界面和多媒体形式增加用户对词汇测试的接受度,主要描述系统各功能部分设计及相关实现技术。
[关键词]词汇学习与测试B/S模式ASPnet
中图分类号:TP3文献标识码:A文章编号:1671-7597(2009)1120060-02
一、引言
英语词汇学习与测试是英语习得的重要组成部分。词汇量和词汇使用熟练程度会直接影响英语学习的行为和结果,对英语学习成功与否相当重要。而传统的纸媒英语词汇学习与试卷测试方法不仅需要大量的人力物力投入,而且效率低,测试工作也无法避免因作弊和人工判卷等因素带来的误差,在线学习与测试则能以快捷、公正、灵活高效的特点很好的解决了上述弊端,在提高学习者英语词汇学习效率得同时,大大简化测试过程,提高教师得工作效率。
二、设计原理及系统分析
(一)设计原理
本着英语在线词汇练习、测试系统应具有良好的兼容性、可扩展性及跨平台运行等特性之原则,本系统采用B/S(Browser/Server)开发模式。这一模式只需安装维护一个服务器,客户端采用浏览器向服务器发出请求,服务器对浏览器的请求进行处理并将用户所需信息返回到用户端浏览器。
服务器端采用ASP.net作为编程环境,以建立高效、交互、安全的服务器端应用程序。服务器的运行环境为Windows 2003,数据库服务器采用MS SQL Server 2000。
(二)系统分析
作为一个面向特定学习者的英语词汇学习与测试系统,学习者需要通过浏览器登陆系统,登陆成功后方可参加练习/测试。本系统按照词汇级别测试(Vocabulary Levels Test)分为六个等级,词汇量及词汇知识深度递增。
本系统附有词典功能,可用于练习模式下的单词查询。练习/测试模式下每一级试题根据本级词汇量及深度要求随机出题,练习/测试一旦开始,系统就开始倒计时并显示剩余时间,在练习/测试结束之前,学习者可以选择提前交卷;或者考试结束时由系统自动收卷并阅卷,学习者当场得知练习/测试成绩。系统流程图如图1所示。
三、系统设计
(一)系统功能结构设计
英语词汇学习与测试系统的测试机制是以计算机为载体,借助于互联网实现无纸化学习与测试,它是传统纸笔媒体练习/测试在网络环境下的延伸。因此,系统仍然具备传统英语词汇学习与测试的所有功能。本系统分为用户管理、答错题管理、练习管理、测试管理、系统参数设置等五个功能模块。
1.用户管理:由管理员批量录入学习者账号。不同类型账号具有不同权限。学习者登陆后只能查询考试记录、练习/考试;管理员可添加试题、统计考试结果;可修改用户等。
2.答错题管理:显示练习/考试时答错的习题,支持错题重做。
3.练习管理:按习题编号顺序生成习题集,做完提交后记录答错题,最后显示练习统计结果。
4.测试管理:随机生成测试试卷,做完提交后记录答错题,再显示测试成绩,最后记录测试结果。
5. 系统参数设置:包括每次抽取的试题数量、难度,考试时间;判断该用户是否有访问该级别的权限。
(二)数据库设计
数据库设计对系统开发有着极其重要的影响,数据库设计的好坏直接决定了系统能否稳定运行以及是否具有良好的可扩展性。在整个数据库设计过程中,我们始终遵循数据库设计标准化和规范化的原则,在充分体现系统需求的基础上,保证数据的准确性和一致性;通过合理表结构等方式提高数据查询效率。本系统的数据库主要由用户表、试题表、成绩表、答错题表构成,其中,成绩表定义及描述如表1所示。
四、系统实现
(一)用户登陆系统
用户按下“Log In”按钮,服务器接收登陆请求,根据以下顺序开始校验:
1.判断用户名和密码是否输入:
If Not ESUtility.IsNotBlank(txtUid.Text) Or Not ESUtility.IsNotBlank (txtPsw.Text, False) Then
2.判断用户是否存在:
dt = GetUserInfo()
If (dt.Rows.Count = 0) Then
3.判断密码是否吻合:
If Me.txtPsw.Text = userPwd Then
以上校验通过后,再由下面的校验来判断该用户权限,如果是管理员,跳转到用户管理画面,如果是普通用户,跳转到测试页面。
If UserAuthority.Equals("1") Then
Response.Redirect("./MainSrc/esTestResultInfo.aspx")
Else
Response.Redirect("./MainSrc/UserSearch.aspx?i=1")
End If
(二)学习与测试系统
学习与测试系统分为两个个主要部分:一是等级选择,二是学习与测试系统。
1. 等级选择。
本系统分为6级,只有通过前一级别的测试方能进入下一级别。等级选择根据LevelAuthorityCheck函数来判断执行,其函数的主要实现如下:
Dim sql As String = " select ISNULL(MAX(E_LEVEL),0) AS E_LEVEL from TEST_RESULT_LIST " +//从测试结果列表当中选择最大级别
" where USER_ID = "" + UserId + """ + //抽出正在考试的考生的数据
" and PASS_FLG = "1"" //|抽出考试通过的数据
2.学习与测试系统。
可根据实际情况从单词、句子、单词和句子及测试四种任选一项进行词汇学习或测试。start按钮作为学习/测试的开始,end按钮作为结束,结束后将自动阅卷,并显示本次学习/测试的结果,并将错误的习题记录到错误表中,根据GetExercisesInfo函数从数据库当中抽出相应的数据,其函数的主要实现如下:
Dim sql As String = " SELECT TOP " + DisplayCount.ToString + " * fromEXERCISES_COLLECTION "
sql += "where E_LEVEL ="" + Level + "" and DEL_FLG="0""
If ButtonFlg <> "" Then
If ButtonFlg = "1" Then
sql += " and EXERCISES_NO > isnull((select WORD_EXERCISES_NO"
Else
sql += " and EXERCISES_NO > isnull((select SENTENCE_EXERCISES_NO"
End If
sql += " from EXERCISES_NO_SET where USER_ID = "" + UserId + """
sql += " and E_LEVEL = "" + Level + ""),0)"
End If
If RandomFlg Then//如果是考试状态,则随机抽取试题
sql += " ORDER BY NewID() "
其中:DisplayCount.ToString 表示从数据库中抽出习题的条数;Level表示选择的相应的等级。
按下end按钮后,系统自动阅卷,根据EndButtonDeal函数把做错的习题保存到习题错误一览表里且显示当前练习结果,根据EXERCISES_NO_SET
函数设置屏蔽已做过的习题。
五、结束语
该英语词汇学习与测试系统已在我校英语教学中得到实践,参与实践的同学明显提高了对词汇学习的兴趣,同时词汇量和词汇使用熟练程度得到较大的提高,取得了良好的教学效果。
参考文献:
[1](美)贝尔利纳索,ASP.NET 2.0网站开发全程解析[M].北京:清华大学出版社,1998.
[2]萨师煊、王珊,数据库系统概论[M].北京:高等教育出版社,2003.
[3](美)Louis Davidson,SQL Server2000数据库设计权威指南[M].北京:中国电力出版社,2003.
本文为全文原貌 未安装PDF浏览器用户请先下载安装 原版全文