




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、毕业论文 在线考试系统的设计与实现 摘要:本在线考试系统是利用Sun Microsystems 公司倡导的JSP和SQL2005数据 库,禾U用了目前比较热门的JSP技术的JDBC与数据库连接和JSP+Servlet访问数据库,实 现了在线考试系统的出卷,在线答题,在线批改和创建题库等四项基本的在线考试功能。 该系统有应用简单、升级和部署方便、扩展性强等特点。并且对考生参加考试的设备要求 很低,只需支持 Web服务器访问就可以了。 关键词: JSP, 考试系统,在线考试系统 第一章前言 1 1.1 关于在线考试 1 1.2 在线考试系统的发展趋势 1 1.3 相关知识介绍 2 、JDBC的概述
2、2 1.3.1 JSP 、 JavaBean 、 ervlet 第二章系统的分析与设计 3 2.1 需求分析 3 2.2 总体设计 3 2.3 功能设计 4 第三章数据库设计 5 第四章系统实现 7 4.1 出卷模块的实现 7 4.2 在线考试模块的实现 13 4.3 在线批改模块的实现 24 4.4 题库模块的实现 26 第五章开发技巧 30 第六章系统测试 31 6.1 系统测试 31 第七章结束语 33 参考文献 34 第一章 前言 1.1 关于在线考试 随着网络技术的飞速发展,现在很多国外的大学和社会其他部门都已经开设了远程教 育,通过计算机网络实现异地教育和培训。现在,计算机硬件技术
3、的发展已经达到了相当 高的水平。但是,远程教育软件的开发目前还处于起步阶段,随着这项技术的不断深入发 展,就要求有更好、更完善的软件系统应用到远程教育当中去,这就给软件设计人员提出 了更高的设计要求。 远程教育包括很多环节,例如教案系统、答疑系统和考试系统等等。其中很重要的一 个环节就是在线考试系统,同时它也是最难实现的环节。在我国,虽然远程教育已经蓬勃 地发展起来,但是目前学校与社会上的各种考试大都采用传统的考试方式,在此方式下, 组织一次考试至少要经过五个步骤,即人工出题、考生考试、人工阅卷、成绩评估和试卷 分析。显然,随着考试类型的不断增加及考试要求的不断提高,教师的工作量将会越来越 大
4、,并且其工作将是一件十分烦琐和非常容易出错的事情,可以说传统的考试方式已经不 能适应现代考试的需要。 1.2 在线考试系统的发展趋势 随着计算机应用的迅猛发展,网络应用不断扩大,如远程教育和虚拟大学的出现等 等,且这些应用正逐步深入到千家万户。人们迫切要求利用这些技术来进行在线考试,以 减轻教师的工作负担及提高工作效率,与此同时也提高了考试的质量,从而使考试更趋于 公证、客观,更加激发学生的学习兴趣。例如目前许多国际著名的计算机公司所举办的各 种认证考试绝大部分采用这种方式。 在线考试是现阶段研究开发的一个热点。它是建立在国际互联网上的应用系统,客户 端的配置可以极为简单,使考试不受地域的局限
5、。一个完备的在线考试系统可以使用户在 网上学习过后及时检验自己的学习效果,已发现自己的不足,使得学习效率得到很大提 高。在线考试系统中题目的生成、试卷的提交、成绩的批阅等都可以在网络上自动完成。 只要形成一套成熟的题库就可以实现考试的自动化。这样一来,教师所要做的只是精心设 计题目、维护题库,而不是组织考试,从而大大减轻了教师的负担,这表明其经济性是相 当可观的。为了适应新形势的发展,我进行了这一系统的初步设计工作,也可以说是做一 个初步的探索,希望它能够在各类考试中发挥高效、便捷的作用 , 把老师从繁重的工作中解 脱出来 目前,网络应用软件运行的模式主要有二类: Client/server
6、模式, Browser/Web 模 式。前者主要的缺点是维护、升级较麻烦,后者是近几年伴随 Internet 迅速发展起来的一 种技术,它与客户 / 服务器方式类似,客户端是一个标准的浏览器,服务器端是 Web Server ,而 Web Server 与数据库和应用服务器的紧密结合,使得这种模式的应用范围不 断扩大,它已不仅仅用于网上查询,有很多部门的业务系统、企业的 MIS 系统纷纷采用这 种模式,它的主要优点是便于扩充应用、升级维护简便。 另外,考试系统的软件也必将不断的更新;同时软件产品本身就要经过一个不断自我 完善的过程。 基于上述考虑,用 JSP 设计考试系统比较合适,现实了动态页
7、面与静态页面的分离, 脱离了硬件平台的束缚以及编译后运行等方式,大大提高了其执行效率而逐渐成为 Internet 上的主流工具。在美国, EJB+Servlet+JSP 几乎成了电子商务的开发标准,而在 我国也正逐渐兴起,不少网站都采用 JSP 技术。 1.3 相关知识介绍 该在线考试系统主要采用 Microsoft .net Framework、 JSP、 SQL Server 数据库、 My Eclipse7.5 、 Dreamweaver CS、 Tomcat6.0 等技术和工具,整体设计遵循软件工程的 方法,经过需求分析、总体设计、文档和代码的编制、模块测试和系统实现几个阶段 . 1.
8、3.1JSP 、JavaBean 、ervlet 、 JDBC 的概述 JSP的概述: JSP(JavaServer Pages) 是由 Sun Microsystems 公司倡导、许多公司参与一起建立的 一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML文件 (*.htm,*.html) 中插入 Java 程序段 (Scriptlet) 和 JSP 标记 (tag) ,从而形成 JSP 文件 (*.jsp)。 Web 服务器在遇到访问 JSP 网页的请求时,首先执行其中的程序段,然后将执 行结果连同JSP文件中的HTML代码一起返回给客户。插入的Java程序段可以操
9、作数据 库,重新定向网页以及发送 E-mail 等,这就是建立动态网站所需要的功能。所有程序操作 都在服务器端执行,网络上传给客户端仅仅是结果,对客户浏览器的要求最低。在Java 的 基础上开发的 JSP 实现了动态页面与静态页面的分离,脱离了硬件平台的束缚以及编译后 运行等方式,大大提高了其执行效率而逐渐成为了 Internet 上的主流开发工具。在美国, EJB+Servlt+JSP 几乎成为了电子商务的开发标准, 而在我国也正逐渐兴起,不少 网站 都采用了 JSP技术。 JavaBean 的概述: JavaBean是一种JAVA语言写成的可重用组件。为写成JavaBean,类必须是具体的
10、和公共 的,并且具有无参数的构造器。 JavaBean 通过提供符合一致性设计模式的公共方法将内部 域暴露成员属性。众所周知,属性名称符合这种模式,其他Java 类可以通过自身机制发 现和操作这些 JavaBean 属性。 用户可以使用 JavaBean 将功能、处理、值、数据库访问和其他任何可以用 java 代码 创造的对象进行打包,并且其他的开发者可以通过内部的JSP 页面、 Servlet 、其他 JavaBean、applet 程序或者应用来使用这些对象。用户可以认为 JavaBean 提供了一种随 时随地的复制和粘贴的功能,而不用关心任何改变。 Servlet 的概述: Servle
11、t 是一种服务器端的 Java 应用程序,具有独立于平台和协议的特性 ,可以生成 动态的 Web页面。它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器响应 (HTTP服务器上的数据库或应用程序)的中间层。 Servlet 是位于Web服务器内部的服 务器端的 Java 应用程序,与传统的从命令行启动的 Java 应用程序不同, Servlet 由 Web 服务器进行加载,该 Web服务器必须包含支持Servlet的Java虚拟机。 Servlet 的工作模式 1. 客户端发送请求至服务器 2. 服务器启动并调用 Servlet , Servlet 根据客户端请求生成响应内容并将其传
12、 给服务器 3. 服务器将响应返回客户端 4. JDBC 是通用的 SQL Server( 结构化查询语言 ) 数据库存取框架,带有 简单且功 能强大的应用程序接口(AP I)。利用JDBC API, Java开发人 员可以在单一的标准化功 能库中编码,生成独立于数据库管理系统(D BMS)的Java应用系统。兼容 JDBC的应用 程序 可利用JDBC驱动器模块,反过来与后端数据源通信。这些元件化的JDBC驱动器可 换入换出,以适应不同的数据库后端设备。 第二章系统的分析与设计 2.1需求分析 在线考试系统主要包括自动出卷,在线答题,在线批改和题库等功能。基本上包括了 在线考试系统应该聚有的基
13、本功能,。 根据在线考试系统的基本需求,系统需要完成以为的具体任务。 (1)自动出卷:一个完整的在线考试系统首先必须具有能够满足用户需要的试卷,并且针 对不同的用户要有不同的试卷,自动出卷模块就能够满足用户的这个需求,可以由系统管 路员对试卷格式进行设置,然后由系统自动从题库中选择题目生成试卷。 (2)在线答题:试卷生成以后,用户能够在系统中选择一份试卷进行答题。 (3 )在线批改:用户答题完成以后,把试卷提交给系统,系统能够在线批改,并及时的把 结果返回给用户。 (4 )题库:题库是生成试卷的基础,把所有收集到的题目分类存入题库中,生成试卷时随 机的从题库中取出题目,组合成一张试卷。 图1.
14、1在线考试用例图 2.2总体设计 2.2.1UML业务逻辑图 在线考试系统主要的操作: 图2.1在线考试系统逻辑图 选择试卷自动出卷 在线考试 在线批改 返回成绩 222 系统结构 表2.2 系统结构表 出卷模块 考试模块 批改模块 Chujua n.jsp Chujua nl.jsp Shijua nbia nhao.jsp Kaoshi.jsp Xua nzeti.jsp Xua nzeti_view.jsp Pan dua nti.jsp Kaosh1.jsp 2.3功能设计 根据系统的需求分析,明确系统的功能主要包括以为4个部分。 (1)出卷,该模块实现试卷的生成功能。鉴于主观题的主观
15、性,目前无法实现系统自动判 卷,所以本系统只作客观题部分。一般情况下,单选题往往在四个供选的答案A、B C、D 中选择唯一正确的答案; (2 )在线考试。该模块是用户考试的窗口,用户在此部分进行答题,并提交。 (3 )在线批改。该模块实现答题正误的判断和对试卷进行评分的功能。 (4)题库。系统用该模块来存储考试试卷,以备出卷时调用。 第三章数据库设计 依据系统分析,数据库主要由以下几张表组成。 试卷信息表(shijuan ).表名为shijuan,存放试卷题目的信息。 表3.1试卷信息表 字段 说明 类型 备注 Shijua nbiaohao 试卷编号 int timu 题目 varchar(
16、800) 题目内容 fen zhi 分值 int 题目的分值 timuleixi ng :题型 varchar 10 不可为空 id 题目的ID int 外键 kaoshishijua n :考试时间 int 单位:分 创建试卷信息表的代码: CREATE TABLE shijua n( shijuanbiaohao int NULL, timu varchar (800) COLLATE chi nese_ PRC_CI_AS NULL, fenzhi int NULL, timuleixing varchar (10) COLLATE chinese _PRC_CI_AS NULL, id
17、 varchar (10) COLLATE chin ese _PRC_CI_AS NULL, kaoshishijua n int NULL ) 选择题题库信息表(xuanzeti ).表名为xuanzeti,存放选择题题库信息。 表3.2选择题题库信息表 字段 说明 类型 备注 id 题目id int 主键 timn :题目 varchar(800) 不可为空 daa n 正确答案 varchar(200) 不可为空 zha ng 早节 int 题目所属章节 a I A选项 varchar(50) 不可为空 b B选项 varchar(50) 不可为空 c c选项 varchar(50)
18、不可为空 d D选项 varchar(50) 不可为空 nandu :难度系数 int 创建选择题题库信息表的代码: CREATE TABLE xua nzeti( id i nt NOT NULL, tiga n varchar (800) COLLATE chi nese_PRC_CI_AS NOT NULL, daa n varchar (200) COLLATE chi nese_PRC_CI_AS NOT NULL, zhang int NOT NU LL, a varchar (50) COLLATE chi nese_PRC_CI_AS_ NOT NULL, b varchar
19、(50) COLLATE chi nese_PRC_CI_AS_ NOT NULL, c varchar (50) COLLATE chi nese_PRC_CI_AS_ NOT NULL, d varchar (50) COLLATE chi nese_PRC_CI_AS_ NOT NULL, nan du i nt NULL, CONSTRAINT pk_xu nazeti PRIMARY KEY CLUSTERED ( id )ON PRIMARY ) 判断题题库信息表(panduanti ).表名为panduanti,存放判断题题库信息。 表3.3判断题题库信息表 字段 说明 类型 备
20、注 id 题目id Int 主键 timn 题目 varchar(800) 不可为空 daa n :正确答案 varchar(200) 不可为空 zha ng 早节 int 题目所属章节 nandu :难度系数 int 创建判断题题库信息表的代码: CREATE TABLE pa ndua nti( id i nt NOT NULL, tiga n varchar (800) COLLATE chin ese_PRC_CI_AS_ NOT NULL, daa n varchar (200) COLLATE chi nese_PRC_CI_AS_ NOT NULL, zhang int NULL
21、, nandu int NULL, CONSTRAINT pk_pa ndua nti PRIMARY KEY CLUSTERED ( id )ON PRIMARY ) 主观题题库信息表(zhuguanti ).表名为zhuguanti ,存放主观题题库信息。 表3.4主观题题库信息表 字段 说明 类型 备注 id 题目id Int 主键 timn :题目 varchar(800) 不可为空 daa n 正确答案 varchar(200) 不可为空 zha ng 早节 int 题目所属章节 nandu :难度系数 int 创建主观题题库信息表的代码: CREATE TABLE pa ndua
22、nti( id i nt NOT NULL, tiga n varchar (800) COLLATE chin ese_PRC_CI_AS_ NOT NULL, daa n varchar (200) COLLATE chi nese_PRC_CI_AS_ NOT NULL, zhang int NULL, nandu int NULL, CONSTRAINT pk_zhugua ntiti PRIMARY KEY CLUSTERED ( id )ON PRIMARY ) 用户考试信息表(students_xuanze )。表名为 students_xuanze, 存放用户考试信 表3.5用
23、户考试信息表 字段 说明 类型 备注 id 用户ID Int 主键 uid ;用户名 varchar(10) zha ng 早节 int rightco unt 正确题数 int dayn time :考试时间 varchar(30) 创建用户考试信息表的代码: CREATE TABLE stude nts xua nze( id i nt IDENTITY (1,1) NOT NULL, uid varchar (10) COLLATE chinese PRC CI AS NULL, zhang int NULL, rightcou nt i nt NULL, da yn time varc
24、har (30) COLLATE chi nese_PRC_CI_AS NULL ) 第四章系统实现 本系统是一个 JSP,后台数据库用的是SQL Server,用Tomcat做Web服务器,本系统 实现了在线考试中的核心功能,程序在Win dows环境下经过测试能够运行。 4.1出卷模块的实现 该模块有chujuan.jsp 和chujuan1.jsp 两个JSP页面来实现,其中chujuan.jsp 页面 主要负责出卷表单的填写和提交,chujuan1.jsp负责把chujuan.jsp页面提交的数据进行 处理后插入数据库。 1. chujua n.jsp chujua n.jsp页面的界
25、面。 1 瘁一电丹Mb 1 刊断蹩遮日= 每一題垃flb r 主确曲启月 1 考试吋M 1 5H中 图4.1 chujuan.jsp 页面的界面 在毓甘Lit眾轴-Eer 左祥 “ ft loo% - 程序说明:出卷信息输入页面。 程序模块名称:chujua n.jsp 。 相关数据库:无。 chujua n.jsp页面的代码 chujua n.jsp 出卷  。 选择题数目: 每一题分值: 1 2 3 4 5 6 7 8 9   。 判断题数目: 每一题分值: 1 2 3 4 5 6 7 8 9  。 主观题数目:   。   。   。 考试
26、时间: 分钟   。   。 试卷编号: 1 2 3 4   。   。 单击 chujuan.jsp 页面的“提交”按钮,提交数据,然后由 chujuan1.jsp 进行处理。 chujuan1.jsp 页面的工作原理是根据 chujuan.jsp 提交的参数,从不同的题库中随机选出 题目组成一份试卷。最后把选出的结果插入数据库。 2.chujuan1.jsp 程序明白:出卷结果提交页面。 程序模块名称: chujuan1.jsp 。 相关数据库:试卷表 shijuan 。 chujuan1.jsp 页面的代码。 function backward() his
27、tory.back() 。 function teacher() window.location=UntitledFrameset-5.htm 。 添加成功 =0。 c-) if(ai=ac) randomNum(a,i,j) 。 % 本试卷编号已经存在,请重新选择填写编号。 % else int xuanzeshumu=Integer.parseInt(request.getParameter(xuanzeshumu)。 int xuanzefenzhi=Integer.parseInt(request.getParameter(xuanzefenzhi)。 int panduanshumu
28、=Integer.parseInt(request.getParameter(panduanshumu)。int panduanfenzhi=Integer.parseInt(request.getParameter(panduanfenzhi) int zhuguanshumu=Integer.parseInt(request.getParameter(zhuguanshumu) int zhuguanfenzhi=0 。 int kaoshishijian=Integer.parseInt(request.getParameter(kaoshishijian) int i=0 。 int
29、j=new int 30 。 System.out.println(4) 。 for(i=0 。ixuanzeshumu。i+) randomNum(j,i,30) 。 sql=SELECT * from xuanzeti where id=+ji。 rs=stmt.executeQuery(sql) 。 / while(rs.next() rs.next() 。 int id=Integer.parseInt(rs.getString(id)。 String timu=rs.getString(tigan)。 System.out.println(timu) 。 String timulei
30、xing=xuanzeti。 Stringsql1=insertinto values(+shijuanbianhao+,+timu+,+xuanzefenzhi+,+timuleixing+,+ id+,+kaoshishijian+)。 stmt.executeUpdate(sql1) 。 / System.out.println(5)。 for(i=0 。 ipanduanshumu 。 i+) randomNum(j,i,20) 。 sql=SELECT * from panduanti where id=+ji。 rs=stmt.executeQuery(sql) 。 rs.next
31、() 。 int id=Integer.parseInt(rs.getString(id)。 String timu=rs.getString(tigan)。 String timuleixing=panduanti。 Stringsql1=insertinto values(+shijuanbianhao+,+timu+,+panduanfenzhi+,+timuleixing+, +id+,+kaoshishijian+)。 stmt.executeUpdate(sql1) 。 System.out.println(6)。 for(i=0 。 i 4.2 在线考试模块的实现 该模块主要由
32、shijuanbiao.jsp 和 kaoshi.jsp 两个页面来实现。 shijuanbiao.jsp 页 面是试卷选择页面,在 IE 中输入 http:/localhost:8080/test/shijuanbiao.jsp ,进入 试卷选择页面,选择一份试卷,程序把试卷编号提交给 kaosh.jsp 页面, kaosh.jsp 根据 提交的试卷编号显示出试卷内容,考生即可进行考试了。 1. kaosjh.jsp 程序说明:考试页面。 程序模块名称: kaoshi.jsp 。 相关数据库:试卷表 shijuan 、题目类型表 timuleixing. kaoshi.jsp 页面的代码:
33、在线考试 模拟试卷 input type=hidden name=shijuanbianhao value= 考试时间为 分钟 、选择题:(以下单选题每题 分) 、 input type=hidden name=timuleixing value= input type=hidden name=fenzhi value= input name=myans type=radio value=a /A. input name=myans type=radio value=b /B. input name=myans type=radio value=c /C. input name=myans t
34、ype=radio value=d /D. 二、判断题:(每题 分) 、 input type=hidden name=timuleixing value= input type=hidden name=fenzhi value= input name=myans type=radio value=t /T. input name=myans type=radio value=f /F. 三、主观题:(每题 分) 。 、 %String Qus=rs1.getString(tigan) input type=hidden name=timuleixing value= input type=h
35、idden name=fenzhi value= 答 案 是 :textarearows=10cols=70 name=myans input type=hidden name=timuzongshu value= 提交(考虑清楚哦 ) / 清除 (也要考虑 input name=submit1 type=submit class=button1 value= 本程序还可以查看考试的历史情况,该功能由 xuanzeti.jsp 和 xuanzeti_view.jsp 实现。 2 . xuanzti.jsp 程序说明:选择题考试页面。 程序模块名称: xuanzeti.jsp 。 相关的数据库:
36、选择题表 xuanzeti 、学生答题情况表 students_xuanze xuanzeti.jsp 页面的代码 : charset=gb2312 language=java 。 charset=gb2312 / meta http-equiv=Content-Type content=text/html 选择题   。 input type=hidden name=zhang value= 、 input name=myans type=radio value=a / A. input name=myans type=radio value=b / B. input name=my
37、ans type=radio value=c / C. input name=myans type=radio value=d / D. input name=submit1 type=submit class=button1 value= 提交 / input name=submit2 type=reset class=button1 value= 清除 / 本章暂时没有题目 % else /int i=(int)session.getAttribute(i) /String zhang1=request.getParameter(zhang) int j=1 。 for(j=1 。 j 第
38、 %=j%题您 未作答 题目是 答案是 、 答 对 了 答 错 了 题目是 答案是 、 题中您共答对了 题 a href=xuanzeti.jsp?zhang= 不甘心!再来一次 查 看 我 以 往 做 过 的 情 况   。   。 3.xuanzeti_view.jsp 程序说明:选择题考试历史情况查看页面。 程序模块名称 :xuanzeti_view.jsp 。 相关数据库:学生答题情况 students_xuanze 。 xuanzeti_view.jsp 页面的代码: 考试历史情况查看 同学,第 章 的 题 目 , 做 对 了 题 , 做 题 时 间 为 。 &nbs
39、p 。   。   。   。   。   。 4.3 在线批改模块的实现 该模块主要由 kaoshi1.jsp 页面实现, kaosh.jsp 页面提交答卷信息给 kaoshi1.jsp 页 面, kaosh1.jsp 页面把答卷信息与数据库中的正确答案进行比较,最后返回考试结果。 程序说明:批改页面。 程序模块名称: kaoshi1.jsp 。 相关数据库:无 . kaoshi1.jsp 页面的代码: meta http-equiv=Content-Type content=text/html 批改结果 charset=gb2312 language
40、=java HTML 4.01 Transitional/EN 。 charset=gb2312 % Class.forName(sun.jdbc.odbc.JdbcOdbcDriver) 。 String driver = jdbc:odbc:try 。 String user=jsp 。 String password=820728 。 Connection conn = DriverManager.getConnection(driver,sa,sa) Statement stmt = conn.createStatement() 。 int i=0 。 int zongfen=0 。
41、int shijuanbianhao=Integer.parseInt(request.getParameter(shijuanbianhao) int timuzongshu=Integer.parseInt(request.getParameter(timuzongshu) String timuleixing=new String() 。 for(i=1 。i 第%=i%=题错 第%=i%=题对 第%=i%=题错 vfont size=+1 color=#0099CC除主观题外,客观题的得分是%=zo ngfen%:分 4.4题库模块的实现 题库模块的实现只需把收集到的题目信息分类插入到
42、数据库中,是一个简单的数据库 操作。题目添加模块界面: 图4.2 题目添加界面 | i :rtr速*MW 皆-Iiiri=imi=fcr F=”mhrir(Air 亦件g* 0迪“ | Http: /jQccillhci=t: fe!CJfeJO/ulhoipHE/ i1 妬檢 fekdtvhj 百 JJwl 独:1有l.KAd占H 海i爭朽价甘 wh冋址 尢辛 迪逗E电尿:春j于壇嘶吹 X 页面负责表单数据 该模块主要由tiku.jsp 页面和tiku1.jsp 页面来实现,其中 tiku.jsp 的提交,由tiku1.jsp页面负责把数据插入数据库中。 1.tiku.jsp 程序说明:题库
43、信息输入页面。 程序模块名称:tiku.jsp 。 相关数据库:无 tiku.jsp页面的代码: VDOCTYPEHTML PUBLIC -/W3C/DTD charset=gb2312 HTML 4.01 Ian guage=java Tran siti on al/EN /TR/html4/loose.dtd 题库创建  。 题目类型: 选择题 判断题 主观题 所属章节: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 章  。 题目:   。 正确答案 :  。 难度系数: 1 2 3 4  
44、 。 2.tiku1.jsp 程序说明:题库信息提交页面。 程序模块名称: tiku1.jsp 。 相关数据库:题库表 tixing 。 tiku1.jsp 页面的代码: function backward() history.back() 。 function teacher() window.location=UntitledFrameset-5.htm 题目添加 =0。 c-) if(ai=ac) randomNum(a,i,j) 。 % 题目添加成功 第五章 开发技巧 在程序的开发过程中,经常会碰见一些程序上的异常。早期的编程语言没有异常处理,通 常是遇见错误返回一个特殊的值或设定一个
45、标志,并以此判断是不是有错误产生。随着系 统规模的不断扩大,这种错误处理已经成为创建大型可维护程序的障碍了。于是在一些语 言中出现了异常处理机制,比如在 Basic 中的异常处理 语句“ on erro goto ” , 而 java 则 在C+基础上建立了新的异常处理机制。java通过面向对象的方法进行异常处理,把各种 不同的异常进行分类,并提供了良好的接口。这种机制为复杂程序提供了强有力的控制方 式。同时这些异常处理与“常规”代码分离,增强了程序的可读性,编程程序时也显得更 灵活。 在 Java 中,每个异常都是一个对象,它是 Throwable 类或其他子类的实力。当一个方法出 现异常后
46、便抛出一个 异常对象,该对象中包含有异常信息,调用这个对象的方法可以捕获 到这个异常并 进行处理。 Throwable 类有连个标准子类: java.lang.Erro 和 java.lang.Exception, 即错误和异常。 错误 Erro 类一般是指虚拟机相关的问题,如系统崩溃、虚拟机出错误、动态链接失败等, 这一类错误无法恢复或不可能捕获,将导致应用程序中断。异常Exception 类则是指一些 可以被捕获且可能恢复的异常情况。 java 的异常处理机制是通过保留字 try 、catch 、throw 、throws 和 finally 来进行处理 的。一般情况下是用 try 来执行
47、一段程序,如果出现异常,系统会抛出( throws )一个异 常,这时候可以通过它的类型来捕获( catch )它,或最后( fially )由缺省处理器来处 理。 关于 5 个与异常相关的保留字的用法。 try语句。try语句用大括号指定了一段代码,该段代码可能会抛出一个或多个异常。 catch语句。catch语句的参数类似于方法的声明,包括一个异常类型和一个异常对象。 异常类型必须为 Throwable 类的子类,它指明了 catch 语句所处理的异常类型,异常对象 则由运行时系统在 try 所指定的代码块中生成并被捕获,大括号中包含对象的处理,其中 可以调用对象的方法。 catch 语句
48、可以有多个,分别处理不同类的 异常。 java 运行时系统 从上到下分别对每个 catch 语句处理的异常类型进行检测,直到找到类型相匹配的catch 语句为止。这里,类型匹配指 catch 所处理的异常类型与生成的异常对象的类型完全一致 或者是它父类,因此, catch 语句的排列顺序应该是从特殊到一般。也可以用一个catch 语句处理多个异常类型,这时它的异常类型参数应该是这多个异常类型的父类,程序设计 中 要根据具体的情况来选择 catch 语句的 异常处理类型。 fin ally语句。try所限定的代码中,当抛出一个异常时,其后的代码不会被执行。通 过 finally 语句可以指定一块
49、代码。无论 try 所指定的程序块中抛出或不抛出异常,也无 论 catch 语句的异常类型是否与所抛出的异常类型 一致, finally 所指定的代码都要被执 行,它提供了统一的出口。通常在 finally 语句中可以进行资源的清除工作。 throws语句。throws总是出现在一个函数头中。用来标明成员函数可能抛出的各种异 常。对大多数 Exception 子类来说, java 编译器会强迫声明在一个成员函数中抛出的异常 的类型。如果异常的类型是 Error 或 RuntimeException, 或它们的子类,这个规则不起作 用 , 因 为 这 在 程 序 的 正 常 部 分 中 是 不
50、期 待出 现 的 。 如 果 想明 确 地 抛 出 一 个 RuntimeException, 必须用 throw 语句来声明它的类型。 throw语句。throw总是出现在函数体中,用来抛出一个异常。程序会在throw语句后立 即终止,它后面的语句执行不到,然后在包含它的所有 try 块中从里向外寻找含有 与其匹 配的 catch 子句的 try 快。 第六章 系统测试 6.1 系统测试 出现界面的: 在浏览器中输入 http:/localhost:8080/news/test/index.jsp, 图 6.1 主页界面 *庄銭龙法实找-irtemet Expkor SWt) *)奇世)卑淮
51、迦工具 回区| 丿 X 勿奋*他hgH/bcatwstiSOSd/diaplt!.! 耶H叵斎 2 访 Q百用 JME 初却!陌JBE務2诵馮越国呈宦|样协帮枱网址业 射迅誥电品拥車題鬲溜 | 在花泉娠K 出卷 魄毬来到在裟尊试罷兢- E tt i4 当的耳 201043-07 12T 0.0.1 S3库 iDCUlDEt 卿冷容 Ji 屜未来訥柯 3 out !*.- /.-.:* X 一出建 A在鶴斗谕 逮看壇试逛 -K JF 換姒卷i开始考试) 噢如2 f幵蛤考试) 摟拟卷3(开始考试) 澳姒卷4界始考试) 冷立&曲菲曲櫛E3* .i 它,4(3.1* 静100% 选择试卷列表中的一份试卷进入考试页面,用户在该页面进行答题,答题完成以后单击 “提交”按钮,上交答卷,系统立刻回返回一个考试结果。 第七章 结束语 本考试系统功能并不完善只是实现了基本的在线考试功能,美工方面也并没有下太多 功夫,只是实现功能而已,界面看起来有些单调,并且现在还没有加入试卷,功能还很不 完善。以上只是系统进行考试功能的部分,要对系统进行管理,如后台管理部分,系统的 总体结构可以主要包括:用户登陆,系统管理模块,考生管理模块,监控中心模块。 系统管理模块包括管理员登陆、更改密码、高级管理、添加管理员、删除管理员四大 模块。 管 理 员 登 陆 输入 :管 理
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 四川省广元市朝天区五校联考2026届数学八年级第一学期期末调研模拟试题含解析
- 广东省珠海香洲区四校联考2026届数学七上期末联考试题含解析
- 低碳环保产业中的新热点:生物质能源产业的多元化发展策略
- 物流行业新员工上岗前必读培训指南
- 情绪管理零食行业趋势预测报告
- 山东省济宁兖州区七校联考2026届数学八上期末质量跟踪监视模拟试题含解析
- 中国银行十堰市房县2025秋招英文面试20问及高分答案
- 工商银行包头市青山区2025秋招英文群面案例角色分析
- 邮储银行安康市汉滨区2025秋招笔试会计学专练及答案
- 中国银行张家口市蔚县2025秋招笔试会计学专练及答案
- 项目需求分析文档(模板)
- 长阳清江画廊
- 四川2023年专业技术人员公需科目“数字经济与驱动发展”参考答案(通用版)
- 液压泵站使用说明书
- 职工三级安全教育卡模版
- 化工企业物料编码规则物料分类清晰、编码简短、容易识别
- 新疆民族团结模范人物
- 儿科学腹泻病
- CT介入学及CT引导下肺穿活检术课件
- 污染场地环境风险管理与原位地下水修复技术 陈梦舫
- 牡蛎在肾病科的应用总结
评论
0/150
提交评论