《毕业设计局域网考试系统论文.doc》由会员分享,可在线阅读,更多相关《毕业设计局域网考试系统论文.doc(52页珍藏版)》请在三一办公上搜索。
1、局域网考试系统摘 要系统基于Browser/Server模式开发,应用DreamweaverMX软件,结合JSP编程技术,并以 Microsoft ACCESS2003为数据库开发工具,在Windowsxp系统中使用JDBC驱动程序进行数据库连接。论文主要阐述的是考试管理系统的操作过程及一些关键技术。该系统考生和管理员信息主要在管理员系统中输入,不需数据库直接输入,考试时考生输入准考证号码,核对正确后进入考生界面,考生界面主要有选择试卷、成绩查询组成,关键实现了考生在选择试卷后进入考试窗体,系统强制考生退出,及考完后对客观题的自动评分、存档。管理员进入管理员系统界面,管理员系统主要由系统管理、
2、考生管理、题库管理、监控等模块组成,管理员系统和考试系统共同构成了该考试管理系统。【关键字】JSP,题库管理,局域网考试系统。AbstractThis system is based on Browser/Server mode development , employ DreamweaverMX software, combine JSP programming technology, regard Microsoft ACCESS2003 as the database developing instrument, use JDBC driver to join the database
3、in Windows XP system.What the thesis is mainly explained is procedure of the administrative system of an examination and some key technology. System this examinee and administrator information input of the system in administrator mainly, not needing the direct input of database , the examinee inputs
4、 the number of admission card for entrance examination when having an examination, enter examinee interface after check correct, examinee boundary plane mainly choose the paper , achievement to inquire about and make up, the key has realized examinees and entered and had an examination body of windo
5、w behind choosing the paper, the system forces examinees to withdraw, and grading , filing automatically to objective question after finishing doing in the test. Administrator enter administrator systematic interface , administrator system mainly by system management, examinee manage, exam pool mana
6、ge, module of controlling etc. make up, administrator system and examination system form, should have an examination administrative system together.【Keywords】JSP, Question bank Management, LAN Examsystem。目 录前 言5第一章 概 述61.1 开发背景61.2 JSP简介61.2.1 JSP的运行原理61.2.2 JSP页面的组成71.2.3 JavaBean技术介绍81.3系统概述8第二章 系
7、统环境与配置102.1硬件环境102.3 软件环境102.4 服务器的配置1125数据库配置12第三章 需求分析133.1 系统需求分析13311系统说明13312系统需求分析1332数据库需求分析14第四章 系统设计154.1 系统设计思想154.2 系统功能模块化154.3 数据库设计164.3.1 数据库概念结构164.3.2 数据库逻辑结构设计16433数据库的链接17第五章 系统的实现与应用185.1 考生登陆185.2 备考页面195.3 考试页面215.4结果页面2355学生管理页面2556题目管理页面285.7成绩管理3158管理员添加页面35总 结37致 谢38参考文献39附
8、 录40附录1:考试页面部分代码40附录2:题目管理部分代码45前 言在网络技术逐渐渗入社会生活各个层面的今天,传统的考试方式也面临着变革,而网络考试则是一个很重要的方向。基于Web技术的网络考试管理系统可以借助于遍布全球的Internet进行,因此考试既可以在本地进行,也可以在异地进行,大大拓展了考试的灵活性。网络考试管理系统的实现技术有多种,本文采用Web 技术实现。Web技术超越了传统的“客户机/服务器”两层结构,采用了三层体系结构:用户界面层/事务层/数据库层。因此Web结构有着更好的安全性。在用户机上不需要安装任何应用程序,应用程序可以安装在事务层所在的计算机上,试题存放在数据库服务
9、器上(事务层和数据库可以是同一台机器)。服务器端程序的实现技术也很多,本文选用了当前比较流行的网络编程技术JSP作为主要实现手段(配合Java Servlet、Java Bean、HTML等)。JSP作为一种Web实现技术,它的效率是高的。这一点正好符合了考试管理系统所要求的实时性。JSP自身的安全性,再加上实现模式的特点,完全能够达到考试的保密性要求,保证了考试的公平性原则。除此之外,作为Java平台的一部分,JSP拥有Java语言“一次编写,各处运行”的特点。又随着越来越多的服务器供应商将JSP支持添加到他们的产品中,这样一来用JSP做成的这套系统可以轻松移植到其它平台来运行。第一章 概
10、述1.1 开发背景随着时代的发展,信息技术、Internet/Intranet技术、数据库技术的不断发展完善,网络进程的加快,传统的教育方式也以发生着改变。在这些教育方式 的改变中一个就是我们可以利用网络完成各种考试,而且不受时间和空间的限制,考生考试完后就可以看到自己的成绩,这样极大的方便的考生也提高的教育工作者的工作效率。一场利用网络的网上教学活动正在蓬勃的兴起。1.2 JSP简介JSP(Java Server Pages)是由Sun Microsystems 公司倡导、许多公司参与一起建立的一种动态网页技术标准,JSP技术在Servlet技术基础上发展起来的,它正在飞速发展中,现已成为J
11、ava服务器编程的重要组成部分。它虽然还未成型,但是它必将和J2EE(Java 2 Enterprise Edition)一起发展。JSP是结合markup(HTML和XML)和Java代码来处理一种动态页面。每一页第一次被调用时,通过JSP引擎自动被编译成Servlet,然后被执行,以后每次调用时,执行编译过的Servlet。JSP提供了多种方式访问Java class、Servlet、Applets和Web Server,因此,Web应用的功能可以分成多个明确定义公用接口的组件,通过JSP将它们结合在一起。1.2.1 JSP的运行原理在JSP第一次获得来自于客户端浏览器的请求时,JSP文件
12、将被JSP引擎(JSP engine)转换成一个Servlet,即将”.jsp”文件编译成Java Class文件。当Servlet引擎接收到请求后,如果设置了使用最新的JSP,它就会去找JSP文件,检查该文件在上次编译后是否改动过。如果改动过,就会重新编译生成新的Servlet,最终将请求转交给编译好的Servlet引擎执行。如图1-1:Client客户端请求(Request)Web Server响应(Response)Serverextension服务器扩展ServletengineJSPengineServlet引擎JSP引擎ClassloaderJavacomplierJSPparse
13、r类载入器Java编译器JSP语法分析器图1-1 JSP运行原理1.2.2 JSP页面的组成JSP页面看上去像标准的HTML和XML页面,并附带有JSP引擎能够处理和解析执行的代码与组件。通常,JSP代码和组件用于创建在最终页面上显示的文本。通常来说,JSP页面包括编译指令,动作指令,声明,表达式和程序段等内容。1、编译指令:使用JSP编译指令(% 和 %内的)来指定所使用的脚本语言,Servlet实现的接口,Servlet扩展的类,Servlet导入的软件包。JSP指令的一般语法形式为:。2、动作指令(标识):动作指令用于执行某些动作。在JSP规范中有2种类型的动作指令的标识。第一种是标准动
14、作,它定义的是无论在什么版本的JSP引擎或Web服务器下总是可用的动作。第二种是自定义动作,它通过使用taglib指令来实现。例如JSP:useBean;JSP:setProperty;JSP:getProperty就是标准动作。3、声明:用于声明合法的变量和方法。与任何语言相同,JSP语言使用变量来保存数据。这些变量用declaration元素声明,声明的语法为。当页面被初始化的时候,JSP页面中的所有声明都被初始化。除了简单的变量,方法也能被声明。声明不对当前的输出流产生任何影响。4、程序段:JSP可以在页面中包含的一段程序,称之为程序段。程序段是一个代码片断,在请求的处理过程中被执行。程
15、序段可以和页面中的静态元件组合起来创建动态生成的页面。程序段在“”中定义,在这对标识中的所有东西都会被当成JSP程序执行。1.2.3 JavaBean技术介绍JavaBean技术是一种基于Java的组件技术,JavaBean组件可以用来执行复杂的计算任务,或负责与数据库的交互以及数据的提取等,是解决代码重用问题的一种策略。以前的组件无法实现真正的代码重用,其主要原因就是它们对于处理平台的依赖和对开发语言的依赖过重。由于Java语言在这些方面所具有的特点和优势,使得基于它的软件JavaBean组件技术倍受人们的关注。它的任务就是:一次编写,可以在任何地方执行。为了创建和使用Java软件组件,Ja
16、vaBean被实现为一种独立于平台和结构的应用程序接口,它的实现可以忽略内部的结构及细节问题,只需要定义其外部的特征及对外功能就行。其中,属性、方法和事件三种接口可以独立对外进行开发。JavaBean的实质就是一个.class文件,也可以成为类文件。JavaBean以binary格式保存,可以保护Java源代码不容易被他人抄袭。1.3系统概述在线考试是在网上模拟考试的应用程序,它是维护着一个数据库,存储着考生、题库、管理员等信息,主要包括教师出题、学生在线考试、自动判卷以及相关的系统维护功能。在线考试系统的概要设计,应用程序的系统框架图。考试系统系统管理考生考试考生管理题目管理成绩查询添加管理
17、员考生登录自动出题自动判卷主要功能:考生信息模块考生作息是由超级用户添加生成的,其中包括对考生信息的添加和删除功能。题目管理模块主要包括对考试题目的添加和修改功能。成绩系统模块其中包括对所有考生成绩的显示及各个分数段考生人数的统计添加管理员主要功能是添加和删除后台管理员在线考试系统考生在线考试主要经过三个步骤,首先考生登录,登录成功后进行考试,将所有问题答完后交卷,将成绩显示出来。流程图如下。考生登录在线答题交卷显示成绩第二章 系统环境与配置2.1硬件环境操作系统:Windows 9X、Windows NT Workstation/Server 4.0以上、Windows 2000 Serve
18、r/Professional、Windows XP Professional。CPU:没有很高的要求,只要能够顺利运行Windows系列操作系统就可以了。当然,CPU的处理速度越快,运行JSP代码的效率越高。内存:最低配置32MB,建议使用64MB以上内存,如果使用Windows 2000或Windows XP建议使用128MB以上内存。硬盘空间:至少需要50MB以上的硬盘空间来安装所需的组件。运行JSP的服务器端要求:(如表2-1所示)操作系统需要安装的J2SDK TomcatWindows 98J2sdk-1_4_1_01 Tomcat 4.0以上Windows NT 4.0 Server
19、J2sdk-1_4_1_01 Tomcat 4.0以上Windows 2000J2sdk-1_4_1_01 Tomcat 4.0以上Windows XPJ2sdk-1_4_1_01 Tomcat 4.0以上表2-12.3 软件环境要运行JSP(注意,不是浏览JSP页面),需要有支持JSP的服务器。这里分2种情况:一种是自身就支持JSP的服务器,如WebLogic,JSWDK等;而另一种则是在不支持JSP的服务器上安装Jsp引擎的插件,如在IIS,Apache等服务器上安装WebSphere,tomcat,Resin等插件。其中主流服务器是WebLogic和tomcat.Tomcat服务器是Ap
20、ache Group Jakarta小组开发的一个免费服务器软件,适合于嵌入Apache中使用,而且,它的源代码可以免费获得,你可以自由地对它进行扩充。访问的地址 http:/jakarta. apache.org/tomacat/index.html, Tomcat服务器的兼容性很好,如WebLogic服务器采用其为Web服务器引擎,Jbuilder将其作为标准的测试服务器,Sun公司也将其作为JSP技术应用的示例服务器。不足之处是它的配置比较麻烦,而且有一些安全性的问题没有解决。但是Tomcat服务器有众多大软件公司的支持,而且服务器的性能稳定,其发展前景很好。2.4 服务器的配置前面介绍
21、了JSP的生命周期,为了说明JSP对运行环境的要求,先简单的介绍一下它的运作过程。服务器在接收到客户端传过来的一个页面请求时,先判断是否是JSP页面请求(从扩展名来判断),如果不是,只是一般的HTML页面请求,则直接把HTML文档传给客户端,完成客户端与服务器的一次连接。从上面JSP运作全过程可见,运行JSP最少需要三样东西:JSP引擎、Web服务器和JVM。最常用的Java开发工具就是JDK和Jbuilder,它们之间的很大不同就是JDK是字符界面,而Jbuilder是窗口界面。本系统直接采用JDK作为JVM和java编译器。所用的操作系统是Windows2000,服务器采用的是tomcat
22、,利用了它充当Jsp引擎,同时还利用了它的信息发布功能。首先把JDK,tomcat安装到本地硬盘D盘根目录下,下面详细的介绍如何配置运行环境:第一步:右击“我的电脑”,选择“属性”选项, “系统属性“对框,单击”高级标签“。第二步:点击上图箭头所示“环境变量”。第三步:单击 “系统变量”部分的 “新建按扭”,创建JAVA-HOME变量,在变量值栏内输入C:jdk1.4.2_05; 如图1-4所示:JAVA_HOME指明JDK安装路径,就是刚才安装时所选择的路径C:jdk1.4.2_05,此路径下包括lib,bin,jre等文件夹(此变量最好设置,因为以后运行tomcat,eclipse等都需要
23、依靠此变量)第四步:同样的方法创建CLASSPATH 变量,在变量栏内输入,.;%JAVA_HOME%lib;%JAVA_HOME%libtools.jar (要加.表示当前路径)CLASSPATH为java加载类(class or lib)路径,只有类在classpath中,java命令才能识别。第五步:创建PATH变量,在变量栏内输入, %JAVA_HOME%jrebin Path使得系统可以在任何路径下识别java命令。第六步:创建Tomcat-Home变量,在变量栏内输入C:Tomcat5.0。第七步:检测配置是否成功:进入C:Tomcat5.0bin目录,双击startup.bat执
24、行文件启动Tomcat服务器,成功启动后的界面如图2-1所示:我们现在就可以通过浏览器看Tomcat服务器的示例程序了,打开浏览器,键入http:/localhost:8080/index.jsp进入Tomcat服务器的主页面。图2-125数据库配置ACCESS数据库是微软公司出品的一个小型数据库,简单方便,能满足用户的一般需求。我们要开发一个局域网考试系统,对数据库的要求不是很高,所以我们可以采用ACCESS数据库进行开发。配置数据库源1用ACCESS新建一数据库名为exam。2打开控制面板-系统管理-ODBC数据源。3添加用户DSN-选择ACCESS数据库驱动程序-命名数据源名称为exam
25、,选择刚才建好的exam数据库。添加管理人名称为admin密码为 123456点击完成数据源就配置好了。第三章 需求分析3.1 系统需求分析311系统说明在线考试是在网上模拟考试的应用程序,它是维护着一个数据库,存储着考生、题库、管理员等信息,主要包括教师出题、学生在线考试、自动判卷以及相关的系统维护功能。在线考试系统的概要设计。客户端登陆服务:负责用户的登陆的输入,与服务器端的验证,如果是重登陆的,需重登陆密码。 题目下载:负责从数据库中读取试题数据,下载到客户端。用户答题:负责在客户的浏览器中显示下载的题目,供用户做题。题目上传:负责将客户所答题目的答案上传到服务器端。管理端生成试题:负责
26、从试题源中生成当场考试的相应试题。试题初始化:负责在每场考试前清空试题回收信息。考生监控:负责在考试期间管理监控各考生的考试状态。试卷回收:负责在考试结束后,将考生提交的答案上传到数据库服务器中。试卷批阅:负责自动化批阅回收试卷(客观题)。数据库连接服务:负责从各共性服务层模块接收相关数据库连接,查询,修改等服务,并返回相关数据。数据访问层异常管理:负责数据库连接服务出现的异常。312系统需求分析1考生信息模块考生作息是由超级用户添加生成的,其中包括对考生信息的添加和删除功能。2题目管理模块主要包括对考试题目的添加和修改功能。3成绩系统模块其中包括对所有考生成绩的显示及各个分数段考生人数的统计
27、4添加管理员主要功能是添加和删除后台管理员5在线考试系统考生在线考试主要经过三个步骤,首先考生登录,登录成功后进行考试,将所有问题答完后交卷,将成绩显示出来。32数据库需求分析针对一般在线考试系统的需求,得出如下需求信息。 一个学生信息表,用于存放考生的信息。 一个成绩表,用于存放考生考试后的成绩。 一个管理员表,用于存放管理者的姓名密码等信息。 一个题库表,用于存放所有的题目。第四章 系统设计4.1 系统设计思想本系统采用B/S架构设计,它的工作原理如图4-1所示。Web浏览器Web服务器数据库图4-1采用B/S架以后,考生登录考试系统,考试系统从后台数据库提取考生答题然后返回给考生。考生答
28、题完后,把试卷提交给考试系统进行处理。考试系统再把处理后的结果反回给考生。并把成绩存储到数据库中。4.2 系统功能模块化如图4-2为本系统的功能模块图。考试系统系统管理考生考试考生管理题目管理成绩查询添加管理员考生登录自动出题自动判卷图4-24.3 数据库设计数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率,以及实现的效果产生影响。合理的数据库结构设计可以提高数据存储的效率,保证数据的完整和一致。4.3.1 数据库概念结构从本系统中规划出的实体有:考生实体、管理员实体、成绩实体、题库实体。4.3.2 数据库逻辑结构设计在线考试系统数据库中各个表的设计结果
29、如下面的标和所示。图4-3为学生信息表student,用于存放考生的个人信息。图4-3图4-4为成绩表score用于存放考生的成绩,方便对考生成绩的查询统计。图4-4图4-5为题库表 tiku用于存放试题。图4-5图4-6为管理员表,用于管理员信息。图4-6433数据库的链接在上面我们配置好数据源后我在在系统中就以发用下面的代码调用它。第五章 系统的实现与应用5.1 考生登陆考生登陆界面,考生在这里输入考号和密码能过验证后进入备考页面。其主要界面见图5-1:图5-1考生可以在这里输入考号的密码,进入备考页面,管理员可以点击下面的链接进入管理员页面,对考试系统进行管理。主要代码: 考 号: 密
30、码: 5.2 备考页面主要用于考生登陆后显示考生的信息确保信息正确后进入考试页面,其主界面见图5-2:图5-2这是考生登陆后的备考页面,考生在这里可以看到自己的信息,准备考试,准备好后就可以点击下面的准备好了按钮进入考试页面进行考试。主要代码: 登陆成功! 您的相关信息: 学号: 姓名: 性别: 年级: 专业: input name=S_id type=hidden id=S_id value= input name=S_name type=hidden id=S_name value= 你已经参加过考试了,你的上次考试成绩为: 5.3 考试页面考生登陆后就可以在此答题,其主界面
31、见图5-3:图5-3在页面的上方显示了考生的学号和姓名,并显示考生的做题时间,在最后一分钟的时候系统会提醒考生交卷,如果考生没有在考试时间内交卷那么系统就会强制交卷,转到结果页面,并显示考生的成绩。考生在做完题目后按下面的提交按钮,系统就会自动的处理考生的成绩,转到结果页面,显示考生的成绩。主要代码: %Connection conn =DriverManager.getConnection(jdbc:odbc:exam,admin,123456);PreparedStatement p = conn.prepareStatement(select max(id) from tiku);Res
32、ultSet resultp = p.executeQuery();resultp.next();ResultSet result=null;int maxid=resultp.getInt(1);int num; int j=0;int i; /随即数int randnum=new int25;boolean isexsit=false;for(num=0;num25;num+)randnumnum=0;Random rand = new Random();while (true)isexsit=false;i = rand.nextInt(maxid);for(num=0;num% ran
33、dnumj=i; j+;System.out.println(randnum+j+=+randnumj-1+);if (j=25) break; %5.4结果页面用于显示考生的成绩,其主界面如图5-4:图5-4当考生交卷后或者到了考试规定时间系统自动交卷后都会转到这个页面并显示其成绩。主要代码:%String s_id=request.getParameter(s_id);String s_name=request.getParameter(s_name);Connection conn = DriverManager.getConnection(jdbc:odbc:exam,admin,12
34、3456);PreparedStatement ps=null;ResultSet rs=null;int i;int score=0;/总分String selectvalue;String id;for (i=1;i=25;i+)selectvalue=request.getParameter(select+i);id=request.getParameter(h+i);ps=conn.prepareStatement(select * from tiku where id=? and answer=?);ps.setInt(1,Integer.parseInt(id);ps.setStr
35、ing(2,selectvalue);rs=ps.executeQuery();if (rs.next()score=score+1;System.out.println(id+:+selectvalue+:+score);score=score*4;ps=conn.prepareStatement(select * from score where s_id=?);ps.setString(1,s_id);rs=ps.executeQuery();if (rs.next() /out.println(错误:成绩已经存在!);ps=conn.prepareStatement(update sc
36、ore set score=? where s_id=?);ps.setInt(1,score);ps.setString(2,s_id);ps.executeUpdate();else ps=conn.prepareStatement(insert into score (s_id,score) values (?,?);ps.setString(1,s_id);ps.setInt(2,score);ps.executeUpdate();%55学生管理页面管理登陆到后台系统后就可以在这里添加学生和删除学生。其功能界面如下5-5图所示。图5-5管理员在这里填写好学生的信息后就可以添加学生系统自
37、动保存在数据库的学生表中,如果相关信息没有填写完整,系统会给了提示。如果管理员觉得哪个学生的信息添加错了,还可以删除重新添加。主要代码:%Connectionconn = DriverManager.getConnection(jdbc:odbc:exam,admin,123456);PreparedStatement ps=null;Statement stmt=null;ResultSet result=null;String sqlstr;String S_id=;String S_name=;String Password=;String Sex=;String Major=;String Grade=;int id=0;if (request.getParameter(id)!=null) id=Integer.parseInt(request.getParameter(id);if (request.getParameter(s_id)!=null) S_id=