|
|
| 利用ASP和Access数据库制作局域网网上答题系统 |
| 作者:佚名 来源:不详 发布时间:2006-5-9 16:01:31 发布人:chinazhan |
减小字体
增大字体
信息社会对人的学历、素质要求越来越高,人们为了找到前途更好、收入更加诱人的工作岗位,必须通过各种各样的考试如注册会计师资格考试、司法资格考试等等,而各种各样的试题资料也应运而生,但所有的资料所共有的一个缺点就是使用上的不方便、不灵活、及效率不高,本网上答题系统正是为了弥补这些诸多不便而编制的、适合于局域网并能在单机上运行的系统,下面就详细介绍本系统的编制及使用方法。 一、界面 如图所示:
ASP和Access制作局域网网上答题系统" /> 二、程序组成 本系统由Index.、Lkzk.、Save.、Db0.fun四个小程序及Access文件lkzk.mdb组成各程序的功能分别是: 1.Index.是框架网页,负责导入Lkzk.、Save.两个子网页组成完整的程序页面。 2.Lkzk.是随机出题答题的交互页面生成程序,主要完成随机选题、题目显示、答案输入及正确率、总答题数显示等功能。 3.Save.完成答题正误判断、显示及成绩登记(按客户端IP地址)。 4.Db0.fun包含打开Access的多个函数(Lkzk.、Save.都用到的)。 5.lkzk.mdbAccess文件,由表“IP”和表“题库”组成。 表(IP)由编号字段ID(数字格式)、客户机地址字段IP(文本格式)、错误答案数字段nnn(数字格式)、正确答案数字段yyy(数字格式)所组成; 表“题库”由题号字段ID(数字格式)、单选多选标记字段dx(数字格式)、答案字段xz(文本格式)、试题内容字段na(备注格式)所组成。(注:试题内容的选择部分必须为“A.……B.……C.……D.……”格式) ---------------Index.Asp----------------- <html> <head> <title>网上司考试题库</title> </head> <framesetrows="87%,*"framespacing="0"> <framename="top"src="lkzk."scrolling="auto"> <framename="bottom"scrolling="auto"marginwidth="0"marginheight="0"> <noframes> <body> <p>此网页使用了框架,但您的浏览器不支持框架。</p> </body> </noframes> </frameset> </html> --------------Lkzk.------------- <!--#includevirtual="/lkzk/DB0.fun"--> <% Setrsu2=GetMdbStaticRecordset("lkzk.mdb","IP") Setrs=GetMdbStaticRecordset("lkzk.mdb","题库") %> <HTML> <head> <title>网上司考试题库</title> </head> <BODY> <fontsize="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")%> <FORMAction=save.Method=GETtarget="bottom"> <INPUTType=HiddenName=AIValue="<%=I%>"> <HR> <%s=rs("na") x=InStr(s,"A.") sx="多选" ifrs("dx")=0then sx="单选" endif%> <%=Left(s,x-1)%>'显示除选择部分外的试题内容 <fontcolor="red"> <%=sx%><BR>'显示是单选还是多选题 </font> <%s=Right(s,Len(s)-x+1) x=InStr(s,"B.")%>'以下开始显示复选框及选择部分 <INPUTType=CheckBoxName=AValue="a"> <%=Left(s,x-1)%><BR> <%s=Right(s,Len(s)-x+1) x=InStr(s,"C.")%> <INPUTType=CheckBoxName=AValue="b"> <%=Left(s,x-1)%><BR> <%s=Right(s,Len(s)-x+1) x=InStr(s,"D.")%> <INPUTType=CheckBoxName=AValue="c"> <%=Left(s,x-1)%><BR> <%s=Right(s,Len(s)-x+1)%> <INPUTType=CheckBoxName=AValue="d"><%=s%> <BR> <INPUTType=SubmitValue="查看答案"> <ahref="lkzk."target="_self">继续做题</a><BR> <%ifrsu2("nnn")+rsu2("yyy")=0thenrsu2("yyy")=1endif%> 正确率:<%=FormatNumber(rsu2("yyy")/(rsu2("nnn")+rsu2("yyy"))*100,2,True)%>% 总答题数:<%=rsu2("nnn")+rsu2("yyy")%> </form> </font> </BODY> -----------------Save.------------------- <!--#includevirtual="/lkzk/DB0.fun"--> <% Setrsu2=GetMdbStaticRecordset("lkzk.mdb","IP") Setrs=GetMdbStaticRecordset("lkzk.mdb","题库") %> <HTML> <BODY> <%I=CInt(Request("AI")) rs.AbsolutePosition=I+1 ssx="错" A=Replace(Request("A"),",","") ifA=rs("xz")then'判断答题正误 ssx="对" endif %> <FONTColor=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 Ifssx="对"then rsu2("yyy")=rsu2("yyy")+1 Endif ifssx<>"对"then rsu2("nnn")=rsu2("nnn")+1 Endif rsu2.Update'以下将正误结果记录于表“IP”中 %> </BODY> </HTML> --------------Db0.fun---------------- <%'以下为函数程序 '--------------------------------------------------- FunctionGetMdbConnection(FileName) DimProvider,DBPath Provider="Provider=Microsoft.Jet.OLEDB.4.0;" DBPath="DataSource="&Server.MapPath(FileName) SetGetMdbConnection=GetConnection(Provider&DBPath) EndFunction '--------------------------------------------------- FunctionGetMdbRecordset(FileName,Source) SetGetMdbRecordset=GetMdbRs(FileName,Source,2,"") EndFunction '--------------------------------------------------- FunctionGetMdbStaticRecordset(FileName,Source) SetGetMdbStaticRecordset=GetMdbRs(FileName,Source,3,"") EndFunction '--------------------------------------------------- FunctionGetConnection(Param) Dimconn OnErrorResumeNext SetGetConnection=Nothing Setconn=Server.CreateObject("ADODB.Connection") IfErr.Number<>0ThenExitFunction conn.OpenParam IfErr.Number<>0ThenExitFunction SetGetConnection=conn EndFunction '--------------------------------------------------- FunctionGetMdbRs(FileName,Source,Cursor,Password) Dimconn,rs OnErrorResumeNext SetGetMdbRs=Nothing IfLen(Password)=0Then Setconn=GetMdbConnection(FileName) Else Setconn=GetSecuredMdbConnection(FileName,Password) EndIf IfconnIsNothingThenExitFunction Setrs=Server.CreateObject("ADODB.Recordset") IfErr.Number<>0ThenExitFunction rs.Opensource,conn,Cursor,2 IfErr.Number<>0ThenExitFunction SetGetMdbRs=rs EndFunction '--------------------------------------------------- %> 三、运行方法 本系统运行方法是先按文中所述格式制作好试题库文件Lkzk.mdb连同上列四个程序COPY至主机的WWW的根目录中并执行http://主机IP地址/Index.即可进行答题。(本程序在单机windows98+pws+ODBC驱动及局域网windowsNTServer4.0+IIS4.0+ODBC驱动环境下均测试通过,各用户可以根据具体情况对程序中的标题稍加修改制作自己的试题库系统,还可以对其进行扩充增加各类其它功能,在这里因篇幅关系就不再敷述,有关ODBC驱动的详细情况可参阅相关资料或给我来信mailto:intcom@21cn.com。
|
| |
|
[]
[返回上一页]
[打 印]
[收 藏] |
|
| ∷相关文章评论∷ (评论内容只代表网友观点,与本站立场无关!) [更多评论...] |
|
|