最近在做课设,抽到的题目是《基于jsp+MySQL的在线考试系统》,拿到这个题目后,我做了如下规划,怎么去实现一个在线考试系统:
1、注册 (学生)注册信息包括登录帐号、姓名、性别、年龄、班级、任课老师。
2、参加考试 (学生)从试卷列表中选择考试卷,考试卷由管理人员(一般由老师担任)创建。试卷信息包括试卷ID(生成规则后面在"试卷管理"用例中描述)、试卷科目、满分、时间、试卷有效期。
3、试卷管理:(管理人员) 试卷主体信息维护(创建试卷、修改试卷相关信息、删除试卷)。
4、题库管理:(管理人员)题目信息维护(创建题目、修改题目、删除题目)。
基本架构有后,参考了网上一些项目的源码,写下了这个系统,以下是部分代码:
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.util.*" errorPage="" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<jsp:useBean id="lesson" class="com.wgh.dao.TaoTiDAO" scope="page"/>
<%
int lessonID=Integer.parseInt((String)session.getAttribute("lessonID"));
List list_s=(List)request.getAttribute("singleQue");
int s=40/list_s.size();
List list_m=(List)request.getAttribute("moreQue");
int m=60/list_m.size();
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>网络在线考试</title>
<link rel="stylesheet" href="../CSS/style.css"/>
<script language="javascript" src="../JS/AjaxRequest.js">
</script>
<script language="javascript">
timer = window.setInterval("showStartTime();showRemainTime();",1000);
//此处需要加&nocache="+new Date().getTime(),否则将出现时间不自动走动的情况
function showStartTime(){
var loader=new net.AjaxRequest("startExam.do?action=showStartTime&nocache="+new Date().getTime(),deal_s,onerror,"GET");
}
function showRemainTime(){
var loader1=new net.AjaxRequest("startExam.do?action=showRemainTime&nocache="+new Date().getTime(),deal_r,onerror,"GET");
}
function onerror(){
window.open('../index.jsp','','toolbar,menubar,scrollbars,resizable,status,location,directories,copyhistory,height=600,width=778');
window.close();
}
function deal_s(){
showStartTimediv.innerHTML=this.req.responseText;
}
function deal_r(){
showRemainTimediv.innerHTML=this.req.responseText;
if(this.req.responseText=="00:00:00"){
questionsForm.submit.click();
}
}
</script>
<script language=javascript>
function keydown(){
if(event.keyCode==8){
event.keyCode=0;
event.returnValue=false;
alert("当前设置不允许使用退格键");
}if(event.keyCode==13){
event.keyCode=0;
event.returnValue=false;
alert("当前设置不允许使用回车键");
}if(event.keyCode==116){
event.keyCode=0;
event.returnValue=false;
alert("当前设置不允许使用F5刷新键");
}if((event.altKey)&&((window.event.keyCode==37)||(window.event.keyCode==39))){
event.returnValue=false;
alert("当前设置不允许使用Alt+方向键←或方向键→");
}if((event.ctrlKey)&&(event.keyCode==78)){
event.returnValue=false;
alert("当前设置不允许使用Ctrl+n新建IE窗口");
}if((event.shiftKey)&&(event.keyCode==121)){
event.returnValue=false;
alert("当前设置不允许使用shift+F10");
}
}
function click() {
event.returnValue=false;
alert("当前设置不允许使用右键!");
}
document.oncontextmenu=click;
</script>
</head>
<body onLoad="showStartTime();showRemainTime();" onkeydown="keydown()">
<table width="770" border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF">
<tr>
<td width="40" height="39" background="../Images/startExam_leftTop.jpg"> </td>
<td width="667" align="right" background="../Images/startExam_top.jpg">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="23%" nowrap height=23 align=right>考试时间:</td>
<td width="14%" nowrap><font color="#FF0000">20</font>分钟</td>
<td width="13%" nowrap>计 时:</td>