基于javaweb+JSP+Servlet在线考试系统

基于javaweb+JSP+Servlet在线考试系统

开发工具:eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

	 * @throws ServletException 
	 */
	private void list(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		Studentpaper studentpaper = new Studentpaper();
		PageControl pc = new PageControl();
		Integer currindex = 1;
		if(request.getParameter("index")!=null){
			currindex = Integer.parseInt(request.getParameter("index"));
		}
		pc.setCurrentindex(currindex);
		//pc.setPagesize(5);
		studentpaper.setUserid((Integer) request.getSession().getAttribute("userid"));
		studentpaper.setSpid(request.getParameter("spid"));
		Pager<Subject> pager = service.list(studentpaper, pc);
		request.setAttribute("pager", pager);
										</c:choose>
									</td>
									<td>
										<a href="<%=basePath%>sys/subject?cmd=toedit&id=${item.sid}">编辑</a>
									</td>
								</tr>
							</c:forEach>
						</tbody>
					</table>
					<div class="pagination pagination-right">
						<ul>
							<li>
								<a>共计:${pager.pagectrl.pagecount}页/${pager.pagectrl.rscount}条记录</a>
							</li>
							
							<li>
								<c:if test="${pager.pagectrl.currentindex==1}" var="fp">
									<a style="disabled:true">上一页</a>
								</c:if>
								<c:if test="${!fp}">
									<a href="<%=basePath%>sys/subject?cmd=list&index=${pager.pagectrl.currentindex-1}">上一页</a>
		request.setAttribute("score", score);
		PrintWriter out = response.getWriter();  
		  
        out.println("您本次得分" + score * 2 + "分!");  
        out.flush();  
        out.close(); 
		//request.getRequestDispatcher("/sys/paper/subjects.jsp").forward(request, response);
	}
	
	/**
	 * 查询详细错题
	 * @param request
	 * @param response
	 * @throws IOException 
	 * @throws ServletException 
	 */
	private void list(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		Studentpaper studentpaper = new Studentpaper();
		PageControl pc = new PageControl();
		Integer currindex = 1;
		if(request.getParameter("index")!=null){
			currindex = Integer.parseInt(request.getParameter("index"));
		}
		pc.setCurrentindex(currindex);
		//pc.setPagesize(5);
		studentpaper.setUserid((Integer) request.getSession().getAttribute("userid"));
		pc.setCurrentindex(currindex);
		//pc.setPagesize(5);
		studentpaper.setUserid((Integer) request.getSession().getAttribute("userid"));
		studentpaper.setSpid(request.getParameter("spid"));
		Pager<Subject> pager = service.list(studentpaper, pc);
		request.setAttribute("pager", pager);
		request.getRequestDispatcher("/user/paper/studenterror.jsp").forward(request, response);
	}

	/**
	 * 增加试题功能
	 * @param request
	 * @param response
	 *//*
	private void addsubject(HttpServletRequest request, HttpServletResponse response) {
		
	public Integer edit(Sysuser user) {
		// TODO Auto-generated method stub
		String sql = "UPDATE SYSUSER SET ROLEID=?,USERNAME=?," +
		"USERPWD=?,USERTRUENAME=?,USERSTATE=? WHERE USERID=?";
		Integer rtn = DBUtil.executeUpdate(sql,user.getRoleid(),
		user.getUsername(),user.getUserpwd(),user.getUsertruename(),user.getUserstate(),user.getUserid());
		return rtn;
	}

	public Integer toedit(Sysuser user) {
		// TODO Auto-generated method stub
		String sql = "UPDATE SYSUSER SET USERPWD=? WHERE USERID=?";
		Integer rtn = DBUtil.executeUpdate(sql,user.getUserpwd(),user.getUserid());
		return rtn;
	}
	public Integer editpwd(Sysuser user) {
		// TODO Auto-generated method stub
		return roles;
	}

	public Integer saveright(String roleid, String[] funids) {
		
		String sql = "DELETE FROM ROLERIGHT WHERE ROLEID="+roleid;
		Connection conn = DBUtil.getConn();
		Integer rst = 0;
		try {
			conn.setAutoCommit(false);
			QueryRunner rq = new QueryRunner();
			int rtn = rq.update(conn, sql);
			for(int i=0;i<funids.length;i++){
				String sql2 = "INSERT INTO ROLERIGHT (ROLEID,FUNID) VALUES ("+roleid+","+funids[i]+")";
				rtn = rq.update(conn,sql2);
				if(rtn>0){
					continue;
				}else{
					conn.rollback();
					break;
				}
			}
import com.demo.common.Tools;
import com.demo.model.Subject;
import com.demo.sys.services.interfaces.ISubjectService;
import org.apache.commons.beanutils.BeanUtils;

import com.demo.sys.services.impl.SubjectService;


public class SubjectServlet extends HttpServlet {

	ISubjectService service = new SubjectService();
	@Override
	protected void service(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		
		String cmd = request.getParameter("cmd");
		if(cmd.equals("add")){
			addsubject(request,response);
		}else if(cmd.equals("list")){
			 list(request,response);
			+ request.getServerName() + ":" + request.getServerPort()
			+ path + "/";
%>


<html>

<head>
    <base href="<%=basePath%>">
    <title>在线答题</title>
    <link rel="stylesheet" type="text/css" href="<%=basePath%>css/bootstrap.min.css">
    <link rel="stylesheet" type="text/css" href="<%=basePath%>css/paper.css">
    <script src="<%=basePath%>js/jquery.js" type="text/javascript"></script>
    <script src="<%=basePath%>js/bootstrap.js"></script>
</head>

<body>
    <nav class="navbar navbar-default" role="navigation">
        <!-- Brand and toggle get grouped for better mobile display -->
        <div class="navbar-header">
            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>
            <a class="navbar-brand" href="#">在线考试系统</a>
import com.demo.common.PageControl;
import com.demo.common.Pager;
import com.demo.model.SysFunction;
import com.demo.model.Sysuser;
import com.demo.sys.dao.interfaces.IUserDao;

public class UserDao implements IUserDao {

	public Sysuser login(Sysuser user) {

		String sql = "SELECT USERID,A.ROLEID,USERNAME,USERPWD,USERTRUENAME,USERSTATE, "
				+ "B.ROLENAME FROM SYSUSER A "
				+ "INNER JOIN SYSROLE B ON A.ROLEID=B.ROLEID "
				+ "WHERE USERSTATE=1 AND USERNAME=? AND USERPWD=? ";
		List<Sysuser> list = DBUtil.executeQuery(sql, Sysuser.class, user
				.getUsername(), user.getUserpwd());
	String basePath = request.getScheme() + "://"
			+ request.getServerName() + ":" + request.getServerPort()
			+ path + "/";
%>

<html>

<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <link rel="stylesheet" type="text/css" href="<%=basePath%>css/admin.css">
    <link rel="stylesheet" type="text/css" href="<%=basePath%>css/pintuer.css">
    <link rel="stylesheet" type="text/css" href="<%=basePath%>css/bootstrap.css">
    <title>学生登录</title>
</head>

<body>
    <div class="bg"></div>
    <div class="container">
        <div class="line bouncein">
            <div class="xs6 xm4 xs3-move xm4-move">
                <div style="height:80px;"></div>
                <div class="media media-y margin-big-bottom">
                </div>
                <form action="<%=basePath%>user?cmd=stulogin" method="post" class="login-form">
                    <div class="panel loginbox">
                        <div class="text-center margin-big padding-big-top">

运行环境

Java≥8、Tomcat≥8.0、MySQL≥5.7

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

技术框架

JSP Servlet MySQL JDBC Tomcat jQuery Bootstrap

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

网络考试系统主要用于实现高校在线考试,基本功能包括:自动组卷、试卷发布、试卷批阅、试卷成绩统计等。本系统结构如下:

后台管理员:系统功能、用户、角色、题目管理、试卷管理、

后台教师:题目管理、试卷管理

20220319104637

20220314205323

前台学生:查看试题、答题、查看错题

后台管理员

20220314204402

20220314204525

20220314204532

20220314204537

20220314204542

20220314204555

20220314204605

后台教师

20220314204801

20220314204806

前台学生

20220314204818

20220314205036

20220314205046

20220314205058


  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在用户界面部分,根据需求分析的结果,用户需要一个用户友善界面。在界面设计上,应做到简单明了,易于操作,并且要注意到界面的布局,应突出的显示重要以及出错信息。外观上也要做到合理化,考虑到用户多对网页较熟悉,应尽量向这一方向靠拢。在设计语言上,已决定使用 Java 语言进行编程。 其中管理界面要做到操作简单,易于管理。总的来说,系统的用户界面应作到可靠性、简单性、易学习和使用。 2.4.2 外部接口 硬件接口,在输入方面对于键盘鼠标的输入用标准的输入/输出,对输入进行处理。在输出方面的屏幕和打印机连接以及使用用标准的输入输出进行处理。 2.4.3 内部接口 各模块之间采用函数调用,参数传递,返回值的方式进行信息传递。接口传递的信息将是以数据结构封装了的数据,以参数传递或返回值的形式在各模块间传输 2.5 运行设计 运行程序,执行登录模块,如果是新用户,就进入注册模块,已注册的用户直接进行身份验证进入主界面,通过主界面可以进行在线考试,此时执行考试模块,也可以查询考试成绩、修改个人资料等功能。 2.6 系统数据库设计 数据库是本系统核心和基础。它把本中大量的数据按一定的模型组织起来,提供存储、维护、检索数据的功能,使信息系统可以方便、及时、准确地从数据库中获得所需的信息。 2.6.1 数据库概念设计 开发在线考试系统时,为了灵活地维护系统,设计了后台管理员模块,通过后台管理员模块可以方便地对整个在线考试系统进行维护。这时,必须建立一个数据表用于存储所有的管理员信息。管理员信息实体E-R 图如图6所示。当考生成功登录在线考试系统后,可以根据需要选择考试的科目,考生不同可能选择的考试科目会不同,系统必须提供一些参加考试的课程,供考生选择。这时,在数据库中应该建立一个存储所有参加课程的数据表。考试课程信息实体E-R图如图7所示。 

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值