怎样用asp开发一个简单的在线考试程序

怎样用asp开发一个简单的在线考试程序,第1张

脚本说明:

第一步:把如下代码加入<head>区域中

<SCRIPT LANGUAGE="JavaScript">

<!--

function scorequiz(form) {

list=0

if(form.Q1.value!=null &&form.Q1.value=="*") {list=list+1}

if(form.Q2.value!=null &&form.Q2.value=="*") {list=list+1}

if(form.Q3.value!=null &&form.Q3.value=="*") {list=list+1}

if(form.Q4.value!=null &&form.Q4.value=="*") {list=list+1}

if(form.Q5.value!=null &&form.Q5.value=="*") {list=list+1}

if(form.Q6.value!=null &&form.Q6.value=="*") {list=list+1}

if(form.Q7.value!=null &&form.Q7.value=="*") {list=list+1}

if(form.Q8.value!=null &&form.Q8.value=="*") {list=list+1}

if(form.Q9.value!=null &&form.Q9.value=="*") {list=list+1}

if(form.Q10.value!=null &&form.Q10.value=="*") {list=list+1}

form.SCORE.value =eval(list)

if (form.SCORE.value<=8){

ok="不及格!"}

}

function clearquiz(form) {

list=0

form.Q1.value="?"

form.Q2.value="?"

form.Q3.value="?"

form.Q4.value="?"

form.Q5.value="?"

form.Q6.value="?"

form.Q7.value="?"

form.Q8.value="?"

form.Q9.value="?"

form.Q10.value="?"

form.SCORE.value =eval(list)

}

function msg() {

alert("感谢参加测试,您的成绩已经将mail给Webmaster。")

}

// -->

</SCRIPT>

第二步:把如下代码加入<body>区域中

<table width="75%" border="0" align="center">

<tr>

<td>

<form name="quiz1"

action ="mailto:[email protected]?subject=测试结果反馈" method="post" enctype="text/plain"

onLoad="clearquiz(this.form)" onSubmit="msg()">

您的姓名:

<input type="Text" name="Name" value="" class="pt9">

<br>

<hr>

1. Internet上使用的网络协议是:__________

<ol>

<input type="radio" name="Q1" value="*TCP/IP" onClick=Q1.value="*">

TCP/IP<br>

<input type="radio" name="Q1" value="X.25" onClick=Q1.value="X.25">

X.25<br>

<input type="radio" name="Q1" value="NetBEUI" onClick=Q1.value="NetBEUI">

NetBEUI<br>

</ol>

2. 我们通过__________长距离连接两台计算机使它们通讯。

<ol>

<input type="radio" name="Q2" value="LAN" onClick=Q2.value="A">

LAN<br>

<input type="radio" name="Q2" value="*WAN" onClick=Q2.value="*">

WAN<br>

<input type="radio" name="Q2" value="WAIS" onClick=Q2.value="C">

WAIS<br>

</ol>

3. HUB是指:__________

<ol>

<input type="radio" name="Q3" value="网关" onClick=Q3.value="网关">

网关<br>

<input type="radio" name="Q3" value="网桥" onClick=Q3.value="网桥">

网桥<br>

<input type="radio" name="Q3" value="路由器" onClick=Q3.value="路由器">

路由器<br>

<input type="radio" name="Q3" value="*集线器" onClick=Q3.value="*">

集线器<br>

</ol>

4. 56K MODEM的传输速度为:__________

<ol>

<input type="radio" name="Q4" value="56Kbytes" onClick=Q4.value="A">

每秒传输56K bytes的数据。 <br>

<input type="radio" name="Q4" value="*56kbps" onClick=Q4.value="*">

每秒传输56k bits的数据。 <br>

</ol>

5. Gateway是指:__________

<ol>

<input type="radio" name="Q5" value="*网关" onClick=Q5.value="*">

网关<br>

<input type="radio" name="Q5" value="网桥" onClick=Q5.value="B">

网桥<br>

<input type="radio" name="Q5" value="路由器" onClick=Q5.value="C">

路由器<br>

<input type="radio" name="Q5" value="集线器" onClick=Q5.value="D">

集线器<br>

</ol>

6. Http默认的端口是:__________

<ol>

<input type="radio" name="Q6" value="8080" onClick=Q6.value="A">

8080<br>

<input type="radio" name="Q6" value="*80" onClick=Q6.value="*">

80<br>

<input type="radio" name="Q6" value="25" onClick=Q6.value="25">

25<br>

</ol>

7. JavaScript是一种类似于C++的语言,比较难掌握:__________

<ol>

<input type="radio" name="Q7" value="True" onClick=Q7.value="T">

True<br>

