学生开始考试的时候,首先需要选择试卷类型,或者也可以叫做试题分类。在此页面中采用下拉列表框的形式进行,如图3-4所示:
图3-4 试题分类选择页面草图
选择试题分类以后,即是学生答题页面。答题页面的主体应该是试题和试题的选项。考虑到本系统需要在题目结束以后立即知道考试结果,所以决定采用所有试题的形式都是ABCD型的选择题,页面应该针对这些题目选项设置单选按钮。
在答题内容的上方,应该能够给考生信息,说明当前的题目是全部题目的第几道,以及总共有几道题,使得考生可以把握整个考试进度。
同时考虑到考生在时间允许的情况下,需要在题目间前后迁移,所以在题目的下方,还应该有前后翻页的按钮。
对应教师角色的模版略有不同,模块多了几个,而且页面顶端的标识也有所区别。对应的模版页面如图3-5所示。
图3-11 教师角色模版页面
图3-5 管理员角色模版页面
第四章 系统实现
本系统包括3个不同的角色,即学生、教师、管理员。不同角色的功能有所不同,学生的功能包括:考试模块,修改密码,成绩查询模块。教师的功能包括:试卷类别管理、试题管理、修改密码、成绩管理。管理员的功能包括:教师管理和考生管理。
4.1 数据库连接的实现方法
从系统功能模块划分中可以看出,各模块虽然是独立的,但又统一于同一数据库中,便于管理员管理维护数据库,同时也便于教师和学生的操作。在介绍系统各模块的实现方法之前,首先介绍系统与MySQL数据库的连接方法,再介绍系统主要部分的实现方法。
创建与数据库的连接:
①:首先要将mysql的驱动包放在tomcat/lib目录下;
②:利用语句进行对数据库的操作,以下仅是对用户表查询的语句:
<%@page contentType="text/html;charset=gb2312" %>
<%@page language="java" import="java.sql.*" %>
<%
//声明数据库连接对象,初始化为空
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try
{
//载入MySQL的JDBC驱动类
Class.forName("com.mysql.jdbc.Driver");
//获得数据库连接
String sConn = "jdbc:mysql://localhost/Myexam?user=root&password=890427";
conn = DriverManager.getConnection( sConn );
//创建Statement对象
stmt = conn.createStatement();
//执行SQL语句
String query = "select * from user";
rs = stmt.executeQuery( query );
%> catch(Exception e)
{
//获得数据库连接出错
System.out.println("error occured!!");
}
finally
{
//释放数据库连接
rs.close();
stmt.close();
conn.close();
}
%>
4.2 登陆注册模块
4.2.1 登录模块
用户登录页面比较简单,为防止用户登录的操作错误,应设置错误处理页面,在登录操作过程中,一般发生的错误有:用户输入了错误的用户名或密码、用户直接单击了登录按钮,对上述情况的判断就要通过Servlet文件来实现。当用户登录的时候,输入的帐号或者密码有其中一项为空时,会有提示框提示,提示您帐号或者密码不能为空。实现这个功能的是用javascript实现的,具体代码如下所示:
验证输入不为空的脚本代码
在登录页面时,当用户提交了登录资料后,就由"loginvc.jsp"这个页面进行验证,它的工作主要是连接到数据库,从数据中找出输入的用户名和密码并判断其是否一致。如果用户输入了错误的用户名和密码,就会跳出一个登录失败的页面。
用户可以点击返回按钮回到其刚才登录的界面,然后重新输入用户名及密码进行再次登录。若用户提交正确的用户和密码后,如果记录验证无误,就通过JSP重定向语句response.sendRedirect()跳转到相应的主界面。
教师以及管理员的登录验证跟考生相似,只是查询条件和连接的数据库表不同,以及登陆成功之后,跳转的页面不同。
4.2.2 考生注册模块
在此模块,考生需要填写用户名、密码、确认密码、真实。如若填写中缺少一项,那么会有提示,其功能也是由上面所说的一样,通过调用javascript实现的,这里只提供下截图,主要代码如上,如图4-1所示:
图4-1 注册提示页面
当用户填写的内容完全符合注册标准后,点击注册按钮,会转到注册成功的页面;如若用户名已经被注册,会转到注册失败页面,提醒注册用户可能是该用户名已经注册。在此只以注册成功的页面为例,如图4-2所示:
图4-2 注册成功页面
完成注册模块的主要代码如下所示:
首先获取上个页面传过来的数据,用户名、密码、真实
String username = request.getParameter("username");
String password = request.getParameter("password");
String realname = request.getParameter("realname");
out.println(username); //打印出username
其次开始连接数据库
try{
Class.forName( "com.mysql.jdbc.Driver" ).newInstance();
Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/myexam?user=root&password=890427&useUnicode=true&characterEncoding=gbk");
Statement stmt=conn.createStatement();
ResultSet rs=null;
查询user表,看用户名是否存在
String sql="select * from user where username like '"+username+"'";
rs=stmt.executeQuery(sql);
如果存在,提示" 您好,您注册的用户名已经存在,请重新输入 ",如果不存在,把接收过来的值付给新的变量:
String s_username=request.getParameter("username");
String s_password=request.getParameter("password");
String s_realname=request.getParameter("realname");
执行SQL插入语句,把得到的值插入到user表中
sql = "insert into user(username,password,realname) value('"+username+"','"+password+"','"+realname+"')";
如果插入成功,提示:"恭喜您注册成功!"
4.3考生模块
考生登录系统并且用户名也密码正确后,会直接跳转到学生主页,本页面中,考生可以在左侧选择自己下一步要做的事情,有开始考
上一篇:
asp个人博客网站的开发毕业设计论文
下一篇:
懂秋,在红尘深处.....