谁可相欹 发表于 2015-1-16 22:45:13

ASP网页编程之asp网上测验体系代码剖析

专业性的服务。有的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。

冷月葬花魂 发表于 2015-1-18 19:52:18

学习ASP其实应该上升到如何学习程序设计这种境界,其实学习程序设计又是接受一种编程思想。比如ASP如何学习,你也许在以前的学习中碰到过。以下我仔细给你说几点:

若天明 发表于 2015-1-23 07:08:37

还有如何才能在最短的时间内学完?我每天可以有效学习2小时,双休日4小时。

不帅 发表于 2015-1-31 15:20:30

最近在学asp,不要问我为什么不直接学.net,因为公司网站是asp做的所以有这个需要,卖了本书asp入门到精通,对里面的六大内置对象老是记不住,还有很多属性和方法看的头晕。

分手快乐 发表于 2015-2-6 19:55:48

ASP主要是用好六个对象,其实最主要的是用好其中两个:response和request,就可以随心所欲地控制网页变换和响应用户动作了。

深爱那片海 发表于 2015-2-18 11:50:06

Request:从字面上讲就是“请求”,因此这个是处理客户端提交的东东的,例如Resuest.Form,Request.QueryString,或者干脆Request("变量名")

因胸联盟 发表于 2015-3-6 05:34:40

弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。

小妖女 发表于 2015-3-12 21:17:16

我们必须明确一个大方向,不要只是停留在因为学而去学,我们应有方向应有目标.

爱飞 发表于 2015-3-20 02:45:21

先学习用frontpage熟悉html编辑然后学习asp和vbscript建议买书进行系统学习
页: [1]
查看完整版本: ASP网页编程之asp网上测验体系代码剖析