第四章 系统实现 本系统在设计时分为两个模块:公用模块和专用模块。公用模块的存取对设计很重要,设计的目的是为了复用,直接影响到系统的详细设计、编程和运行的质量。系统中建有如下公用模块:数据库连接conn.asp、考试时间验证changeTime.asp、管理用户登记验loginV.asp以及使用CSS样式文件等,调用这样的模块只要包含该文件,就可调用。专用模块是为了处理一些特殊需要,不可复用,有登录注册、菜单设计、录入修改、查询统计、监控等模块。下面主要说明数据库连接和CSS样式的实现。 http://www.paper51.com 连接数据库conn.asp(或conn2.asp)公用模块,代码如下: 内容来自论文无忧网 www.paper51.com <% copyright paper51.com onerror resume next http://www.paper51.com
‘使用Server对象的CreateObjext方法建立Connection对象 内容来自论文无忧网 www.paper51.com Setconn=Server.CreateObject("ADODB.Connection") ‘连接数据库 paper51.com conn.Open“DSN=test;UID=sa;PWD=sa;Database=tempDB” ‘初始化一个连接 copyright paper51.com %> copyright paper51.com CSS是一种样式表(stylesheet)技术,也有的人称之为层叠样式表(Cascading Stylesheet)。它的作用简单地说:就是可以使你在同一页面里使用不同的超链接样式和格式。用CSS仅仅改变一个文件就可以改变数百个网页的外观,个性化的表现而不损。这些是因为网页样式表的强大和灵活的特性。在网页使用如下代码:<link href="css/Style.css" rel="stylesheet"type="text/css">。 内容来自论文无忧网 www.paper51.com 4.1 用户登录界面的实现 http://www.paper51.com 系统的首页如图4-1所示,现在还没有登记。 内容来自www.paper51.com 图4-1 登录主界面 内容来自www.paper51.com
本界面为登录主界面index.asp,也是首页,通过此可以进入系统管理界面、进入在线考试系统以及发送电子邮件,比较简单,主要是通过图像地图(热点)来实现,实现代码如下: 内容来自www.paper51.com <mapname="Mapstu" id="Mapstu"> paper51.com <area shape="rect"coords="72,121,211,147" href="admin/default.asp"> paper51.com <area shape="rect"coords="72,158,211,184" href="default.asp"> http://www.paper51.com <area shape="rect"coords="257,245,285,275" href="mailto:qjzx@mail.hf.ah.cn"alt="请与我联系"> paper51.com
</map> copyright paper51.com
4.2 考生登录科目选择的实现 内容来自www.paper51.com 进入在线考试系统是考生进行登录和选择考试科目的界面如图4-2所示。 paper51.com
图4-2 考生登录主界面 内容来自论文无忧网 www.paper51.com 本界面包括公开模式代码:<!--#include file="include/conn.asp"-->,此界面要调用数据库tryInfo表,在考试题目的下拉列表中要显示可以考试题目,其主要的调用代码和实现下拉列表的代码如下: 内容来自www.paper51.com
<% copyright paper51.com
listExamName="SelectID,DB_EXAMNAME from tryInfo where DB_ONOFFT='0'" http://www.paper51.com
setrsT=conn.execute (listExamName) ‘ .execute方法执行指定的查询、SQL语句或存储过程等 内容来自论文无忧网 www.paper51.com
%> 内容来自www.paper51.com <selectname="selectTry"> paper51.com <% copyright paper51.com
ifrsT.eof then ‘数据表中没有侯选项,显示“没有要考的试卷” paper51.com response.write("<optionvalue='2'>没有要考的试卷</option>") 内容来自www.paper51.com endif 内容来自论文无忧网 www.paper51.com Num=1 ‘变量用于控制下拉列表中被选选项 http://www.paper51.com whilenot rsT.eof paper51.com ExamIDT=rsT("ID") http://www.paper51.com ExamNameT=rsT("DB_EXAMNAME") http://www.paper51.com ifNum=1 then ‘处理被选选项 paper51.com response.Write("<optionvalue='"&ExamIDT&"'selected>"&ExamNameT&"</option>") paper51.com
Num=0 内容来自论文无忧网 www.paper51.com Else ‘处理其他选项 paper51.com response.Write("<optionvalue='"&ExamIDT&"'>"&ExamNameT&"</option>") paper51.com end if paper51.com rsT.movenext ‘下移一个记录 内容来自www.paper51.com wend http://www.paper51.com %> paper51.com </select> copyright paper51.com 考试机的IP号显示是用Request对象中ServerVariable集合,代码为<%=request.servervariables("remote_addr")%>。 内容来自www.paper51.com 4.3 考试界面的实现 内容来自www.paper51.com 由登录界面提交后,要对考生输入的信息进行验证verifcation.asp,主要用于判断是否有此考生,以及判断此考生是否已登录和已提交过,若没有登录和提交,然后才能进入考生考试界面如图4-3所示。 copyright paper51.com
copyright paper51.com 图4-3 考生考试界面 http://www.paper51.com 考生考试界面trybook.asp主要用来显示考试试题内容和考生作答的,可显示的题目类型有判断题、单选题和多选题三种类型。本界面包括如下公用模式代码如下: http://www.paper51.com <!--#includefile="safe.asp" --> copyright paper51.com <!--#includefile="include/conn.asp"--> http://www.paper51.com
<linkhref="css/Style.css" rel="stylesheet"type="text/css"> copyright paper51.com 由于要访问的数据信息量大,因而要创建功能强大的访问数据库的对象RecordSet,其实现的代码为: 内容来自www.paper51.com
<% http://www.paper51.com setrsT=server.CreateObject("ADODB.RecordSet") 内容来自论文无忧网 www.paper51.com trySql="select * from tryinfo whereID="&Session("selectTryId") paper51.com rsT.open trySql,Conn 内容来自www.paper51.com %> http://www.paper51.com 考试的主要题型有判断题、单选题和多选题三种,它们显示处理方法基本相同,以下介绍其中一种单选择题的处理方法,其它类似。 copyright paper51.com <% copyright paper51.com '单选题 内容来自www.paper51.com response.write("<br>二. <b>单选择</b><fontcolor=red> 注:对的打勾、错的不要打勾</font><br>") 内容来自论文无忧网 www.paper51.com trySql="select* from "&Session("tryT")&" where TRY_TYPE='2'" paper51.com rsT.opentrySql,Conn paper51.com q_num=1 ‘q_num为记录题目的个数 内容来自www.paper51.com whilenot rsT.Eof http://www.paper51.com response.write(q_num&"."&rsT("TRY_SUBJECT")&"<br>") ‘显示题号和题干 copyright paper51.com %> 内容来自www.paper51.com
<inputtype="radio"name="<%response.write("DxRb"&q_num)%>"value="A"> A. <%=rsT("a")%> ‘显示A选项 http://www.paper51.com
<br><inputtype="radio"name="<%response.write("DxRb"&q_num)%>"value="B"> B. <%=rsT("b")%> ‘显示B选项 内容来自www.paper51.com
<br><inputtype="radio"name="<%response.write("DxRb"&q_num)%>"value="C"> C. <%=rsT("c")%> ‘显示C选项 paper51.com
<br><inputtype="radio"name="<%response.write("DxRb"&q_num)%>"value="D"> D. <%=rsT("d")%> ‘显示D选项 http://www.paper51.com <br> paper51.com
<% copyright paper51.com rsT.movenext ‘移动下一个记录 内容来自论文无忧网 www.paper51.com
q_num=q_num+1 ‘记录个数自动加1 内容来自论文无忧网 www.paper51.com wend http://www.paper51.com DxNum=q_num-1 ‘保存单选题的小题总数 copyright paper51.com Session("Dx_Num")=DxNum http://www.paper51.com rsT.close paper51.com %> copyright paper51.com 学生完成考试提交后,进入评分,通过ASP程序listscore.asp把学生的答案与标准答案进行比较评分,最后计算出总分,并且写入数据库Score表中。 内容来自论文无忧网 www.paper51.com |