基于javaweb+SpringBoot+MyBatis在线考试系统(教师、学生)

基于javaweb+SpringBoot+MyBatis在线考试系统(教师、学生)

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

适用

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

<html>
<head>
<title>在线考试系统</title>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title></title>
<link
	href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"
	rel="stylesheet">
<script
	src="https://cdn.jsdelivr.net/npm/jquery@1.12.4/dist/jquery.min.js"></script>
<script
	src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script>
</head>
<body>
	<div class="container">
		<div class="row">

	public void setWrites(List<QuestionPlus> writes) {
		this.writes = writes;
	}

	public double getScore() {
		return score;
	}

	public void setScore(double score) {
		this.score = score;
	}

						<h1>
							<div class="label label-primary">
								选择题 <span class="badge">${fn:length(paper.choices)}</span>
							</div>
						</h1>
						<c:forEach items="${paper.choices}" var="q" varStatus="var">
							<xmp>${var.count}.${q.q.title}</xmp>
							<br>
							<input type="checkbox" name="choice_${var.count}" value="A" />A.
							<xmp>${q.q.optiona}</xmp>
							<br>
							<input type="checkbox" name="choice_${var.count}" value="B" />B.
							<xmp>${q.q.optionb}</xmp>
							<br>
							<input type="checkbox" name="choice_${var.count}" value="C" />C.
							<xmp>${q.q.optionc}</xmp>
import org.springframework.transaction.annotation.Transactional;

import demo.vo.PaperAnswer;
import demo.vo.PaperSubjectiveAnswer;
import demo.dao.PaperAnswerMapper;
import demo.dao.PaperStuAnswerMapper;
import tk.mybatis.mapper.entity.Example;

@Service
public class ScoreService {
	@Autowired
	private PaperAnswerMapper paperAnswerMapper;

	@Autowired
	private PaperStuAnswerMapper stuAnswerMapper;

	@Transactional
	public void save(PaperAnswer paper, List<PaperSubjectiveAnswer> stuAnswer) {
		int insert = paperAnswerMapper.insert(paper);
		if (insert < 1) {
			return;
		}
		for (PaperSubjectiveAnswer per : stuAnswer) {
			Integer id = paper.getId();
		Example example = new Example(PaperSubjectiveAnswer.class);
		Example.Criteria criteria = example.createCriteria();
		criteria.andEqualTo("paperId", id);
		List<PaperSubjectiveAnswer> selectByExample = stuAnswerMapper.selectByExample(example);
		for (PaperSubjectiveAnswer psa : selectByExample) {
			pa.addList(psa);
		}
		return pa;
	}
}
package demo.controller;

import java.util.List;
import java.util.Random;

}
<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>试题一览</title>
<link
	href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"
	rel="stylesheet">
<script
	src="https://cdn.jsdelivr.net/npm/jquery@1.12.4/dist/jquery.min.js"></script>
<script
	src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script>
</head>
<title>在线考试系统</title>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title></title>
<link
	href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"
	rel="stylesheet">
<script
	src="https://cdn.jsdelivr.net/npm/jquery@1.12.4/dist/jquery.min.js"></script>
<script
	src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script>
</head>
<body>
	<div class="container">
		<div class="row">
			<div class="col-lg-3"></div>
			<div class="col-lg-6">
				<h1 align="center" style="padding-top: 100px;">在线考试系统</h1>
				<form class="form-horizontal" action="/user/login" method="post">
					<div class="form-group">
						<label for="username" class="col-sm-2 control-label">登录名</label>
						<div class="col-sm-10">
							<input type="text" class="form-control" id="username"
								name="username" placeholder="用户名">
						</div>
					</div>
		m.addAttribute("md", answerDetail);
		return Const.PAGE_ADMIN_MARK_DETAIL;
	}
}
package demo.vo;

import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Transient;

import tk.mybatis.mapper.annotation.KeySql;

@Table(name = "question")
public class Question {
	public Question() {
	}

	@Id
	@KeySql(useGeneratedKeys = true)
	private Integer id;
	private String title;
	// 编辑
	@RequestMapping("edit")
	public String editQuestion(String id, Model model) {
		Question q = service.getQuestionById(Integer.valueOf(id));
		model.addAttribute("question", q);
		return Const.PAGE_QUESTION_EDIT;
	}

	// 添加(进编辑页面)
	// 编辑和添加都会进入同一个界面,区别是编辑会先根据id查找Bean对象传入该界面而添加不会
	@RequestMapping("add")
	public String addQuestion() {
		return Const.PAGE_QUESTION_EDIT;
	}

}
package demo.vo;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.persistence.Id;
public class ScoreService {
	@Autowired
	private PaperAnswerMapper paperAnswerMapper;

	@Autowired
	private PaperStuAnswerMapper stuAnswerMapper;

	@Transactional
	public void save(PaperAnswer paper, List<PaperSubjectiveAnswer> stuAnswer) {
		int insert = paperAnswerMapper.insert(paper);
		if (insert < 1) {
			return;
		}
	}

	public void setStu(User stu) {
		this.stu = stu;
	}
}
package demo.controller;

import java.util.ArrayList;
import java.util.Date;
import java.util.Enumeration;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import demo.vo.PaperAnswer;
import demo.vo.PaperSubjectiveAnswer;
import demo.vo.QuestionPaper;
import demo.vo.QuestionPlus;
import demo.vo.User;

运行环境

Java≥8、MySQL≥5.5

开发工具

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

技术框架

JSP JavaScript Bootstrap SpringBoot SpringMVC MyBatis

适用

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

功能说明

教师:查看考试结果、编辑考试题目

学生:考试答题

20220319104249

老师

20220319103551

20220319103714

20220319103724

20220319103735

20220319103746

20220319103844

20220319103845

学生

20220319103915

20220319104003

20220319104012


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值