在线考试系统
一、项目演示
在线考试系统
二、项目介绍
1、管理员角色:
考试管理:考试查询、添加考试
题库管理:所有题库,添加题库、题库组卷
成绩查询:学生成绩查询,成绩分段查询
学生管理:学生查询,添加学生
教学管理:教师查询,添加教师
2、学生角色:
考试中心:搜索试卷,开始考试
试卷练习:模拟考试
我的分数:考试分数展示
交流区:留言,评论
3、教师角色:
考试管理:考试查询、添加考试
题库管理:所有题库,添加题库
成绩查询:学生成绩查询,成绩分段查询
三、万字项目文档
四、部分功能截图
五、部分代码展示
package com.rabbiter.oes.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.rabbiter.oes.entity.ApiResult;
import com.rabbiter.oes.entity.ExamManage;
import com.rabbiter.oes.serviceimpl.ExamManageServiceImpl;
import com.rabbiter.oes.util.ApiResultHandler;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@RestController
public class ExamManageController {
@Autowired
private ExamManageServiceImpl examManageService;
@GetMapping("/exams")
public ApiResult findAll(){
System.out.println("不分页查询所有试卷");
ApiResult apiResult;
apiResult = ApiResultHandler.buildApiResult(200, "请求成功!", examManageService.findAll());
return apiResult;
}
@GetMapping("/exams/{page}/{size}")
public ApiResult findAll(@PathVariable("page") Integer page, @PathVariable("size") Integer size){
System.out.println("分页查询所有试卷");
ApiResult apiResult;
Page<ExamManage> examManage = new Page<>(page,size);
IPage<ExamManage> all = examManageService.findAll(examManage);
apiResult = ApiResultHandler.buildApiResult(200, "请求成功!", all);
return apiResult;
}
@GetMapping("/exam/{examCode}")
public ApiResult findById(@PathVariable("examCode") Integer examCode){
System.out.println("根据ID查找");
ExamManage res = examManageService.findById(examCode);
if(res == null) {
return ApiResultHandler.buildApiResult(10000,"考试编号不存在",null);
}
return ApiResultHandler.buildApiResult(200,"请求成功!",res);
}
@DeleteMapping("/exam/{examCode}")
public ApiResult deleteById(@PathVariable("examCode") Integer examCode){
int res = examManageService.delete(examCode);
return ApiResultHandler.buildApiResult(200,"删除成功",res);
}
@PutMapping("/exam")
public ApiResult update(@RequestBody ExamManage exammanage){
int res = examManageService.update(exammanage);
// if (res == 0) {
// return ApiResultHandler.buildApiResult(20000,"请求参数错误");
// }
System.out.print("更新操作执行---");
return ApiResultHandler.buildApiResult(200,"更新成功",res);
}
@PostMapping("/exam")
public ApiResult add(@RequestBody ExamManage exammanage){
int res = examManageService.add(exammanage);
if (res ==1) {
return ApiResultHandler.buildApiResult(200, "添加成功", res);
} else {
return ApiResultHandler.buildApiResult(400,"添加失败",res);
}
}
@GetMapping("/examManagePaperId")
public ApiResult findOnlyPaperId() {
ExamManage res = examManageService.findOnlyPaperId();
if (res != null) {
return ApiResultHandler.buildApiResult(200,"请求成功",res);
}
return ApiResultHandler.buildApiResult(400,"请求失败",res);
}
}
package com.rabbiter.oes.serviceimpl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.rabbiter.oes.entity.ExamManage;
import com.rabbiter.oes.mapper.ExamManageMapper;
import com.rabbiter.oes.service.ExamManageService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Random;
@Service
public class ExamManageServiceImpl implements ExamManageService {
@Autowired
private ExamManageMapper examManageMapper;
@Autowired
private PaperServiceImpl paperService;
private void setMaxScore(List<ExamManage> examManageList) {
for (ExamManage examManage : examManageList) {
examManage.setTotalScore(paperService.getMaxScore(examManage.getPaperId()));
}
}
@Override
public List<ExamManage> findAll() {
Page<ExamManage> examManage = new Page<>(0,9999);
List<ExamManage> examManageList = examManageMapper.findAll(examManage).getRecords();
setMaxScore(examManageList);
return examManageList;
}
@Override
public IPage<ExamManage> findAll(Page<ExamManage> page) {
IPage<ExamManage> iPage = examManageMapper.findAll(page);
setMaxScore(iPage.getRecords());
return iPage;
}
@Override
public ExamManage findById(Integer examCode) {
ExamManage examManage = examManageMapper.findById(examCode);
examManage.setTotalScore(paperService.getMaxScore(examManage.getPaperId()));
return examManage;
}
@Override
public int delete(Integer examCode) {
// 移除题目关联
ExamManage examManage = examManageMapper.findById(examCode);
if(examManage == null) {
return 0;
}
paperService.deleteByPaperId(examManage.getPaperId());
return examManageMapper.delete(examCode);
}
@Override
public int update(ExamManage exammanage) {
return examManageMapper.update(exammanage);
}
@Override
public int add(ExamManage exammanage) {
return examManageMapper.add(exammanage);
}
@Override
public ExamManage findOnlyPaperId() {
return examManageMapper.findOnlyPaperId();
}
}
package com.rabbiter.oes.vo;
public class AnswerVO {
private Long questionId;
private String question;
private String subject;
private String score;
private String section;
private String level;
private String type;
public Long getQuestionId() {
return questionId;
}
public void setQuestionId(Long questionId) {
this.questionId = questionId;
}
public String getQuestion() {
return question;
}
public void setQuestion(String question) {
this.question = question;
}
public String getSubject() {
return subject;
}
public void setSubject(String subject) {
this.subject = subject;
}
public String getScore() {
return score;
}
public void setScore(String score) {
this.score = score;
}
public String getSection() {
return section;
}
public void setSection(String section) {
this.section = section;
}
public String getLevel() {
return level;
}
public void setLevel(String level) {
this.level = level;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
@Override
public String toString() {
return "AnswerVO{" +
"question='" + question + '\'' +
", subject='" + subject + '\'' +
", score='" + score + '\'' +
", section='" + section + '\'' +
", level='" + level + '\'' +
", type='" + type + '\'' +
'}';
}
}
六、底部获取项目源码带万字文档(9.9¥带走)
有问题,或者需要协助调试运行项目的也可以