<input type="radio" name="Q7" value="*False" onClick=Q7.value="*">

False<br>

</ol>

8. JAVA是 __________ 公司的产品:

<ol>

<input type="radio" name="Q8" value="Microsoft" onClick=Q8.value="A">

Microsoft<br>

<input type="radio" name="Q8" value="Novell" onClick=Q8.value="B">

Novell<br>

<input type="radio" name="Q8" value="*SUN" onClick=Q8.value="*">

SUN<br>

</ol>

9. CGI通过__________收集用户填写的表单信息:

<ol>

<input type="radio" name="Q9" value="Form" onClick=Q9.value="A">

Form<br>

<input type="radio" name="Q9" value="*环境变量" onClick=Q9.value="*">

环境变量<br>

<input type="radio" name="Q9" value="javascripts脚本" onClick=Q9.value="C">

javascripts脚本<br>

</ol>

10. 服务器响应"404 error"的含义是: __________

<ol>

<input type="radio" name="Q10" value="*文件不存在" onClick=Q10.value="*">

文件不存在<br>

<input type="radio" name="Q10" value="Server error" onClick=Q10.value="B">

服务器错误<br>

<input type="radio" name="Q10" value="Client error" onClick=Q10.value="C">

浏览器错误<br>

</ol>

<hr>

<input type="button" name="submit" value="开始评分" onClick=scorequiz(this.form) class="pt9">

<input type="reset" name="reset" value="重新测试" onClick=clearquiz(this.form) class="pt9">

<input type="submit" value="将成绩MAIL给管理员" onClick=scorequiz(this.form) name="submit" class="pt9">

<br>

<br>

你的考试成绩:

<input name="SCORE" type="text" class="pt9">

</form>

</td>

</tr>

</table>

大致编写概况如下,供楼主参考

1、先规划页面,在纸上弄出一个流程来

2、根据流程图把所有需要到的版面PS出来后在做成静态的HTML页面

3、规划数据库表,把一些需要到的配置信息先录入到表中

4、利用静态的HTML文件来做动态页面,一般情况下就是增删改查数据库了

利用ASP和Access数据库制作局域网网上答题系统

本系统由Index. asp、Lkzk.asp、Save.asp、Db0.fun 四个小程序及Access数据库文件lkzk.mdb组成各程序的功能分别是:

1. Index. asp 是框架网页,负责导入Lkzk.asp、Save.asp两个子网页组成完整的程序页面。

2. Lkzk.asp 是随机出题答题的交互页面生成程序,主要完成随机选题、题目显示、答案输入及正确率、总答题数显示等功能。

3. Save.asp 完成答题正误判断、显示及成绩登记(按客户端IP地址)。

4. Db0.fun 包含打开Access数据库的多个函数(Lkzk.asp、Save.asp都用到的)。

5. lkzk.mdb Access数据库文件,由表“IP”和表“题库”组成。

表(IP)由编号字段ID(数字格式)、客户机地址字段IP(文本格式)、错误答案数字段nnn(数字格式)、正确答案数字段yyy(数字格式) 所组成;

表“题库” 由题号字段ID(数字格式)、单选多选标记字段dx(数字格式)、答案字段xz(文本格式)、试题内容字段na(备注格式)所组成。(注:试题内容的选择部分必须为“A. …… B. …… C. …… D. ……” 格式)

--------------- Index. Asp-----------------

<html>

<head>

<title>网上司考试题库</title>

</head>

<frameset rows="87%,*" framespacing="0">

<frame name="top" src=image/lkzk.asp scrolling="auto">

<frame name="bottom" scrolling="auto" marginwidth="0" marginheight="0">

<noframes>

<body>

<p>此网页使用了框架,但您的浏览器不支持框架。</p>

</body>

</noframes>

</frameset>

</html>

--------------Lkzk.asp-------------

<!-- #include virtual="/lkzk/DB0.fun" -->

<%

Set rsu2 = GetMdbStaticRecordset("lkzk.mdb", "IP")

Set rs = GetMdbStaticRecordset("lkzk.mdb", "题库")

%>

<HTML>

<head>

<title>网上司考试题库</title>

</head>

<BODY >

<font size="4" color="#000080">司考试题库

<%

ClientIP = Request.ServerVariables("REMOTE_ADDR")

userIP=Right(ClientIP,Len(ClientIP)-InStrRev(ClientIP,"."))

rsu2.AbsolutePosition=userIP

Randomize

I=Fix(Rnd*1800)

rs.AbsolutePosition=I+1

%>

总第<%=CStr(I+6)%>题 <%'=rs("type")%>

<FORM Action=save.asp Method=GET target="bottom">

