毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 论文 >> 正文

ASP+Access网络在线考试系统 第10页

更新时间:2007-10-15:  来源:毕业论文

sql="select * from question where haveselect=1 "

rs.open sql,conn,3,2

rs.movefirst

do while  not rs.eof 

rs("haveselect")=0

rs.update

rs.movenext

loop

上面一段程序是在选完题之后将所有已经设成1haveselect改写成0,这样自己下次或别人就仍可以选择所有的试题。

最后一段程序是用来计时的,考试时间到了之后自动给出提示。

6.<result.asp>

考生提交答卷以后,该文件就把考生的答案同question表中的正确答案进行比较,最后得出考生的得分。

首先是变量赋值,取得session对象的一些变量值,以方便使用。endtime=now()是去的考试结束时间。

selectstr1=request.form("hidQuestID1")

selectstr2=request.form("hidQuestID2")是获取存放被选单选和多选试题的id号的两个字符串。

len1=len(selectstr1)

len2=len(selectstr2)是取得两个字符串的长度。

str1=left(selectstr1,len1-1)

str2=left(selectstr2,len2-1)是把两个字符串的结尾(也就是逗号)取掉。

dim id1,id2

id1=split(str1,",")

id2=split(str2,",")是用split()函数将存有id号的字符串拆开并存放到数组当中,以便调用。

以上就实现了所有被选中的试题的id号的传递。

下面这段程序就实现了单选试题的答案于正确答案的比较,并得出单选题应得分数。

for i=1 to singlenumber

result=request.form("no"&id1(i-1))

if  not isempty(result) then

sql="select * from question where id="& clng(id1(i-1))

set rs=server.createobject("adodb.recordset")

rs.open sql,conn,3,2    

if result=rs("answer") then

score=score+cint(singleper)

end if

rs.close

set rs=nothing

else

end if

next

多选题与单选题程序基本相同,这里就不赘述了。

接着就是将考试结果纪录存入score表中,并对考生显示出考试成绩。

上面是在线考试系统考试部分的程序及其解释,该部分是系统最主要的部分,所以解释得比较详细。管理部分很多文件功能都很相似,这里就只挑功能最全又比较重要的文件作以解释。(这些文件都放在admin文件夹下)

7.<primary.asp>

该文件实现的功能是管理员选择进行管理的项目,也就是管理主界面。

8.<mgstudent.asp>

该文件实现对用户进行管理(删除或添加)的功能。

9.<mgadmin.asp>

该文件实现对管理员进行管理(删除或添加)的功能。

10.<mgsubject.asp>

该文件的功能是实现对考试科目及相关参数(如考试时间、单选及多选题量)进行管理。

11.<mgscore.asp>

该文件的功能是对考试记录进行查询或删除。

12.<mgquestion.asp>

    <mgquestion.asp><addquestion.asp>两个文件和起来实现对试题库进行删除修改和添加的功能。

subjectname=trim(request("subjectname"))是将上一个界面传来的科目名称赋值给subjectname变量。

set rs=server.createobject("adodb.recordset")

rs.open "select * from question where subjectname='" & cstr(trim(request("subjectname")))&"' order by id desc ",conn,1,1

上面这段代码是从question表中将所有其科目名与所选科目相同的问题都选出来。

<a href='mgquestion.asp?type=<%=trim(rs("type"))%>

&subjectname=<%=trim(rs("subjectname"))%>&action=edit&id=<%=trim(rs("id"))%>&page=<%=request("page")%>'>编辑</a>&nbsp<a href='javascript:SureDel(<%=rs("id")%>)'>删除</a>

上面这段代码的的作用是将删除的参数传给文件自身或将编辑的参数传给SureDel(id,subjectname)函数。

如果实执行删除操作就转到SureDel(id,subjectname),提示是否真的要删除,如果选择确定就执行如下代码:

sql="delete from question where id=" &request("id")

conn.execute sql

执行删除该问题的操作,将question表中的相应记录删除。否则,如果选择取消就不执行删除操作。

如果执行编辑同样将参数传给文件自身,先执行下面代码将isedit的值设为真:

if request("action")="edit" then

      isedit=true

end if

文件最下面是编辑试题或添加试题部分,表单提交给addquestion进行处理。

13.<addquestion.asp>

首先将表单传过来的各个参数值赋给不同的变量,以便于使用。然后判断question,subjectname,answerleixing四个变量是否为空,如果为空显示错误信息。不为空就进行判断,看是修改问题还是添加问题,分别进行相应处理(修改question表中的记录或向其中添加记录),然后返回到mgquestion.asp页面。

4.3调试过程中遇到的主要问题和解决办法

在系统调试的过程中主要遇到三个比较困难的问题:

第一个就是如何实现在随机选题的同时保证不重复,本设计最后使用了在question表中设置了一个haveselect字段来标志选过的纪录的办法来解决。

第二个就是如何将test.asp中所有试题的id号传到result.asp页中。因为试题数是变值,用一般的使用变量方式实行不通的。本设计采用了将id号以逗号分隔存在字符串变量中,然后到result.asp页面用split()函数拆开存放到数组中的办法进行解决。

第三个就是问题在编辑之后就无法再选出来了,最后发现是因为编辑之后科目名的前面会有空格,所以会无法选出。解决的办法是使用trim()函数将空格去掉。

4.4 系统测试及实现后主要界面

本系统经先进行各模块测试,经过修改和调整通过以后,进行总体测试。测试结果各项功能均已经或基本达到设计要求。

下面就将各主要文件实现的界面一一列出:

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]  ... 下一页  >> 

ASP+Access网络在线考试系统 第10页下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©751com.cn 辣文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。