基于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
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
教师:查看考试结果、编辑考试题目
学生:考试答题
老师
学生