论文部分内容阅读
摘要:为了解决软件开发中的重复开发问题,文章结合网络课程中的自动化考试的特点,利用ASP作为开发工具,通过地址栏中参数传递方法,来实现软件复用。
关键词:网络课程;自动化考试;参数传递;软件复用
中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)20-30308-04
Using Parameter Realize the Software Repeatment in WEB Roboticized Exam System
LI Cui-ping
(Guangdong Songshan Polytechnic College,Songshan 512126,China)
Abstract:In order to solve the problem of software development repeatment,this article combines the characteristic in the network course of roboticized exam ,using ASP as development tools,and using the method of parameter passes in address column,made the software repeatment come true.
Key words:network course;roboticized exam;parameter pass;software repeatment
1 引言
考试作为检验学生学习效果的一种重要手段,在很多学校和部门都会利用它来作为检测和评价教学效果的手段。随
着网络的普及和使用,网络课程的开发和应用得到很多高校的重视,使得很多高等学校把网络课程作为教学建设的重要内容之一,网络考试作为考试的一部分,在网络课程教学环节中起到举足轻重的作用。但由于各部门,各单位对考试系统的要求不同,通常需要根据不同的需要,开发适应不同要求的网络考试系统,这不但给软件开发增加了大量的工作量,而且大量的重复开发势必浪费资源、人力和物力,那么能否有一种简便,快速又可以重复利用的开发方法呢?当然有,下面我们以《英文导游》这门课程的网络开发为例,着重分析以参数传递方式实现软件复用的一些技术。
2 《英文導游》网络考试系统需求分析
《英文导游》网络考试系统包括两个大的部分,中文笔试专项考试系统和英语口试专项题库系统。
2.1 中文笔试专项考试系统
中文笔试专项题库系统包括中文笔试单项训练和考试,单项训练包括:
(1)导游业务模拟测试
模拟训练总分100分,包含单选题40个,每题1.5分;多选题10个,每题3分,多选或少选不得分;判断题10题,每题1分。
(2)广东导游基础模拟测试
模拟测试总分100分,包含单选题30个,每题1分;多选题20个,每题3分,多选或少选不得分;判断题10题,每题1分。
(3)全国导游基础知识模拟测试
模拟测试总分100分,包含单选题20个,每题2分;多选题20个,每题3分,多选或少选不得分;判断题10题,每题1分。
(4)政策法规模拟测试
模拟测试总分100分,包含单选题30个,每题2分;多选题10个,每题3分,多选或少选不得分;判断题10题,每题1分。
中文考试系统是上述四个部分的组合:
(1)导游业务+政策法规试题
考试系统总分400分,包含单选题40个,每题4分;多选题20个,每题6分,多选或少选不得分;判断题40题,每题3分。
(2)广东导游基础+全国导游试题
考试系统总分300分,包含单选题40个,每题3分;多选题20个,每题5分,多选或少选不得分;判断题40题,每题2分。
2.2 英语口试题库专项题库系统
(1)英语口语模拟训练
模拟测试总分100分,包含导游词1篇,2个英译汉,2个汉译英,2个特殊问题应变题和2个导游规范服务知识服务题。
(2)英语口试考试系统
英语口试考试系统题目要求与英语口语模拟训练相同。
上述系统其实分为两个部分,训练和考试,其结构如图1所示。分析上述中文笔试部分可以看出,不管是考试还是训练部分,题型都是三个:单选题、多选题和判断题,只是题目数目和分值不相同,既然他们有共同的地方,考试系统就可以利用软件复用技术。图2为考试系统内容示意图。
3 实现的几个关键技术
在传统的试题开发中,通常要根据不同的题型和题库开发出不同的随机出题程序和自动阅卷程序,如果有几十套不同类型的试题,则需要开发几十种不同的程序,这种设计思路势必导致大量的浪费。针对这述问题,我们可以考虑使用ASP的地址栏参数和利用数组来传递参数实现软件复用。其实现的基本思路是,通过地址栏传递每种题型的题目数和对应的分值,利用Session对象和数组来传递答案和进行自动阅卷。
3.1 数据库的规划与设计
首先创建一个名为KSXT.mdb的Access数据库,用于保存考试过程中的试题及考试数据。如果使用的SQL Server2000作为后台数据库,可以使用如下语句来创建数据库。
/*创建数据库*/
CREATE DATABASE [KSXT]
GO
根据系统的需要,在数据库需要定义中文笔试题库、英文考试题库,中文笔试题库考试数据、英文口试考试数据等工作表,其中中文笔试题库表主要包括四个字段:题目(备注型)、答案(文本)、题型(文本)、知识点(文本)、难度系统。英文考试题库与中文笔试题库表的结构基本相同。
3.2 利用Request对象接收网址后面传递的参数,以实现不同的功能
在ASP(ASP.NET)的程序设计中,通过使用 HTTP GET 方法或手工将表格的值添加到 URL,表格的值可以被附加在请求的 URL 之后。为了使程序具有通用性,在设计时,可以利用ASP在网址中传递参数的特性,实现不同功能[1],使用的基本格式是:
Http://<网址>/XXX.ASPX?<参数变量>=<参数值>
如果有多个参数,可用“&”连接。这种参数可以通过Request.QueryString数据集合来接收,QueryString 集合获取作为跟在请求的 URL 的问号后面的文本传递给 Web 服务器的值。
格式:Request.QueryString("参数变量")
例如:upfile.asp?OP=1,将参数OP赋值为1,要获取OP的值可以Request.QueryString对象,如。
GetOP=Request.QueryString(“OP”)。这样就将参数OP的值传递到ASP文件的变量GetOP中了。
3.3 设计能够实现随机出不同题型的通用过程
考试系统的核心程序是实现随机出卷和自动问卷的实现,要实现自动随机出题,必须先要知道题库中总共的题目数,需要出题的题目数,试题难度系数等因素,然后确定题目对应记录的起始指针,随机抽取指定的试题,并由此来实现随机题。其实现的基本思路是通过过程实现出题,通过过程中的参数实现不同的题型、分数、题量等控制。
Sub SCST(TMS,TX,SSTH,ESTH,TKH)
(1)连接Web数据库。
(2)打开试题对应的数据表。
(3)获取数据库中相应的试题总数目。
(4)确定随机出题算法。
(5)获取参数中的题型、题量、分数等参数。
(6)根据不同的题型、题量显示随机抽取的题目。
End Sub
其中参数TMS是表示要抽取的试题数,TX是表示要抽取的试题题型,SSTH是试题显示的开始序列号,ESTH是试题显示最后序列号,TKH表示的题库序列号,随机出题的核心代码如下:
do while Not rs.eof
KSTMXX=KSTMXX&rs("ID")&","
KSTMTW=KSTMTW&RS("答案")&","
TS=TS+1
response.Write"第"&Ts&"题:"
DispChr=trim(Server.HTMLEncode(trim(rs("题目"))))
DispChr=replace(dispchr,chr(13),"<br>")
DispChr=replace(dispchr,chr(32)," ")
response.Write dispchr
dw=Server.HTMLEncode(rs.Fields("答案").VALUE)%>
<b><font color="#FF0000"><BR>
<% Select case TX
case "单选题"
动态生成A、B、C、D四个单选框。
<% case "多选题"
动态生成A、B、C、D、E、F六个复选框。
<% case "判断题"
动态生成对、错两个单选框。
……
<%End Select
na="TW["&TS&"]"%>
</font></b><hrcolor="#E0EEFE" />
<% IFTs>=ESTH then exit do
rs.Move bb
loop
在使用時只需要利用上述过程,首先接收地址栏传递的参数,然后再将接收的几个关键参数传递到出题过程即可。例如:先利用Request对象接收地址栏中参数:
SS=CSng(Request.QueryString("SS")) ’单选题目数量
SSF=CSng(Request.QueryString("SSF")) ’单选题目每题分数
MS=CSng(Request.QueryString("MS")) ’多选题目数量
MSF=CSng(Request.QueryString("MSF")) ’多选题目每题分数
YN=CSng(Request.QueryString("YN")) ’判断题题目数
YNF=CSng(Request.QueryString("YNF")) ’判断题题目每题分数
TK=CSng(Request.QueryString("TK"))’题库号
然后,在需要显示相应试题内容的位置调用过程,并将相应参数传递到不同的过程中,以实现不同题库,不同题型的显示,将答案保存于数据中,再将数组保存于SESSION对象中,通过SESSION对象可以将答案传递于任何页面,便于以后的阅卷。下面的代码将试题通过表格的单元格显示。
<tr><td height="25" align="left"><p class="STYLE2"><strong>一、单项选择题(共<%=SS%>个题,每题<%=SSF%>分共<%=SS*SSF%>分)</strong></p></td>
</tr><tr>
<td align="left"><%call SCST(SS,"单选题",1,SS,TKH)%>
<%DXTM=KSTMXX
DXTW=KSTMTW
Session("DXTM")=Split(DXTM,",")
Session("DXTW")=Split(DXTW,",") %>
</td></tr>
其效果如图3所示。
3.4 试题自动阅卷的实现
试题自动阅卷的基本思路是,自动读取随机生成试卷页面的用户填写的答案,将用户答案对应试题号,与数据库中对应试题答案进行比较,如果正确,则自动累计计分,并通过表格显示卷卷结果,如图4所示。有关自动阅卷程序的详细实现,有关资料如文献[2]、文献[3]介绍比较多,这里不再赘述。
图4 自动阅卷结果
4 结论
通过参数传递的思路来实现英语网络课程的自动测试系统,即使试题量、试题内容、存放的数据库、试题类型增减等因素发生变化时,不需要修改出题及阅卷程序,只需要修改连接到出题程序的地址栏参数就可以实现不同试题的出题和自动阅卷,决了重复开发和开发工作量,代码复用率高,提高编程效率,现在已经在很多学科的考试中得到了较好的应用。
参考文献:
[1] 刘友生,陈一平.用ASP实现Web数据库的智能查询[J].计算机应用与软件,2005(02):39-40.
[2] 刘友生,赵辉,王丽莉.局域网内仿真在线考试系统的设计与实现[J].电脑学习,2004(02).
[3] 曹光忠,刘友生.软件复用在网络数据库编程题自动化考试中的应用[J].计算机工程与设计,2006(21).
注:“本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。”
关键词:网络课程;自动化考试;参数传递;软件复用
中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)20-30308-04
Using Parameter Realize the Software Repeatment in WEB Roboticized Exam System
LI Cui-ping
(Guangdong Songshan Polytechnic College,Songshan 512126,China)
Abstract:In order to solve the problem of software development repeatment,this article combines the characteristic in the network course of roboticized exam ,using ASP as development tools,and using the method of parameter passes in address column,made the software repeatment come true.
Key words:network course;roboticized exam;parameter pass;software repeatment
1 引言
考试作为检验学生学习效果的一种重要手段,在很多学校和部门都会利用它来作为检测和评价教学效果的手段。随
着网络的普及和使用,网络课程的开发和应用得到很多高校的重视,使得很多高等学校把网络课程作为教学建设的重要内容之一,网络考试作为考试的一部分,在网络课程教学环节中起到举足轻重的作用。但由于各部门,各单位对考试系统的要求不同,通常需要根据不同的需要,开发适应不同要求的网络考试系统,这不但给软件开发增加了大量的工作量,而且大量的重复开发势必浪费资源、人力和物力,那么能否有一种简便,快速又可以重复利用的开发方法呢?当然有,下面我们以《英文导游》这门课程的网络开发为例,着重分析以参数传递方式实现软件复用的一些技术。
2 《英文導游》网络考试系统需求分析
《英文导游》网络考试系统包括两个大的部分,中文笔试专项考试系统和英语口试专项题库系统。
2.1 中文笔试专项考试系统
中文笔试专项题库系统包括中文笔试单项训练和考试,单项训练包括:
(1)导游业务模拟测试
模拟训练总分100分,包含单选题40个,每题1.5分;多选题10个,每题3分,多选或少选不得分;判断题10题,每题1分。
(2)广东导游基础模拟测试
模拟测试总分100分,包含单选题30个,每题1分;多选题20个,每题3分,多选或少选不得分;判断题10题,每题1分。
(3)全国导游基础知识模拟测试
模拟测试总分100分,包含单选题20个,每题2分;多选题20个,每题3分,多选或少选不得分;判断题10题,每题1分。
(4)政策法规模拟测试
模拟测试总分100分,包含单选题30个,每题2分;多选题10个,每题3分,多选或少选不得分;判断题10题,每题1分。
中文考试系统是上述四个部分的组合:
(1)导游业务+政策法规试题
考试系统总分400分,包含单选题40个,每题4分;多选题20个,每题6分,多选或少选不得分;判断题40题,每题3分。
(2)广东导游基础+全国导游试题
考试系统总分300分,包含单选题40个,每题3分;多选题20个,每题5分,多选或少选不得分;判断题40题,每题2分。
2.2 英语口试题库专项题库系统
(1)英语口语模拟训练
模拟测试总分100分,包含导游词1篇,2个英译汉,2个汉译英,2个特殊问题应变题和2个导游规范服务知识服务题。
(2)英语口试考试系统
英语口试考试系统题目要求与英语口语模拟训练相同。
上述系统其实分为两个部分,训练和考试,其结构如图1所示。分析上述中文笔试部分可以看出,不管是考试还是训练部分,题型都是三个:单选题、多选题和判断题,只是题目数目和分值不相同,既然他们有共同的地方,考试系统就可以利用软件复用技术。图2为考试系统内容示意图。
3 实现的几个关键技术
在传统的试题开发中,通常要根据不同的题型和题库开发出不同的随机出题程序和自动阅卷程序,如果有几十套不同类型的试题,则需要开发几十种不同的程序,这种设计思路势必导致大量的浪费。针对这述问题,我们可以考虑使用ASP的地址栏参数和利用数组来传递参数实现软件复用。其实现的基本思路是,通过地址栏传递每种题型的题目数和对应的分值,利用Session对象和数组来传递答案和进行自动阅卷。
3.1 数据库的规划与设计
首先创建一个名为KSXT.mdb的Access数据库,用于保存考试过程中的试题及考试数据。如果使用的SQL Server2000作为后台数据库,可以使用如下语句来创建数据库。
/*创建数据库*/
CREATE DATABASE [KSXT]
GO
根据系统的需要,在数据库需要定义中文笔试题库、英文考试题库,中文笔试题库考试数据、英文口试考试数据等工作表,其中中文笔试题库表主要包括四个字段:题目(备注型)、答案(文本)、题型(文本)、知识点(文本)、难度系统。英文考试题库与中文笔试题库表的结构基本相同。
3.2 利用Request对象接收网址后面传递的参数,以实现不同的功能
在ASP(ASP.NET)的程序设计中,通过使用 HTTP GET 方法或手工将表格的值添加到 URL,表格的值可以被附加在请求的 URL 之后。为了使程序具有通用性,在设计时,可以利用ASP在网址中传递参数的特性,实现不同功能[1],使用的基本格式是:
Http://<网址>/XXX.ASPX?<参数变量>=<参数值>
如果有多个参数,可用“&”连接。这种参数可以通过Request.QueryString数据集合来接收,QueryString 集合获取作为跟在请求的 URL 的问号后面的文本传递给 Web 服务器的值。
格式:Request.QueryString("参数变量")
例如:upfile.asp?OP=1,将参数OP赋值为1,要获取OP的值可以Request.QueryString对象,如。
GetOP=Request.QueryString(“OP”)。这样就将参数OP的值传递到ASP文件的变量GetOP中了。
3.3 设计能够实现随机出不同题型的通用过程
考试系统的核心程序是实现随机出卷和自动问卷的实现,要实现自动随机出题,必须先要知道题库中总共的题目数,需要出题的题目数,试题难度系数等因素,然后确定题目对应记录的起始指针,随机抽取指定的试题,并由此来实现随机题。其实现的基本思路是通过过程实现出题,通过过程中的参数实现不同的题型、分数、题量等控制。
Sub SCST(TMS,TX,SSTH,ESTH,TKH)
(1)连接Web数据库。
(2)打开试题对应的数据表。
(3)获取数据库中相应的试题总数目。
(4)确定随机出题算法。
(5)获取参数中的题型、题量、分数等参数。
(6)根据不同的题型、题量显示随机抽取的题目。
End Sub
其中参数TMS是表示要抽取的试题数,TX是表示要抽取的试题题型,SSTH是试题显示的开始序列号,ESTH是试题显示最后序列号,TKH表示的题库序列号,随机出题的核心代码如下:
do while Not rs.eof
KSTMXX=KSTMXX&rs("ID")&","
KSTMTW=KSTMTW&RS("答案")&","
TS=TS+1
response.Write"第"&Ts&"题:"
DispChr=trim(Server.HTMLEncode(trim(rs("题目"))))
DispChr=replace(dispchr,chr(13),"<br>")
DispChr=replace(dispchr,chr(32)," ")
response.Write dispchr
dw=Server.HTMLEncode(rs.Fields("答案").VALUE)%>
<b><font color="#FF0000"><BR>
<% Select case TX
case "单选题"
动态生成A、B、C、D四个单选框。
<% case "多选题"
动态生成A、B、C、D、E、F六个复选框。
<% case "判断题"
动态生成对、错两个单选框。
……
<%End Select
na="TW["&TS&"]"%>
</font></b><hrcolor="#E0EEFE" />
<% IFTs>=ESTH then exit do
rs.Move bb
loop
在使用時只需要利用上述过程,首先接收地址栏传递的参数,然后再将接收的几个关键参数传递到出题过程即可。例如:先利用Request对象接收地址栏中参数:
SS=CSng(Request.QueryString("SS")) ’单选题目数量
SSF=CSng(Request.QueryString("SSF")) ’单选题目每题分数
MS=CSng(Request.QueryString("MS")) ’多选题目数量
MSF=CSng(Request.QueryString("MSF")) ’多选题目每题分数
YN=CSng(Request.QueryString("YN")) ’判断题题目数
YNF=CSng(Request.QueryString("YNF")) ’判断题题目每题分数
TK=CSng(Request.QueryString("TK"))’题库号
然后,在需要显示相应试题内容的位置调用过程,并将相应参数传递到不同的过程中,以实现不同题库,不同题型的显示,将答案保存于数据中,再将数组保存于SESSION对象中,通过SESSION对象可以将答案传递于任何页面,便于以后的阅卷。下面的代码将试题通过表格的单元格显示。
<tr><td height="25" align="left"><p class="STYLE2"><strong>一、单项选择题(共<%=SS%>个题,每题<%=SSF%>分共<%=SS*SSF%>分)</strong></p></td>
</tr><tr>
<td align="left"><%call SCST(SS,"单选题",1,SS,TKH)%>
<%DXTM=KSTMXX
DXTW=KSTMTW
Session("DXTM")=Split(DXTM,",")
Session("DXTW")=Split(DXTW,",") %>
</td></tr>
其效果如图3所示。
3.4 试题自动阅卷的实现
试题自动阅卷的基本思路是,自动读取随机生成试卷页面的用户填写的答案,将用户答案对应试题号,与数据库中对应试题答案进行比较,如果正确,则自动累计计分,并通过表格显示卷卷结果,如图4所示。有关自动阅卷程序的详细实现,有关资料如文献[2]、文献[3]介绍比较多,这里不再赘述。
图4 自动阅卷结果
4 结论
通过参数传递的思路来实现英语网络课程的自动测试系统,即使试题量、试题内容、存放的数据库、试题类型增减等因素发生变化时,不需要修改出题及阅卷程序,只需要修改连接到出题程序的地址栏参数就可以实现不同试题的出题和自动阅卷,决了重复开发和开发工作量,代码复用率高,提高编程效率,现在已经在很多学科的考试中得到了较好的应用。
参考文献:
[1] 刘友生,陈一平.用ASP实现Web数据库的智能查询[J].计算机应用与软件,2005(02):39-40.
[2] 刘友生,赵辉,王丽莉.局域网内仿真在线考试系统的设计与实现[J].电脑学习,2004(02).
[3] 曹光忠,刘友生.软件复用在网络数据库编程题自动化考试中的应用[J].计算机工程与设计,2006(21).
注:“本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。”