<INPUT Type=Hidden Name=AI Value="<%=I%>">

<HR>

<% s=rs("na")

x=InStr(s,"A.")

sx="多选"

if rs("dx")=0 then

sx="单选"

end if %>

<%=Left(s,x-1)%>'显示除选择部分外的试题内容

<font color="red">

<%=sx%><BR>'显示是单选还是多选题

</font>

<% s=Right(s,Len(s)-x+1)

x=InStr(s,"B.") %>'以下开始显示复选框及选择部分

<INPUT Type=CheckBox Name=A Value="a">

<%=Left(s,x-1)%><BR>

<%s=Right(s,Len(s)-x+1)

x=InStr(s,"C.")%>

<INPUT Type=CheckBox Name=A Value="b">

<%=Left(s,x-1)%><BR>

<%s=Right(s,Len(s)-x+1)

x=InStr(s,"D.")%>

<INPUT Type=CheckBox Name=A Value="c">

<%=Left(s,x-1)%><BR>

<%s=Right(s,Len(s)-x+1)%>

<INPUT Type=CheckBox Name=A Value="d"><%=s%>

<BR>

<INPUT Type=Submit Value="查看答案">

<a href="lkzk.asp" target="_self">继续做题</a><BR>

<%if rsu2("nnn")+rsu2("yyy")=0 then rsu2("yyy")=1 end if%>

正确率:<%=FormatNumber(rsu2("yyy")/(rsu2("nnn")+rsu2("yyy"))*100, 2, True)%>%

总答题数:<%=rsu2("nnn")+rsu2("yyy")%>

</form>

</font>

</BODY>

-----------------Save.asp-------------------

<!-- #include virtual="/lkzk/DB0.fun" -->

<%

Set rsu2 = GetMdbStaticRecordset("lkzk.mdb", "IP")

Set rs = GetMdbStaticRecordset("lkzk.mdb", "题库")

%>

<HTML>

<BODY >

<% I=CInt(Request("AI"))

rs.AbsolutePosition=I+1

ssx="错"

A=Replace( Request("A"), ", ", "" )

if A=rs("xz") then '判断答题正误

ssx="对"

end if

%>

<FONT Color=Red>

您答<%=ssx%>了 '显示答案正误等信息

</FONT>

试题库总第<%=CStr(I+1+5)%>题 您的答案是:<%=A%>

参考答案是:<%=rs("xz")%>

<%

ClientIP = Request.ServerVariables("REMOTE_ADDR")

userIP=Right(ClientIP,Len(ClientIP)-InStrRev(ClientIP,"."))

rsu2.AbsolutePosition=userIP

rsu2.Update

If ssx="对" then

rsu2("yyy") =rsu2("yyy")+1

End if

if ssx<>"对" then

rsu2("nnn") =rsu2("nnn")+1

End if

rsu2.Update '以下将正误结果记录于数据库表“IP”中

%>

</BODY>

</HTML>

--------------Db0.fun----------------

<% ' 以下为函数程序

'---------------------------------------------------

Function GetMdbConnection( FileName )

Dim Provider, DBPath

Provider = "Provider=Microsoft.Jet.OLEDB.4.0"

DBPath = "Data Source=" &Server.MapPath(FileName)

Set GetMdbConnection = GetConnection( Provider &DBPath )

End Function

'---------------------------------------------------

Function GetMdbRecordset( FileName, Source )

Set GetMdbRecordset = GetMdbRs( FileName, Source, 2, "" )

End Function

'---------------------------------------------------

Function GetMdbStaticRecordset( FileName, Source )

Set GetMdbStaticRecordset = GetMdbRs( FileName, Source, 3, "" )

End Function

'---------------------------------------------------

Function GetConnection( Param )

Dim conn

On Error Resume Next

Set GetConnection = Nothing

Set conn = Server.CreateObject("ADODB.Connection")

If Err.Number <>0 Then Exit Function

conn.Open Param

If Err.Number <>0 Then Exit Function

Set GetConnection = conn

End Function

'---------------------------------------------------

Function GetMdbRs( FileName, Source, Cursor, Password )

Dim conn, rs

On Error Resume Next

Set GetMdbRs = Nothing

If Len(Password) = 0 Then

Set conn = GetMdbConnection( FileName )

Else

Set conn = GetSecuredMdbConnection( FileName, Password )

End If

If conn Is Nothing Then Exit Function

Set rs = Server.CreateObject("ADODB.Recordset")

If Err.Number <>0 Then Exit Function

rs.Open source, conn, Cursor, 2

If Err.Number <>0 Then Exit Function

Set GetMdbRs = rs

End Function

'---------------------------------------------------

%>

具体参考:


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8126508.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存