(完整版)基于jsp(java)驾校考试系统的设计和开发毕业论文
- 格式:doc
- 大小:790.50 KB
- 文档页数:44
毕业设计(论
文)
基于jsp(java)驾校考试系统的设计和开发
姓名
系别、专业
导师姓名、职称
完成时间
摘要
在网络技术逐渐渗入社会生活各个层面的今天,传统的考试方式也面临着变革,而网上考试则是网络技术一个很重要的发展方向。
网上考试一方面可以突破时空的界限;另一方面考生在自己熟悉的环境中考试也会更自在,能更好地发挥自己的真实水平,网络考试方式将是以后考试发展的趋势。
本论文主要阐述了基于Web技术的驾校考试系统的设计与实现。
论文首先对系统设计所涉及的相关技术进行逐一介绍,并主要对该系统的设计概要以及系统的设计方法及功能也作了详尽说明,系统按照软件工程的思想进行系统设计,在需求分析的基础进行功能模块划分,然后对各个模块进行分析和详细设计,并用相关技术实现。
系统采用BS开发模式,以MyEclipse6.0作为开发平台,java语言为主要编程语言,结合JSP、JavaScript、Html、SQL等语言,以Tomcat 为服务器和SQL Server 2000为后台数据库。
最终开发一个拥有自动组卷、自动判卷、信息管理的驾校考试系统。
整个系统层次结构简单,操作容易,并具备一定的安全性。
考生借助此系统,可以随时随地的进行考试,同时老师使用该系统能更高效、便捷的组织在线考试。
关键词:驾校考试系统 BS开发模式 JSP
目录
第一章前言 ............................................................
1.1开发背景及意义.......................................................
1.2论文研究目标.........................................................第二章驾校考试系统需求分析.............................................
2.1需求概述.............................................................
2.2系统开发目标.........................................................
2.3功能需求.............................................................
2.4性能需求.............................................................
2.5开发方案的比较与选择.................................................
2.6系统开发环境及工具...................................................
2.6.1开发运行环境.......................................................
2.6.2开发工具的选取.....................................................第三章驾校考试系统的设计...............................................
3.1系统数据流程描述.....................................................
3.2系统总体结构设计 (1)
3.3功能模块设计 (1)
3.3.1考试模块 (1)
3.3.2查询成绩模块 (1)
3.3.3试卷管理模块 (1)
3.3.4信息管理模块 (1)
3.3.5判卷模块 (1)
第四章系统后台数据库设计 (1)
4.1数据库连接 (1)
4.1.1配置SQL server 2000 (1)
4.1.2连接数据库 (1)
4.2数据库设计概述 (1)
4.2.1数据表实现 (1)
4.2.2系统总体E-R图 (1)
第五章驾校考试系统的实现 (2)
5.1考试模块 (2)
5.2成绩查询模块 (2)
5.3试卷管理模块 (2)
5.4信息管理模块 (2)
5.5组卷模块 (3)
第六章系统运行与测试 (3)
6.1测试概述 (3)
6.2系统部分单元测试方法 (3)
6.3测试截图 (3)
6.4测试总结 (3)
结论38
谢辞39
参考文献40
第一章前言
1.1 开发背景及意义
在网络技术逐渐渗入社会生活各个层面的今天,传统的考试方式也面临着变革,而网上考试则是一个很重要的方向。
基于Web技术的网络考试系统可以借助于遍布全球的Internet进行,相对于传统的白纸黑字考试模式来说,网上考试一方面可以突破时空的界限,使考生可以足不出户进行考核,这就减除了组织考场和考生奔波于考场所造成的资源消耗和环境污染,符合现代人的绿色生活理念。
另一方面,考生在自己熟悉的环境中考试也会更自在,能更好地发挥自己的真实水平。
而且由于网上考试利用了现代化技术,还由其自身属性衍生出一些有利于考试的功能作用。
网上考试的试卷可以根据题库中的内容即时生成,可避免考试前的压题;而且可以采用大量标准化试题,从而使用计算机阅卷,大大提高阅卷效率;还可以直接把成绩送到数据库中,进行统计、排序等操作。
这样考试的公平性、答案的安全性可以得到有效的保证。
因此,采用网络考试方式将是以后考试发展的趋势。
网上考试在国外一些国家已经得到了蓬勃发展,人们选学课程和考试都是通过网上进行的。
例如国外一些著名的考试,如Microsoft公司的MCSE(Microsoft系统工程师认证考试)、GMAT(工商管理硕士入学考试)、托福考试、GRE(美国研究生入学考试)等,都是采用网上考试的形式进行的。
在国内,目前绝大多数考试还停留在传统考试方式上,对互联网的真正应用仅限于一些考试的网上报名和成绩查询,还没有真正形成网上考试规模。
因此,研究开发驾校考试系统有利于我国教育事业与国际接轨和促
进绿色环保型教育的发展。
1.2论文研究目标
本系统结合实际需求,提供学员上网考试、立即查询成绩,教官添加、修改、删除试题和考试科目信息,管理学员成绩,管理员管理教官和学员资料等功能。
力求成为一个符合大众操作习惯的,能运用到实际中去的人性化系统。
其中运用到的技术有:java、JSP、 SQL server 2000、css网页美工、photoshop图形处理。
第二章驾校考试系统需求分析
2.1 需求概述
根据对考试过程的实际调查了解,在整个考试过程中,主要涉及到组织考生考试和老师批改试卷两个方面,对考试组织方而言,他们需要事先布置好考场,准备好足够的试卷,做好考试监督。
对老师方面而言,老师需要在考后进行大量的试卷批改工作。
就这两方面所耗费的人力物力资源都是不少的,这就与现今人们绿色环保的生活理念相驳了。
然而,网上考试一方面可以突破时空的界限,使考生可以足不出户进行考核,这就减除了组织考场和考生奔波于考场所造成的资源消耗和环境污染,符合现代人的绿色生活理念。
另一方面,考生在自己熟悉的环境中考试也会更自在,能更好地发挥自己的真实水平。
而且由于网上考试利用了现代化技术,就可以省去了老师批改试卷的步骤了。
因而,网上考试是未来的潮流。
2.2 系统开发目标
一、功能目标
基于上述对系统开发背景的描述和对系统需求的描述,驾校考试系统的设计应达到以下的目标:
(1)极大地利用网上无限的优秀试题资源,从而整理出庞大的优秀试题数据库。
(2)使考生在不同的地理位置上也能正常参加考试,打破了传统的纸笔考试的局限性。
(3)教官可以根据自己的丰富教学知识设计新的试题。
二、其它目标
实用性:要为网上考试提供方便。
操作简单:本系统应该适用于不同水平的使用者,包括教官和学员,同时系统不应太复杂和烦琐,因此要求系统的操作尽可能简单易行。
2.3 功能需求
在本次设计中,主要涉及到三种类型用户对该系统的使用,即学员、教官以及管理员。
这三种用户根据不同的用户姓名和密码登录,经过验证后进入各自的界面。
学员通过身份验证后进入考试窗口。
系统的考试窗口提供了三项功能选择:考试、查询成绩、自身资料修改。
考试:进入考试界面后选择还没考过的试卷进行考试。
查询成绩:考完试后立即可以查询到成绩,还可以看见以前的考试成绩。
自身资料修改:对自己的个人资料进行修改。
系统提供给教官的功能有:题库管理、添加新题、试卷管理、添加试卷、查询学员成绩、资料修改。
题库管理:对已有试题进行编辑和删除。
添加新题:给题库添加新的试题。
试卷管理:预览、(取消)发布、删除试卷的功能。
添加试卷:添加新的试卷。
查询学员成绩:查看本专业考过试的学员的成绩。
资料修改:对自己资料的修改。
系统提供给管理员的功能有:学院、班级、科目的管理和教官、学员、自身账户的管理。
教官账户管理:添加新教官、删除已有教官。
学员账户管理:添加新学员、删除已有学员。
自身账户管理:修改自身账户。
学院管理:添加新的学院、删除已有学院。
班级管理:添加新的班级、删除已有班级。
科目管理:添加新的科目、删除已有科目。
2.4 性能需求
(1)网络环境下的多用户系统。
信息主要存储在服务器端的数据库中,由各用户在规定的权限下在各自的客户端上录入、修改、删除相关的内容。
[2]
(2)数据的完整性和准确性。
录入数据采用表格方式,限制录入数据类型及取值范围以保证数据的完整性及准确性。
[4]
(3)数据安全性。
本系统采用二级安全保障。
第一级:依赖于网络本身对用户使用权限的规定。
第二级:在程序模块中通过使用密码控制功能对用户使用权限加以限制。
2.6 系统开发环境及工具
2.6.2 开发工具的选取
1、JSP技术
JSP的功能十分强大,它可以用来创建和运行动态网页或Web应用程序。
它可以与数据库和其它程序进行交互,是一种简单、方便的编程语言。
JSP的网页文件的格式是.jsp,现在常用于各种动态网站中。
JSP 网页可以包含HTML标记、普通文本、脚本命令以及COM组件等。
利用JSP可以向网页中添加交互式内容(如在线表单),也可以创建使用HTML网页作为用户界面的Web应用程序。
它利用JavaScript 或JA V A 脚本语言使用户的数据和服务器的数据进行交换,从而达到动态数据库
的目的。
当浏览器浏览JSP网页时, Web服务器就会根据请求生成相应的HTML代码然后再返回给浏览器,这样浏览器端看到的就是动态生成的网页。
[6]
2、系统数据库的选择
数据库技术在计算机软件领域研究中一直是非常重要的主题。
产生于60年代的数据库技术得到了迅速发展,并已形成较为完整的理论体系和一大批实用系统。
并且,近年来,随着World Wide Web(WWW)的猛增及Internet技术的迅速发展,使得数据库技术成为时下最热门技术之一。
作为一款基于WEB的驾校考试系统来说,数据库当然是不可缺少的一部分。
选择什么样的数据,对系统最终的实现起着至关重要的作用。
现在比较流行的大中型关系型数据库有IBM DB2、Oracle、SQL Server、Sybase、Informix等,常用的小型数据库有Access、Paradox、FoxPro等,现在个人用户比较常用的主要是基于中小型数据库MS SQL Server和Access的。
Access是一个数据库管理系统,它之所以被集成到Office中而不是Visual Studio中,是因为它与其它的数据库管理系统(如Visual FoxPro)相比更加简单易学,一个普通的计算机用户即可掌握并使用它。
而且最重要的一点是,Access的功能足够强大,足以应付一般的数据管理及处理需要。
SQL Server 是一种高效的关系数据库系统,它与Windows NT2000及Windows 9x等操作系统紧密集成。
这种安排使SQL Server能充分利用操作系统所提供的特性。
对于今天复杂的浏览器服务器系统来说,SQL Server是一个很好的选择。
[4]
第三章驾校考试系统的设计
3.1 系统数据流程描述
1、顶层数据流图:包含三个实体即考生、教官、管理员,六个数据处理即学员登录、学员考试、教官登录、教官管理、管理员登录、管理员管理。
该图反应出了驾校考试系统总的情况,其数据流如图3-1所示。
图3-1顶层数据流
2、学员考试数据流图:包括一个实体(学员)和考试、查询成绩等
多个数据处理,该图反应出了学员学习情况及三个数据存储。
学员通过考试来获得考试成绩。
其中,学员考试的试卷来自试卷数据库中,从成绩数据库可以查询考试分数,从资料记录中得到得到个人资料并且可以做出修改。
其数据流如图3-2所示。
图3-2学员模块数据流图
3、教官管理数据流图:包括一个实体(教官)和试题管理、试卷管理等多个数据处理及六个数据存储。
该图体现了教官对系统的管理情况,教官通过试题管理、试卷管理、添加试卷、添加试题来完成对试卷试题的编辑和发布。
教官从学员答题的情况和成绩的情况考虑应该增减什么试题试卷。
其数据流如图3-3所示。
图3-3 教官模块数据流图
4、管理员管理数据流图:包括一个实体(管理员)和学院管理、科目管理等多个数据处理及六个数据存储。
该图体现了管理员对系统的管理情况,管理员可以进行所有用户的账户管理和学院、班级、科目的管
理。
其数据流如图3-4所示。
图3-4 管理员模块数据流图
3.2 系统总体结构设计
本论文设计的驾校考试系统是利用Jsp和SQL server 2000技术来构建一个基于因特网的动态交互式考试信息化平台,该系统可以在WindowsXP局域网或Internet上使用。
在总体结构上是采用3层BS结构,各类教学资源在服务器一端,采取中心数据库SQL server 2000统一
存放和组织,学员在客户机一端,无须任何配置工作,只须使用浏览器向Web服务器代理提出请求,服务代理通过中间组件与数据库链接,把请求服务的考试内容以Web页面形式通过浏览器反馈给学员。
[6]系统由三个大模块和十五个小模块组成。
整个系统结构如图3-5所示。
图3-5系统结构图
3.3 功能模块设计
3.3.1 考试模块
由于采用Web技术实现,所以从理论上讲,考试可以在任何时候、任何地方进行,但是为了使考场易于组织和管理,所以本系统的考生必须先注册一下,然后才能进行考试,如果考生没有注册,系统也会认为是非法考生,系统给出提示信息,并重新定位到登录页面;如信息正确,则显示试卷页面,试卷页面上的试题内容根据考生输入的试卷代号从数据库中取出符合条件的记录动态地生成。
同时在页面上显示考试设定的时间,当考生点击“交卷”按钮时,系统就会把考生答案传送至服务器的数据库中保存起来,并把数据库中标记考生是否参加过考试的标记置为已考。
考试子系统是网络考试系统的核心部分,它的工作流程如图3-6所示:
图3-6 考试流程图
3.3.2 查询成绩模块
此模块可分为学员查询成绩模块与教官查询成绩模块。
学员登录后可以对自己的成绩进行查询,采取一考完就可以查询的模式,不过学员只能查询自己的成绩。
教官登录后也可以进行成绩查询,不过与学员不同的是,教官可以查询自己所教专业的所有学员的成绩。
工作流程如图3-7所示:
图3-7 成绩查询流程图
3.3.3 试卷管理模块
进行考试必须要有试卷,网上考试也不例外。
在此模块中教官可以对所有试卷进行管理,其中包括预览、发布和删除试卷。
3.3.4 信息管理模块
本模块主要分为两个部分。
一是教官用户管理,二是考生信息的管理。
这其中就包括对教官及考生信息的增加、修改与删除。
3.3.5 判卷模块
本系统的考试暂时只实现了客观单选题的考核,判卷流程如下:考生答完所有题目后提交试卷后,系统检索对应试卷的分数情况,然后开始核对每题的答案是否与正确答案一致,如答案一致就得到该题的分数,把每道正确答题的得分累计得总分,最后从成绩表中添加该考生该试卷的记录,填入考试分数。
第四章系统后台数据库设计
4.1 数据库连接
4.1.1 配置SQL server 2000
启动数据库,进入企业管理器后,对数据库按右键,选择所有任务 附加数据库,然后选择数据库备份,就可以添加数据库了。
4.1.2 连接数据库
在web中连接数据库,可以创建一个conn.java文件,然后编写代码如下:
public conn() {
try {
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver" );
} catch (Exception e) {
}
try {
String path =
"jdbc:microsoft:sqlserver:127.0.0.1:1433;DatabaseName=user1";
String name = "sa";
String word = "";
conn = DriverManager.getConnection(path, name, word);
} catch (Exception e) {
}
4.2 数据库设计概述
数据库系统的出现使信息系统从以加工数据的程序为中心转向围绕共享的数据库为中心的新阶段。
这样既便于数据的集中管理,又有利于应用程序的研制和维护,提高了数据的利用性和相容性,提高了决策的可靠性。
目前,数据库已经成为现代信息系统不可分割的重要组成部分。
数据库技术也是计算机领域中发展最快的技术之一。
数据库设计是把现实世界的实体模型与需求转换成数据库的模型的过程,它是建立数据库应用系统的核心问题。
数据库及其应用的性能都建立在良好的数据库设计的基础之上,数据库的数据是一切操作的基础,如果数据库设计不好,那么其它一切用于提高数据库性能的方法收效都是有限的。
数据库设计的关键是如何使设计的数据库能合理地存储用户的数据,方便用户进行数据处理。
设计数据库必须遵循一定的规则,在关系型数据库中,这种规则就是范式,范式是符合某一种级别的关系模式的集合。
一般我们设计数据库遵循第三范式。
即:数据库表中不包含已在其他表中包含的非主关键字信息。
采用范式减少了数据冗余,节约了存储空间,同时加快了增、删、改的速度。
[4]
4.2.1 数据表实现
网络考试系统离不开数据库系统的支持。
由于数据库独立于程序而存在,具有较好的安全性,不论是试题、答案,还是考生信息都需要存放在数据库中。
本系统的数据库采用Microsoft公司的大型数据库系统SQL Server 2000。
主数据库名为User1,现将主要表结构描述如表4-1下:
表4-1考题类型表
编号列名数据类型空标记主键说明
1 Id Int(4) NY 编号
2 leixing varchar(50) NN 考题题型
表4-2 班级表
编号列名数据类型空标记主键说明
1 ID Int(4) NY 编号
2 banji varchar(50) NN 班级名称
3 xueyuan varchar(50) NN 学院名称
表4-3 试卷信息表
编号列名数据类型空标记主键说明
1 Id int(4) NY 编号
2 shijuan_name varchar(50) NN 试卷名称
3 shijuan_bumen varchar(50) NY 试卷类型
4 timu_shuliang varchar(50) NN 题目数量
5 meitifenshu varchar(50) NN 每题分数
6 zongfen varchar(50) NN 总分
7 kaoshi_sj char(10) NN 考试时间
表4-4 人员表
编号列名数据类型空标记主键说明
1 id Int(4) NY 编号
2 Username Varchar(50) NN 账号
3 password Varchar(50) NN 密码
4 rname Varchar(50) NN 姓名
5 Timea Varchar(50) NN 生日
6 sex Varchar(50) NN 性别
7 Xueyuan Varchar(50) NN 学院
8 zhuanye Varchar(50) NN 专业
9 banji Varchar(50) NN 班级
10 xuehao Varchar(50) NN 学号
11 email Varchar(50) NN 邮箱
12 quanxian Varchar(50) NN 权限
表4-5 学院表
编号列名数据类型空标记主键说明
1 id int(4) NY 编号
2 xueyuan Varchar(50) NN 学院名称
表4-6 成绩表
编号列名数据类型空标记主键说明
1 id int(4) NY 编号
2 student_name varchar(50) NN 考生姓名
3 shijuan_name varchar(50) NN 试卷名
4 kaoshi_cj varchar(50) NN 考生成绩
5 zhuanye varchar(50) NN 专业
6 xueyuan varchar(50) NN 学院
7 username varchar(50) NN 考生账号
表4-7 答案表
1 Id int(4) NY 编号
2 Leixing varchar(50) NN 考题类型
3 Timu varchar(5000) NN 题目
4 Xxa varchar(50) NN 答案a
5 Xxb varchar(50) NN 答案b
6 Xxc varchar(50) NN 答案c
7 Xxd varchar(50) NN 答案d
8 daan varchar(50) NN 正确答案
表4-8试卷表
1 Id int(4) NY 编号
2 Leixing varchar(22) NN 考题类型
3 Timu varchar(2000) NN 题目
4 Xxa varchar(22) NN 答案a
5 Xxb varchar(22) NN 答案b
6 Xxc varchar(22) NN 答案c
7 Xxd varchar(22) NN 答案d
8 daan varchar(22) NN 正确答案
4.2.2 系统总体E-R图
图4-1系统总体E-R图
第五章驾校考试系统的实现
5.1 考试模块
该模块的用户为学员,学员可通过该模块实现网上考试。
考生输入正确的用户名和密码后进入考生模块主界面,考生选择试卷进行考试,考试完毕后提交试卷即可结束考试。
关键代码如下:
String username=(String)session.getAttribute("user1");
String student_name=request.getParameter("student_name"); student_name=new
String(student_name.getBytes("ISO8859-1"),"gb2312");
String shijuan_name=request.getParameter("shijuan_name"); shijuan_name=new
String(shijuan_name.getBytes("ISO8859-1"),"gb2312");
String zhuanye=request.getParameter("zhuanye");
zhuanye=new String(zhuanye.getBytes("ISO8859-1"),"gb2312"); String xueyuan=request.getParameter("xueyuan");
xueyuan=new String(xueyuan.getBytes("ISO8859-1"),"gb2312"); String sql11="select * from Online_shijuan_ML where
shijuan_name='"+shijuan_name+"'";
conn cn11 = new conn();
ResultSet rs11=cn11.query(sql11);
rs11.next();
%>
<b><font size="6"
color="blue"><%=rs11.getString("shijuan_name")%><font><b><br> (共<%=rs11.getString("timu_shuliang")%>题,每题
<%=rs11.getString("meitifenshu")%>分,总分
<%=rs11.getString("zongfen")%>)(时间:
<%=rs11.getString("kaoshi_sj")%>分钟)<br><br>
String sql1="select * from Online_Examination_XJ where
student_name='"+student_name+"' and
shijuan_name='"+shijuan_name+"'";
conn cnn = new conn();
ResultSet rs=cnn.query(sql1);
if(rs.next()){
%>
<script>
alert("您已经考过了!");
window.location="kaishidati.jsp";
<script>
<%
}else{
conn cn = new conn();
String sql="insert into Online_Examination_XJ
(student_name,shijuan_name,kaoshi_cj,zhuanye,xueyuan,username) values('"+student_name+"','"+shijuan_name+"','0','"+zhuanye+"',' "+xueyuan+"','"+username+"')";
cn.update(sql);
String sql2="select * from "+shijuan_name;
conn con = new conn();
ResultSet rs2=con.query(sql2);
int aaa=1;
String sql3="select count(*) as id from "+shijuan_name;;
conn con3 = new conn();
ResultSet rs3=con3.query(sql3);
rs3.next();
int shuliang=rs3.getInt("id");
%>
<form action="add_chengji.jsp" method="post">
<input type="" name="shuliang" value=<%=shuliang%>>
<input type="" name="student_name" value=<%=student_name%>>
<input type="" name="shijuan_name" value=<%=shijuan_name%>>
<input type="" name="zhuanye" value=<%=zhuanye%>>
<input type="" name="xueyuan" value=<%=xueyuan%>>
<table width="500" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#c0de98" onmouseover="changeto()" onmouseout="changeback()">
<%while(rs2.next()){ %>
<tr>
<td width="60" ="center" class="STYLE2 STYLE1">题目<%=aaa++ %>:<div><td>
<td .getAttribute("user1");
%>
<br>
<br>
<font size="5" color="42870a"><b>
查询考试成绩<b>
<font>
<br>
<br>
<%
conn cn1 = new conn();
String sql1 = "select count(*) as id from
Online_Examination_XJ where username='"
+ username + "'";
ResultSet rs1 = cn1.query(sql1);
rs1.next();
int aa = rs1.getInt("id");
%>
您目前参加了【<%=aa%>】门考试,下面是您的成绩。
教官部分
<body>
<% String username=(String)session.getAttribute("user1"); String sqla="select * from Online_Examination where
username='"+username+"'";
conn nn = new conn();
ResultSet rss=nn.query(sqla);
rss.next();
String zhuanye=rss.getString("zhuanye");
%>
<br><br><font size="5" color="42870a"><b>
查询考试成绩<b><font><br><br>
<%conn cn1 = new conn();
String sql1="select count(*) as id from Online_Examination_XJ where zhuanye='"+zhuanye+"'";
ResultSet rs1= cn1.query(sql1);
rs1.next();
int aa=rs1.getInt("id");
%>
【<%=zhuanye%>】专业考试完毕的学员有【<%=aa%>】项成绩。
<table width="80%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td class="STYLE4">我的成绩<span><td>
<td width="281" background="imagestab_05.gif"><table border="0" align="right" cellpadding="0" cellspacing="0">
<table><td>
<td width="14"><img src="imagestab_07.gif" width="14" ="center" cellpadding="0" cellspacing="1" bgcolor="#c0de98" onmouseover="changeto()" onmouseout="changeback()">
<tr>
<td width="6%" ="center" class="STYLE2 STYLE1">序号
<div><td>
<td width="10%" ="center" class="STYLE2 STYLE1">姓名
<div><td>
<td width="20%" ="center" class="STYLE2 STYLE1">试卷名称<div><td>
<td width="10%" ="center" class="STYLE2">所在学院
<div><td>
<td width="10%" ="center" class="STYLE2">所在专业
<div><td>
<td width="10%" ="center" class="STYLE2">考试成绩
<div><td>
<tr>
<%conn cn = new conn();
int i=1;
String sql="select * from
Online_Examination_XJ where zhuanye='"+zhuanye+"'";
ResultSet rs= cn.query(sql);
while(rs.next()){
%>
<tr>
<td ="center" class="STYLE1"><%=i++ %><td>
<td ="center" class="STYLE2
STYLE1"><%=rs.getString(2) %><div><td>
<td ="center" class="STYLE2
STYLE1"><%=rs.getString(3) %><div><td>
<td ="center" class="STYLE2
STYLE1"><%=rs.getString(6) %><div><td>
<td ="center" class="STYLE2
STYLE1"><%=rs.getString(5) %><div><td>
<td ="center" class="STYLE2
STYLE1"><%=rs.getString(4) %><div><td>
<tr>
<%} %>
<table><td>
5.3 试卷管理模块
该模块为教官提供预览、发布、取消发布、删除试卷的功能。
以教
官ID登录系统后,进入教官操作页面,这时候教官可以根据学员的情况
管理相关的试卷。
关键代码如下:
添加试卷
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text add = new ADD_shijuan();
int i=add.add_shijuan(shiti_leixing, shiti_name, shuliang, meitifs, kaoshisj);
if(i==0){
out.println("<script>");
out.println("alert('添加失败!');");
out.println("window.location='fabu_shijuan.jsp'");
out.println("<script>");
}else{
out.println("<script>");
out.println("alert('恭喜!添加成功!');");
out.println("window.location='shijuan_manage.jsp'");
out.println("<script>");
}
}
删除试卷
<%
request.setCharacterEncoding("gb2312");
String id=request.getParameter("id");
String namea=request.getParameter("namea");
String sql="delete Online_shijuan_ML where id='"+id+"'";
conn cn = new conn();
cn.update(sql);
String sql1="drop table "+namea;
System.out.println(sql1+"@@@@@@");
cn.query(sql1);
%>
预览试卷
<body>
<br >
<br >
<center>
<%
String namea = request.getParameter("namea");
namea = new String(namea.getBytes("ISO8859-1"), "gb2312");
String sql1 = "select * from Online_shijuan_ML where shijuan_name='"
+ namea + "'";
conn cn1 = new conn();
ResultSet rs1 = cn1.query(sql1);
rs1.next();
%>
<b><font size="6"
color="blue"><%=rs1.getString("shijuan_name")%><font>
<b>
<br >
(共<%=rs1.getString("timu_shuliang")%>题,每题
<%=rs1.getString("meitifenshu")%>分,总分
<%=rs1.getString("zongfen")%>)(时间:
<%=rs1.getString("kaoshi_sj")%>分钟)。