|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
专业性的服务。有的ASP商提供垂直型的应用服务,针对某一特定行业提供应用服务。网上测验跟着互连网手艺的开展网上教授教养将成为人们承受再教导和毕生教导的次要情势。在网上黉舍中,人们能够不受工夫和空间的限定,随时随地选学任何中央的任何课程。网上黉舍的开展对网上测验的开展提出了急切的请求。这里是我用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"))
‘反省用户是不是输出信息
ifname""andpasswd""then
Setconn=Server.CreateObject
("ADODB.Connection")
conn.Open"driver={MicrosoftAccess
Driver(*.mdb)};dbq="&
Server.MapPath("exercise.mdb")
setrs=server.createobject("adodb.recordset")
sql="select*fromuserwhereuser="&name&
"andpasswd="&passwd&""
‘反省用户的正当性
Setrs=conn.Execute(sql)
ifnot(rs.eof)then
反省用户是不是已列入过测验,
如果则举行成就查询
ifrs(“score”)0then
response.writers(“user”)&
“的测验成就是”&rs(“score”)
else
session("pass")=1
session(“user”)=name
response.redirect“test.asp”
endif
else
Response.Write"对不起,
用户或口令不准确!!!"
endif
else
endif
%>
<HTML>
<HEAD>
<METANAME="GENERATOR"
Content="MicrosoftVisualStudio6.0">
<TITLE>用户口令反省</TITLE>
</HEAD>
<BODY>
<FORMaction="login.asp"id=FORM1
method=postname=FORM1>
<Ptitle=""></P>
<Ptitle=""></P>
<Ptitle=""align=center>用户:
<INPUTid=text1name=name
style="HEIGHT:22px;WIDTH:103px"></P>
<Ptitle=""align=center>口令:
<INPUTid=password1name=passwd
style="HEIGHT:23px;WIDTH:101px"
type=password></P>
<Ptitle=""align=center>
<INPUTid=submit1name=submit1
type=submitvalue="进进"style="FONT-SIZE:
medium;FONT-STYLE:normal;
FONT-VARIANT:normal;FONT-WEIGHT:
bold"title=""></P>
<Ptitle=""align=center>
</P>
</FORM>
</BODY>
</HTML>
‘test.asp源程序,从题库中提取试题供解答
<%@Language=VBScript%>
<%
ifsession(“pass”)1then
response.redirect“login.asp”
else
endif
Setconn=Server.CreateObject("ADODB.Connection")
conn.Open"driver={MicrosoftAccessDriver
(*.mdb)};dbq="&
Server.MapPath("exercise.mdb")
‘提取试题
sql="select*fromtest"
Setrs=conn.Execute(sql)
%>
‘计时函数
<SCRIPTLANGUAGE="JavaScript">
varisn1=null;
varisn2=false;
today=newDate();
functionstopit(){
if(isn2){
clearTimeout(isn1);
}
isn2=false;
}
functionstartit(){
stopit();
isnclock();
}
functionisnclock(){
varnow=newDate();
varhrs=now.getHours();
varmin=now.getMinutes();
varsec=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>
<METANAME="GENERATOR"
Content="MicrosoftVisualStudio6.0">
</HEAD>
<BODYBGCOLOR="FFFFFF">
<center>
‘挪用计时函数显现工夫
<TABLEBORDER=2>
<TR>
<TD>Time</TD><TD>Hour</TD><TD>Min
</TD><TD>Sec</TD><TD></TD>
</TR>
<TR>
<TD></TD>
<TDVALIGN=TOP><FORMNAME="clckh">
<INPUTTYPE="text"NAME="disp"SIZE=2VALUE="">
</FORM></TD>
<TDVALIGN=TOP><FORMNAME="clckm">
<INPUTTYPE="text"NAME="disp"SIZE=2VALUE="">
</FORM></TD>
<TDVALIGN=TOP><FORMNAME="clcks">
<INPUTTYPE="text"NAME="disp"SIZE=2VALUE="">
</FORM></TD>
<TDVALIGN=TOP><FORMNAME="clck"
>
<INPUTTYPE="text"NAME="disp"SIZE=4VALUE="">
</FORM></TD></TR>
</center>
‘显现试题供解答
<FORMaction="result.asp"id=FORM1
method=postname=FORM1>
<P></P>
<P>
<%
i=1
rs.movefirst
dowhilenotrs.eof%>
<P><%=rs("question")%></P>
<TABLEalign=centerborder=1cellPadding=1
cellSpacing=1
width="80%">
<TR>
<TDstyle="WIDTH:50%"width="50%"
<INPUTname=ans<%=i%>type=radiovalue="A">
<%=rs("a")%></TD>
<TD><INPUTname=ans<%=i%>
type=radiovalue="B">
<%=rs("b")%></TD></TR>
<TR>
<TD><INPUTname=ans<%=i%>
type=radiovalue="C">
<%=rs("c")%></TD>
<TD><INPUTname=ans<%=i%>
type=radiovalue="D">
<%=rs("d")%></TD>
</TR>
</TABLE>
<%
i=i+1
rs.movenext
loop
%>
</P>
<P></P>
<Palign=center><INPUTid=submit1name=submit1
type=submit
value=Submit><INPUTid=reset1name=reset1
type=resetvalue=Reset></P></FORM>
</BODY>
</HTML>
以下为援用的内容:
‘result.asp源程序,对用户答卷评分,
并将分数纪录进库
<%@Language=VBScript%>
<HTML>
<HEAD>
<METANAME="GENERATOR"Content="Microsoft
VisualStudio6.0">
</HEAD>
<BODY>
<P></P>
<%
name=session(“user”)
dimscore
Setconn=Server.CreateObject("ADODB.Connection")
conn.Open"driver=
{MicrosoftAccessDriver(*.mdb)};dbq="
&Server.MapPath("exercise.mdb")
sql="selectansfromtest"
Setrs=conn.Execute(sql)
ycorrect=0
rsCount=0
‘给出准确谜底并评分
Response.Write"准确谜底:"
Dowhilenotrs.eof
Response.Writers("ans")
rsCount=rsCount+1
ifRequest.Form(rsCount)=rs("ans")then
ycorrect=ycorrect+1
endif
rs.movenext
loop
Response.Write"<br>你的谜底:"
score=int(ycorrect/rscount*100)
fori=1toRequest.Form.Count-1
Response.WriteRequest.Form(i)
next
Response.Write"<br>"
Response.Write"你的成就:"&score
ifscore<60thenResponse.Write"你不合格!"&"<br>"
elseifscore>=60Response.Write"合格"&"<br>"
elseResponse.Write"优异!"
‘将成就挂号进库
strSql=”insertintouser(result)values(”&score&”)
whereuser=’”&name&”’”
conn.execute(strSql)
%>
</BODY>
</HTML>
ASP一般认为只能运行在IIS上,正如前面所提到的,这并不是十分正确,事实上,ASP也能运行在Apache上。ApacheASP可在任意Apache服务器上运行有限的ASP功能,所需做的,只需打开mod_perl。 |
|