所属类别:Asp
文章作者:未知
特别推荐:免费发布信息 承包关键词~~抢爆了!HOT!
华中理工大学管理学院胡新明
随着互连网技术的发展网上教学将成为人们接受再教育和终身教育的主要形式。在网上学校中,人们可以不受时间和空间的限制,随时随地选学任何地方的任何课程。网上学校的发展对网上考试的发展提出了迫切的要求。这里是我用Asp和Access数据库实现的一个网上考试系统。当用户凭用户名和口令登录时,系统首先检查该用户是否已参加过考试,若是则进行成绩查询,若否则从题库中提取考题供用户解答。等用户提交答卷后,系统进行评分并将成绩登记入库。一. 数据库设计
首先建立一数据库exercise.mdb,其中包括两个表:user和test,user表中有包括三个字段:字段名称:user;字段类型:文本;字段大小:20。存储用户名字段名称:passwd;字段类型:文本;字段大小:20。存储用户密码字段名称:score;字段类型:数字;字段大小:整型。存储用户成绩test表中有五个字段:字段名称:question;字段类型:文本;字段大小:255。存储考试题目字段名称:a;字段类型:文本;字段大小:100。存储选项A的答案字段名称:b;字段类型:文本;字段大小:100。存储选项B的答案字段名称:c;字段类型:文本;字段大小:100。存储选项C的答案字段名称:d;字段类型:文本;字段大小:100。存储选项D的答案字段名称:ans;字段类型:文本;字段大小:2。存储正确答案二.程序原代码
下面是该系统中较核心的三段原程序,希望对开发类似系统的读者取到抛砖引玉的作用,读者也可对其进行改进以适应自己的系统。‘Login.asp源程序,检验用户是否合法< %@ Language=VBScript % >< %name=trim(request("name"))passwd=trim(request("passwd"))‘检查用户是否输入信息if name< >"" and passwd< >"" thenSet conn = Server.CreateObject("ADODB.Connection")conn.Open "driver={Microsoft AccessDriver (*.mdb)};dbq=" &Server.MapPath("exercise.mdb")set rs= server.createobject("adodb.recordset")sql= "select * from user where user='" &name&"' and passwd='" & passwd & "'"‘检查用户的合法性Set rs= conn.Execute(sql)if not(rs.eof) then检查用户是否已参加过考试,若是则进行成绩查询if rs(“score”)< >0 thenresponse.write rs(“user”)&“的考试成绩是”&rs(“score”)elsesession("pass")=1session(“user”)=nameresponse.redirect “test.asp”end ifelseResponse.Write "对不起,用户或口令不正确!!!"end ifelseend if% >< HTML >< HEAD >< META NAME="GENERATOR"Content="Microsoft Visual Studio 6.0" >< TITLE >用户口令检查< /TITLE >< /HEAD >< BODY >< FORM action="login.asp" id=FORM1method=post name=FORM1 >< P title="" > < /P >< P title="" > < /P >< P title="" align=center >用户:< INPUT id=text1 name=namestyle="HEIGHT: 22px; WIDTH: 103px" >< /P >< P title="" align=center >口令:< INPUT id=password1 name=passwdstyle="HEIGHT: 23px; WIDTH: 101px"type=password >< /P >< P title="" align=center >< INPUT id=submit1 name=submit1type=submit value=" 进入 " style="FONT-SIZE:medium; FONT-STYLE: normal;FONT-VARIANT: normal; FONT-WEIGHT:bold" title="" >< /P >< P title="" align=center >< /P >< /FORM >< /BODY >< /HTML >‘test.asp源程序,从题库中提取试题供解答< %@ Language=VBScript % >< %if session(“pass”)< >1 thenresponse.redirect “login.asp”elseend ifSet conn = Server.CreateObject("ADODB.Connection")conn.Open "driver={Microsoft Access Driver(*.mdb)};dbq=" &Server.MapPath("exercise.mdb")‘提取试题sql="select * from test"Set rs = conn.Execute( sql )% >‘计时函数< SCRIPT LANGUAGE="JavaScript" >var isn1=null;var isn2=false;today=new Date();function stopit(){if(isn2){
clearTimeout(isn1);
}isn2 = false;}function startit(){stopit();isnclock();}function isnclock(){var now=new Date();var hrs=now.getHours();var min=now.getMinutes();var sec=now.getSeconds();document.clckh.disp.value=""+((hrs >12) ?hrs-12 : hrs);document.clckm.disp.value=((min< 10) ? "0" : "")+min;document.clcks.disp.value=((sec< 10) ? "0" : "")+sec;document.clck.disp.value=(hrs >=12) ? "p.m." : "a.m.";isn1=setTimeout("isnclock()",1000);isn2=true;}< /SCRIPT >< HTML >< HEAD >< META NAME="GENERATOR"Content="Microsoft Visual Studio 6.0" >< /HEAD >< BODY onLoad="startit()" BGCOLOR="FFFFFF" >< center >‘调用计时函数显示时间< TABLE BORDER=2 >< TR >< TD >Time< /TD >< TD >Hour< /TD >< TD >Min< /TD >< TD >Sec< /TD >< TD >< /TD >< /TR >< TR >< TD >< /TD >< TD VALIGN=TOP >< FORM NAME="clckh" onSubmit="0" >< INPUT TYPE="text" NAME="disp" SIZE=2 VALUE ="" >< /FORM >< /TD >< TD VALIGN=TOP >< FORM NAME="clckm" onSubmit="0" >< INPUT TYPE="text" NAME="disp" SIZE=2 VALUE ="" >< /FORM >< /TD >< TD VALIGN=TOP >< FORM NAME="clcks" onSubmit="0" >< INPUT TYPE="text" NAME="disp" SIZE=2 VALUE ="" >< /FORM >< /TD >< TD VALIGN=TOP >< FORM NAME="clck"onSubmit="0" >< INPUT TYPE="text" NAME="disp" SIZE=4 VALUE ="" >< /FORM >< /TD >< /TR >< /center >‘显示试题供解答< FORM action="result.asp" id=FORM1method=post name=FORM1 >< P > < /P >< P >
< %
i=1
rs.movefirst
do while not rs.eof% >
< P > < %=rs("question")% >< /P >< TABLE align=center border=1 cellPadding=1cellSpacing=1width="80%" >
< TR >
< TD style="WIDTH: 50%" width="50%"< INPUT name=ans< %=i% > type=radio value="A" >< %=rs("a")% >< /TD >
< TD >< INPUT name=ans< %=i% >type=radio value="B" >
< %=rs("b")% >< /TD >< /TR >
< TR >
< TD >< INPUT name=ans< %=i% >type=radio value="C" >
< %=rs("c")% >< /TD >
< TD >< INPUT name=ans< %=i% >type=radio value="D" >
< %=rs("d")% >< /TD >
< /TR >< /TABLE >< %i=i+1rs.movenextloop% >< /P >< P > < /P >< P align=center >< INPUT id=submit1 name=submit1type=submitvalue=Submit >< INPUT id=reset1 name=reset1type=reset value=Reset >< /P >< /FORM >< /BODY >< /HTML >‘result.asp源程序,对用户答卷评分,并将分数记录入库< %@ Language=VBScript % >< HTML >< HEAD >< META NAME="GENERATOR" Content="MicrosoftVisual Studio 6.0" >< /HEAD >< BODY >< P > < /P >< %name=session(“user”)dim scoreSet conn = Server.CreateObject("ADODB.Connection")conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq="& Server.MapPath("exercise.mdb")sql="select ans from test"Set rs = conn.Execute( sql )ycorrect=0rsCount=0‘给出正确答案并评分Response.Write "正确答案:"Do while not rs.eofResponse.Write rs("ans")rsCount=rsCount+1if Request.Form(rsCount)=rs("ans") thenycorrect=ycorrect+1end ifrs.movenextloopResponse.Write "< br >你的答案:"score=int(ycorrect/rscount*100)for i=1 to Request.Form.Count-1Response.Write Request.Form(i)nextResponse.Write "< br >"Response.Write "你的成绩:"&scoreif score< 60 then Response.Write " 你不及格!"&"< br >"else if score >=60 Response.Write " 及格"&"< br >"else Response.Write " 优秀!"‘将成绩登记入库strSql=”insert into user (result) values (”&score&”)where user=’”&name&”’”conn.execute(strSql)% >< /BODY >< /HTML > 关闭本页
相关信息· 教你5.1声道环绕声正确调校法
· 对网络安全技术及方案对策的分析
· Linux下的硬件驱动――USB设备(上)(驱动配置部分)
· 持续集成与测试自动化
98210
39570
