今天为大家分享一个java语言编写的在数据结构在线考试系统,目前系统功能已经很全面,后续会进一步完善。整个系统界面漂亮,有完整得源码,希望大家可以喜欢。喜欢的帮忙点赞和关注。一起编程、一起进步
开发环境
开发语言为Java,开发环境Eclipse或者IDEA都可以。数据库采用:MySQL。
本项目是基于MVC的JSP技术进行的Web应用程序开发,其中
JSP技术为表示层,包括EL表达式、JSP动作、JSTL标准标签技术
Servlet为控制层技术
JavaBean为开发模型层
采用MVC设计模式对各个模块进行开发
数据库采用mysql数据库
采用Tomcat作为Web服务器
火狐浏览器,360浏览器,Chrome浏览器,IE浏览器做为本次程序的运行浏览器
系统主要功能
项目开发背景
在线考试成为未来的发展趋势所在,结合自己大学期间所学的知识,和大学的实际。选择开发一个数据结构在线考试系统,通过这个在线考试系统,老师可以了解学生对数据结构这门课程的掌握程度,同学们通过系统可以更加好的掌握数据结构方面的知识,增强学生和老师之前的互动,更好的促进数据结构课程的建设
主要功能
JSP+JAVABEAN+SERVLET的开发模式,Servlet负责处理用户的请求,JavaBean从数据库获取相关的数据,JSP动态显示从Servlet返回的数据,遵循MVC的开发模式。本系统分管理员类用户和学生用户。不同的用户类型所能实现的功能不同。管理员类用户可以对已经注册的学生信息进行修改、删除,对于未注册过的学生可以进行添加操作。管理员可以添加考试科目、添加试题、修改试题、删除试题,也可以对成绩进行管理,发布学校新闻以及重要公告。学生类用户可以对自己的信息进行维护,可以在线练习、在线考试以及查询自己的成绩。
性能要求
(1)能够支撑超过100个用户同时访问,用户的每次操作都能在1s内返回结果。
(2)在人性化方面,系统会在响应成功或者失败的时候有明显的提示。
(3)频繁的连接和释放数据库,数据库是系统应用程序的一个瓶颈。考虑采用数据库连接池,减少数据库的压力。
(4)提供灵活、方便的权限设置功能,使整个系统的管理分工明确。
(5)具有易维护性和易操作性。
(6)跨平台性:系统能够在Window,Linux,Unix等操作系统中运行。操作系统发生变化后,程序不需要修改就能正常运行。
(7)可恢复性:系统发生故障后,能在比较短的时间内恢复到正常状态,不会引起用户投诉。
系统架构
![](https://img-blog.csdnimg.cn/img_convert/8529340de21b18ad6390e4f11a3007c4.png)
模块设计
![](https://img-blog.csdnimg.cn/img_convert/64df1ab37576b8f23df1c5c2dd976645.png)
实现效果
1 用户注册
![](https://img-blog.csdnimg.cn/img_convert/a10a6ad49dae71b87dd535eee44fe20c.png)
2 主界面
![](https://img-blog.csdnimg.cn/img_convert/6fa2dc65ec9a84ac7502b3c287fcafb1.png)
3 在线练习
![](https://img-blog.csdnimg.cn/img_convert/5d2a32dc5b95e2221a2b0c1cfc5dfc03.png)
3 学员查看考试成绩
![](https://img-blog.csdnimg.cn/img_convert/3daefe035c62d01dcf53ff08444cd682.png)
4 管理员后台管理
![](https://img-blog.csdnimg.cn/img_convert/3ea505e5f20293cbca6e61e35af7f5dc.png)
![](https://img-blog.csdnimg.cn/img_convert/14243994ed6191639fff200a35978d5a.png)
5 题库管理
![](https://img-blog.csdnimg.cn/img_convert/7cd25063e663d7db7a8321cd8b918314.png)
关键代码
package com.dao;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class DB
{
private Connection con;
private PreparedStatement pstm;
private String user = "root";
private String password = "root";
private String className = "com.mysql.jdbc.Driver";
private String url = "jdbc:mysql://localhost:3306/structureexam?useUnicode=true&characterEncoding=utf8";
public DB()
{
try
{
Class.forName(className);
} catch (ClassNotFoundException e)
{
System.out.println("");
e.printStackTrace();
}
}
/** 获取连接*/
public Connection getCon()
{
try
{
con = DriverManager.getConnection(url, user, password);
} catch (SQLException e)
{
System.out.println("SQLException e");
con = null;
e.printStackTrace();
}
return con;
}
public void doPstm(String sql, Object[] params)
{
if (sql != null && !sql.equals(""))
{
if (params == null)
params = new Object[0];
getCon();
if (con != null)
{
try
{
System.out.println(sql);
pstm = con.prepareStatement(sql,
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
for (int i = 0; i < params.length; i++)
{
pstm.setObject(i + 1, params[i]);
}
pstm.execute();
} catch (SQLException e)
{
System.out.println("doPstm()Exception");
e.printStackTrace();
}
}
}
}
public ResultSet getRs() throws SQLException
{
return pstm.getResultSet();
}
public int getCount() throws SQLException
{
return pstm.getUpdateCount();
}
public void closed()
{
try
{
if (pstm != null)
pstm.close();
} catch (SQLException e)
{
System.out.println("closed Exception1");
e.printStackTrace();
}
try
{
if (con != null)
{
con.close();
}
} catch (SQLException e)
{
System.out.println("closed Exception1");
e.printStackTrace();
}
}
}