我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Java Online Exam在线考试系统怎么实现

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Java Online Exam在线考试系统怎么实现

这篇文章主要介绍“Java Online Exam在线考试系统怎么实现”,在日常操作中,相信很多人在Java Online Exam在线考试系统怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java Online Exam在线考试系统怎么实现”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

一、项目简述

本系统主要实现的功能有: 学生以及老师的注册登录,在线考试,错题查询,学生管理,问题管理,错题管理,错题查询,分数查询,试卷管 理,人工组卷。自动组卷,教师,班级,统计等等管理功能。

二、项目运行

环境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe (IntelliJ IDEA,Eclispe,MyEclispe,Sts 都支持)

项目技术: VUE+Springboot+ SpringMVC + MyBatis + ThymeLeaf + JavaScript + JQuery + Ajax + maven等等

课程信息控制器:

 @RestController@RequestMapping(value = "/v1/subjects")public class SubjectController {     private static Logger logger = LoggerFactory.getLogger(SubjectController.class);     @Autowired    SubjectService subjectService;     @ApiOperation(value = "获取科目列表", notes = "")    @RequestMapping(value = "", method = RequestMethod.GET)    @PreAuthorize("hasAuthority('" + Role.ROLE_TEACHER + "') or hasAuthority('" + Role.ROLE_ADMIN + "')")    public PageInfo<Subject> getSubjectList(@RequestParam(required = false) Integer pageIndex,                                        @RequestParam(required = false) Integer pageSize,                                        @RequestParam(required = false) Integer limit,                                        @RequestParam(required = false) Integer offset) {        if(pageIndex != null && pageSize != null) {            PageHelper.startPage(pageIndex, pageSize);        }        List<Subject> subjects = subjectService.getSubjectList();        PageInfo pageInfo = new PageInfo(subjects);        return pageInfo;    }     @ApiOperation(value = "根据名字获取科目信息", notes = "根据科目名称获取科目详细信息")    @ApiImplicitParam(name = "name", value = "科目名称", required = true, dataType = "String", paramType = "path")    @RequestMapping(value = "/{name}/name", method = RequestMethod.GET)    @PreAuthorize("hasAuthority('" + Role.ROLE_TEACHER + "') or hasAuthority('" + Role.ROLE_ADMIN + "')")    public List<Subject> getSubjectByName(@PathVariable String name) {        return subjectService.getSubjectFuzzy(name);    }      @ApiOperation(value = "获取课程信息", notes = "根据课程id获取课程详细信息")    @ApiImplicitParam(name = "idOrName", value = "课程ID或名称", required = true, dataType = "String", paramType = "path")    @RequestMapping(value = "/search/{idOrName}", method = RequestMethod.GET)    @PreAuthorize("hasAuthority('" + Role.ROLE_TEACHER + "') or hasAuthority('" + Role.ROLE_ADMIN + "')")    public List<Subject> getSubjectForSearch(@PathVariable String idOrName) {        List<Subject> subjects = new ArrayList<Subject>();        Subject subject = subjectService.getSubjectByName(idOrName);        if (subject == null) {            try {                subject = subjectService.getSubjectById(idOrName);            } catch (Exception e) {             }        }        if (subject != null) {            subjects.add(subject);        }        return subjects;    }     @ApiOperation(value = "创建课程", notes = "创建课程")    @ApiImplicitParam(name = "subject", value = "课程实体Subject", required = true, dataType = "Subject")    @RequestMapping(value = "", method = RequestMethod.POST)    @PreAuthorize("hasAuthority('" + Role.ROLE_TEACHER + "') or hasAuthority('" + Role.ROLE_ADMIN + "')")    public ResponseEntity<?> postSubject(@RequestBody Subject subject) {        if(subjectService.getSubjectByName(subject.getName()) != null) {            return new ResponseEntity<Object>(new Dto("课程已存在!"), HttpStatus.INTERNAL_SERVER_ERROR);        }        subjectService.saveSubject(subject);        return new ResponseEntity(HttpStatus.CREATED);    }     @ApiOperation(value = "获取课程信息", notes = "根据课程id获取课程详细信息")    @ApiImplicitParam(name = "id", value = "课程ID", required = true, dataType = "String", paramType = "path")    @RequestMapping(value = "/{id}", method = RequestMethod.GET)    @PreAuthorize("hasAuthority('" + Role.ROLE_TEACHER + "') or hasAuthority('" + Role.ROLE_ADMIN + "')")    public Subject getSubject(@PathVariable String id) {        return subjectService.getSubjectById(id);    }     @ApiOperation(value = "更新课程信息", notes = "根据课程id更新用户信息")    @ApiImplicitParam(name = "subject", value = "课程实体", required = true, dataType = "Subject")    @RequestMapping(value = "", method = RequestMethod.PUT)    @PreAuthorize("hasAuthority('" + Role.ROLE_TEACHER + "') or hasAuthority('" + Role.ROLE_ADMIN + "')")    public ResponseEntity<?> putSubject(@RequestBody Subject subject) {        subjectService.updateSubject(subject);        return new ResponseEntity(HttpStatus.OK);    }     @ApiOperation(value = "删除课程", notes = "根据课程id删除课程")    @ApiImplicitParam(name = "id", value = "课程ID", required = true, dataType = "Long", paramType = "path")    @RequestMapping(value = "/{id}", method = RequestMethod.DELETE)    @PreAuthorize("hasAuthority('" + Role.ROLE_TEACHER + "') or hasAuthority('" + Role.ROLE_ADMIN + "')")    public ResponseEntity<?> deleteSubject(@PathVariable String id) {        try {            subjectService.deleteSubject(id);        }catch (RuntimeException e) {            return new ResponseEntity(new Dto("该课程包含有考试,不能删除"), HttpStatus.INTERNAL_SERVER_ERROR);        }        return new ResponseEntity(HttpStatus.OK);    }}

题目信息控制器:

 @RestController@RequestMapping(value = "/v1/questions")public class QuestionController {     private static Logger logger = LoggerFactory.getLogger(QuestionController.class);     @Autowired    QuestionService questionService;     @Autowired    PaperAnswerPaperService paperAnswerPaperService;     @ApiOperation(value = "获取题目分页列表", notes = "")    @RequestMapping(value = "", method = RequestMethod.GET)    @PreAuthorize("hasAuthority('" + Role.ROLE_TEACHER + "') or hasAuthority('" + Role.ROLE_ADMIN + "')")    public PageInfo<Question> getQuestionListByPage(@RequestParam(required = false) Integer pageIndex,                                                    @RequestParam(required = false) Integer pageSize,                                                    @RequestParam(required = false) Integer limit,                                                    @RequestParam(required = false) Integer offset) {        if(pageIndex != null && pageSize != null) {            PageHelper.startPage(pageIndex, pageSize);        }        List<Question> questions = questionService.getQuestionList();        PageInfo pageInfo = new PageInfo(questions);        return pageInfo;    }     @ApiOperation(value = "获取试卷题目分页列表", notes = "")    @RequestMapping(value = "/papers/{paperId}", method = RequestMethod.GET)    @PreAuthorize("hasAuthority('" + Role.ROLE_TEACHER + "') or hasAuthority('" + Role.ROLE_ADMIN + "')")    public PageInfo<Question> getQuestionListByPaper(@PathVariable String paperId,                                                     @RequestParam(required = false) Integer pageIndex,                                                     @RequestParam(required = false) Integer pageSize,                                                     @RequestParam(required = false) Integer limit,                                                     @RequestParam(required = false) Integer offset) {        if(pageIndex != null && pageSize != null) {            PageHelper.startPage(pageIndex, pageSize);        }        List<Question> questions = questionService.getQuestionListByPaper(paperId);        PageInfo pageInfo = new PageInfo(questions);        return pageInfo;    }     @ApiOperation(value = "获取试卷题目数量", notes = "")    @RequestMapping(value = "/papers/{paperId}/count", method = RequestMethod.GET)    @PreAuthorize("hasAuthority('" + Role.ROLE_TEACHER + "') or hasAuthority('" + Role.ROLE_ADMIN + "') or hasAuthority('" + Role.ROLE_STUDENT + "')")    public ResponseEntity<?> getQuestionCountByPaper(@PathVariable String paperId) {        Integer count = questionService.countByPaperId(paperId);        return new ResponseEntity<Object>(count, HttpStatus.OK);    }     @ApiOperation(value = "创建题目", notes = "创建题目")    @ApiImplicitParams({            @ApiImplicitParam(name = "question", value = "题目实体Question", required = true, dataType = "Question"),            @ApiImplicitParam(name = "id", value = "试卷id", required = true, dataType = "String", paramType = "path")    })    @RequestMapping(value = "/{id}", method = RequestMethod.POST)    @PreAuthorize("hasAuthority('" + Role.ROLE_TEACHER + "') or hasAuthority('" + Role.ROLE_ADMIN + "')")    public ResponseEntity<?> postQuestion(@PathVariable("id") String id, @RequestBody Question question) {        questionService.saveQuestion(id, question);        return new ResponseEntity(HttpStatus.CREATED);    }     @ApiOperation(value = "获取题目信息", notes = "根据题目id获取题目详细信息")    @ApiImplicitParam(name = "id", value = "题目ID", required = true, dataType = "String", paramType = "path")    @RequestMapping(value = "/{id}", method = RequestMethod.GET)    @PreAuthorize("hasAuthority('" + Role.ROLE_TEACHER + "') or hasAuthority('" + Role.ROLE_ADMIN + "') or hasAuthority('" + Role.ROLE_STUDENT + "')")    public Question getQuestion(@PathVariable String id) {        return questionService.getQuestion(id);    }     @ApiOperation(value = "根据试卷id和题目编号获取题目信息", notes = "根据题目id获取题目详细信息")    @ApiImplicitParams({            @ApiImplicitParam(name = "paperId", value = "试卷ID", required = true, dataType = "String", paramType = "path"),            @ApiImplicitParam(name = "number", value = "题目编号", required = true, dataType = "String", paramType = "path")    })    @RequestMapping(value = "/papers/{paperId}/questions/{number}", method = RequestMethod.GET)    @PreAuthorize("hasAuthority('" + Role.ROLE_TEACHER + "') or hasAuthority('" + Role.ROLE_ADMIN + "') or hasAuthority('" + Role.ROLE_STUDENT + "')")    public Question getQuestionByPaperIdAndQuestionId(@PathVariable String paperId,                                                      @PathVariable Integer number,                                                      @RequestParam(required = false) String answerPaperId) {        PaperAnswerPaper paperAnswerPaper = null;        //传入的是答卷Id        if(answerPaperId != null) {            // TODO: 2017-04-17            paperAnswerPaper = paperAnswerPaperService.getByAnswerPaperId(answerPaperId);            if(paperAnswerPaper != null) {                return questionService.getQuestionByPaperIdAndQuestionNumber(paperAnswerPaper.getPaperId(), number);            }else {                logger.error("根据答卷id获取答卷失败");            }        }        return questionService.getQuestionByPaperIdAndQuestionNumber(paperId, number);    }     @ApiOperation(value = "获取题目信息", notes = "根据题目name获取题目详细信息")    @ApiImplicitParam(name = "name", value = "试卷name", required = true, dataType = "String", paramType = "path")    @RequestMapping(value = "/name/{name}", method = RequestMethod.GET)    @PreAuthorize("hasAuthority('" + Role.ROLE_TEACHER + "') or hasAuthority('" + Role.ROLE_ADMIN + "') or hasAuthority('" + Role.ROLE_STUDENT + "')")    public List<Question> getQuestionByName(@PathVariable String name) {        //模糊查询        return questionService.getQuestionFuzzy(name);    }     @ApiOperation(value = "获取题目信息", notes = "根据试卷id获取所有题目")    @ApiImplicitParam(name = "paperId", value = "试卷ID", required = true, dataType = "String", paramType = "path")    @RequestMapping(value = "/papers/{paperId}/questions", method = RequestMethod.GET)    @PreAuthorize("hasAuthority('" + Role.ROLE_TEACHER + "') or hasAuthority('" + Role.ROLE_ADMIN + "') or hasAuthority('" + Role.ROLE_STUDENT + "')")    public List<Question> getQuestionByPaperId(@PathVariable String paperId) {        return questionService.getQuestionByPaperId(paperId);    }     @ApiOperation(value = "获取题目信息", notes = "根据试卷id获取所有题目,但不返回答案")    @ApiImplicitParam(name = "paperId", value = "试卷ID", required = true, dataType = "String", paramType = "path")    @RequestMapping(value = "/papers/{paperId}/ignore", method = RequestMethod.GET)    @PreAuthorize("hasAuthority('" + Role.ROLE_TEACHER + "') or hasAuthority('" + Role.ROLE_ADMIN + "') or hasAuthority('" + Role.ROLE_STUDENT + "')")    public List<Question> getQuestionByPaperIdIgnoreAnswer(@PathVariable String paperId) {        return questionService.getQuestionByPaperIdIgnoreAnswer(paperId);    }     @ApiOperation(value = "更新题目信息", notes = "根据题目id更新题目信息")    @ApiImplicitParam(name = "question", value = "题目实体", required = true, dataType = "Question")    @RequestMapping(value = "", method = RequestMethod.PUT)    @PreAuthorize("hasAuthority('" + Role.ROLE_TEACHER + "') or hasAuthority('" + Role.ROLE_ADMIN + "')")    public ResponseEntity<?> putQuestion(@RequestBody Question question) {        questionService.updateQuestion(question);        return new ResponseEntity(HttpStatus.OK);    }     @ApiOperation(value = "删除题目", notes = "根据题目id删除试卷")    @ApiImplicitParam(name = "id", value = "题目ID", required = true, dataType = "String", paramType = "path")    @RequestMapping(value = "/{id}", method = RequestMethod.DELETE)    @PreAuthorize("hasAuthority('" + Role.ROLE_TEACHER + "') or hasAuthority('" + Role.ROLE_ADMIN + "')")    public ResponseEntity<?> deleteQuestion(@PathVariable String id) {        questionService.deleteQuestion(id);        return new ResponseEntity(HttpStatus.OK);    }}

考试控制层,负责试卷提交等:

@RestController@RequestMapping("/v1/exam")public class ExamController {     @Autowired    ExamService examService;     @Autowired    AnswerPaperService answerPaperService;     @Autowired    AnswerQuestionService answerQuestionService;     @Autowired    AnswerPaperQuestionService answerPaperQuestionService;     @Autowired    QuestionService questionService;     @Autowired    PaperService paperService;     @Autowired    WrongQuestionService wrongQuestionService;     @Autowired    PaperAnswerPaperService paperAnswerPaperService;     @ApiOperation(value = "根据试卷id和题目编号获取题目信息", notes = "根据题目id获取题目详细信息")    @ApiImplicitParams({            @ApiImplicitParam(name = "paperId", value = "试卷ID", required = true, dataType = "String", paramType = "path"),            @ApiImplicitParam(name = "number", value = "题目编号", required = true, dataType = "String", paramType = "path")    })    @RequestMapping(value = "/questions/{number}", method = RequestMethod.GET)    @PreAuthorize("hasAuthority('" + Role.ROLE_TEACHER + "') or hasAuthority('" + Role.ROLE_ADMIN + "') or hasAuthority('" + Role.ROLE_STUDENT + "')")    public Question getQuestionByPaperIdAndQuestionId(@RequestParam String paperId,                                                      @RequestParam String username,                                                      @RequestParam(required = false) String answerPaperId,                                                      @PathVariable Integer number) {        Question question = null;        AnswerQuestion answerQuestion = null;        if(answerPaperId == null) {            Paper paper = paperService.getPaperById(paperId);            if(paper != null) {                AnswerPaper answerPaper = answerPaperService.findByAnswerUserAndPaperName(username, paper.getName());                if(answerPaper != null) {                    answerQuestion = answerQuestionService.getAnswerQuestionByPaperIdAndQuestionNumber(answerPaper.getId(), number);                }            }        }else {            answerQuestion = answerQuestionService.getAnswerQuestionByPaperIdAndQuestionNumber(answerPaperId, number);        }         if(answerQuestion == null) {            question = questionService.getQuestionByPaperIdAndQuestionNumber(paperId, number);            if(question != null) {                //答案不返回                question.setAnswer("");            }        } else {            question = new Question();            question.setId(answerQuestion.getId());            question.setNumber(answerQuestion.getNumber());            question.setTitle(answerQuestion.getTitle());            question.setScore(answerQuestion.getScore());            question.setType(answerQuestion.getType());            question.setOptionA(answerQuestion.getOptionA());            question.setOptionB(answerQuestion.getOptionB());            question.setOptionC(answerQuestion.getOptionC());            question.setOptionD(answerQuestion.getOptionD());            question.setAnswer(answerQuestion.getAnswer());        }        return question;    }     @RequestMapping(value = "/submit/{type}/{username}", method = RequestMethod.POST)    @PreAuthorize("hasAuthority('" + Role.ROLE_TEACHER + "') or hasAuthority('" + Role.ROLE_ADMIN + "') or hasAuthority('" + Role.ROLE_STUDENT + "')")    public ResponseEntity<?> submit(@RequestBody Paper paper, @PathVariable String type,                                    @PathVariable String username,                                    @RequestParam(required = false) String answerPaperId) {                if(type.equals("official")) {                        AnswerPaper answerPaper = new AnswerPaper();            if(answerPaperId != null) {                answerPaper.setId(answerPaperId);            }else {                return new ResponseEntity<Object>(HttpStatus.INTERNAL_SERVER_ERROR);            }            answerPaper.setAnswerTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));            answerPaper.setPaperName(paper.getName());            answerPaper.setAnswerUser(username);            answerPaper.setChecked("false");            answerPaper.setFinished("true");            answerPaper.setType("official");            examService.updateAnswerPaper(answerPaper);        } else if(type.equals("simulate")) {                        AnswerPaper answerPaper = new AnswerPaper();            if(answerPaperId != null) {                answerPaper.setId(answerPaperId);            }else {                return new ResponseEntity<Object>(HttpStatus.INTERNAL_SERVER_ERROR);            }            answerPaper.setAnswerTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));            answerPaper.setPaperName(paper.getName());            answerPaper.setAnswerUser(username);            answerPaper.setChecked("false");            answerPaper.setFinished("true");            answerPaper.setType("simulate");            examService.updateAnswerPaper(answerPaper);        }else if(type.equals("practice")) {                        int score = 0;             //正确题目数            double right = 0.0;             //错误题目数            double wrong = 0.0;             double correctRate = 0.0;             List<Question> questions = questionService.getQuestionByPaperId(paper.getId());             AnswerPaper answerPaper = answerPaperService.findByAnswerUserAndPaperName(username, paper.getName());             List<AnswerQuestion> answerQuestions = answerQuestionService.findByAnswerPaperId(answerPaper.getId());                         List<DtoRightAndWrong> results = new ArrayList<DtoRightAndWrong>();             DtoRightAndWrong dtoRightAndWrong = null;             //遍历提交的试卷的题目            for(AnswerQuestion answerQuestion : answerQuestions) {                 //遍历包含正确答案的题目                for(Question question : questions) {                                        if(answerQuestion.getNumber().equals(question.getNumber())) {                        if(answerQuestion.getAnswer().equals(question.getAnswer())) {                                                        score += Integer.parseInt(question.getScore());                            right ++;                        }else {                            wrong ++;                            //记录错题                            dtoRightAndWrong = new DtoRightAndWrong();                            dtoRightAndWrong.setQuestion(question);                            dtoRightAndWrong.setAnswerQuestion(answerQuestion);                            results.add(dtoRightAndWrong);                             //保存错题                            WrongQuestion wrongQuestion = new WrongQuestion();                            try{                                BeanUtils.copyProperties(wrongQuestion, answerQuestion);                                wrongQuestion.setUsername(username);                                wrongQuestion.setRightAnswer(question.getAnswer());                                wrongQuestion.setAnalysis(question.getAnalysis());                                if(wrongQuestionService.getWrongQuestion(wrongQuestion.getId()) == null) {                                    wrongQuestionService.saveQuestion(wrongQuestion);                                }                            }catch (Exception e) {                                System.out.println(wrongQuestion.toString());                            }                         }                    }                }            }            //计算正确率            correctRate = (right/(right + wrong)) * 100;             DtoResult result = new DtoResult();            result.setScore(score);            result.setRight(right);            result.setWrong(wrong);            result.setCorrectRate(correctRate);            result.setResults(results);             Paper paper1 = paperService.getPaperById(paper.getId());            //更新参与人数            paper1.setPeoples(String.valueOf(Integer.parseInt(paper1.getPeoples()) + 1));            paperService.updatePaper(paper1);             return new ResponseEntity<Object>(result, HttpStatus.OK);        }        Paper paper1 = paperService.getPaperById(paper.getId());        //更新参与人数        paper1.setPeoples(String.valueOf(Integer.parseInt(paper1.getPeoples() + 1)));        paperService.updatePaper(paper1);        return new ResponseEntity<Object>(HttpStatus.OK);    }         @RequestMapping(value = "/submit/one/{username}", method = RequestMethod.POST)    @PreAuthorize("hasAuthority('" + Role.ROLE_TEACHER + "') or hasAuthority('" + Role.ROLE_ADMIN + "') or hasAuthority('" + Role.ROLE_STUDENT + "')")    public ResponseEntity<?> submitOne(@PathVariable String username, @RequestBody DtoAnswerPaper dtoAnswerPaper) {        Paper paper = dtoAnswerPaper.getPaper();        Question question = dtoAnswerPaper.getQuestion();        //判断数据库是否保存了这次答卷        AnswerPaper answerPaper = answerPaperService.getAnswerPaperByNameAndUser(paper.getName(), username);        AnswerQuestion answerQuestion = null;        AnswerPaperQuestion answerPaperQuestion = null;        List<AnswerQuestion> answerQuestions = null;        //重新生成id        String answerPaperId = IdGen.uuid();        String answerQuestionId = IdGen.uuid();        //答卷为空,则执行保存        if(answerPaper == null) {            answerPaper = new AnswerPaper();            answerPaper.setId(answerPaperId);            answerPaper.setAnswerTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));            answerPaper.setPaperName(paper.getName());            answerPaper.setType(paper.getType());            answerPaper.setAnswerUser(username);            answerPaper.setChecked("false");            answerPaper.setFinished("false");             //保存答卷            answerPaperService.saveAnswerPaper(answerPaper);             // TODO: 2017-04-17 保存试卷答卷            PaperAnswerPaper paperAnswerPaper = new PaperAnswerPaper();            paperAnswerPaper.setPaperId(paper.getId());            paperAnswerPaper.setAnswerPaperId(answerPaperId);            paperAnswerPaperService.save(paperAnswerPaper);             //新记录            answerQuestion = new AnswerQuestion();            //初始化信息            answerQuestion.setId(answerQuestionId);            answerQuestion.setTitle(question.getTitle());            answerQuestion.setType(question.getType());            answerQuestion.setNumber(question.getNumber());            answerQuestion.setOptionA(question.getOptionA());            answerQuestion.setOptionB(question.getOptionB());            answerQuestion.setOptionC(question.getOptionC());            answerQuestion.setOptionD(question.getOptionD());            answerQuestion.setContent(question.getContent());            answerQuestion.setScore(question.getScore());            answerQuestion.setAnalysis(question.getAnalysis());            answerQuestion.setAnswer(question.getAnswer());              answerPaperQuestion = new AnswerPaperQuestion();            answerPaperQuestion.setAnswerPaperId(answerPaper.getId());            answerPaperQuestion.setAnswerQuestionId(answerQuestionId);             //保存            answerQuestionService.saveAnswerQuestion(answerQuestion);            answerPaperQuestionService.saveAnswerPaperQuestion(answerPaperQuestion);             return new ResponseEntity<Object>(answerPaper, HttpStatus.OK);        } else {            answerQuestions = answerQuestionService.findByAnswerPaperId(answerPaper.getId());            if(answerQuestions != null && answerQuestions.size() > 0) {                int count = 0;                AnswerQuestion existAnswerQuestion = null;                for(AnswerQuestion question1 : answerQuestions) {                    if (question1.getNumber().equals(question.getNumber())) {                        count++;                        existAnswerQuestion = question1;//保存当前存在的记录                    }                }                //记录不存在                if(count == 0) {                    //新记录                    answerQuestion = new AnswerQuestion();                    answerPaperQuestion = new AnswerPaperQuestion();                      answerQuestion = new AnswerQuestion();                    //初始化信息                    answerQuestion.setId(answerQuestionId);                    answerQuestion.setTitle(question.getTitle());                    answerQuestion.setType(question.getType());                    answerQuestion.setNumber(question.getNumber());                    answerQuestion.setOptionA(question.getOptionA());                    answerQuestion.setOptionB(question.getOptionB());                    answerQuestion.setOptionC(question.getOptionC());                    answerQuestion.setOptionD(question.getOptionD());                    answerQuestion.setContent(question.getContent());                    answerQuestion.setScore(question.getScore());                    answerQuestion.setAnalysis(question.getAnalysis());                    answerQuestion.setAnswer(question.getAnswer());                      answerPaperQuestion = new AnswerPaperQuestion();                    answerPaperQuestion.setAnswerPaperId(answerPaper.getId());                    answerPaperQuestion.setAnswerQuestionId(answerQuestionId);                     //保存                    answerQuestionService.saveAnswerQuestion(answerQuestion);                    answerPaperQuestionService.saveAnswerPaperQuestion(answerPaperQuestion);                } else {                    //记录存在,则执行更新                    // TODO: 2017/3/30                    //更新当前存在的记录                    existAnswerQuestion.setAnswer(question.getAnswer());                     answerQuestionService.updateAnswerQuestion(existAnswerQuestion);                }            }        }        return new ResponseEntity<Object>(answerPaper, HttpStatus.OK);    }}

答卷控制层,用于获取已经提交的答卷:

@RestController@RequestMapping("/v1/answer-papers")public class AnswerPaperController {     @Autowired    AnswerPaperService answerPaperService;     @Autowired    AnswerQuestionService answerQuestionService;         @RequestMapping(value = "/{id}", method = RequestMethod.GET)    @PreAuthorize("hasAuthority('" + Role.ROLE_TEACHER + "') or hasAuthority('" + Role.ROLE_ADMIN + "') or hasAuthority('" + Role.ROLE_STUDENT + "')")    public AnswerPaper getAnswerPaper(@PathVariable String id) {        return answerPaperService.getAnswerPaperById(id);    }         @RequestMapping(value = "/name/{name}", method = RequestMethod.GET)    @PreAuthorize("hasAuthority('" + Role.ROLE_TEACHER + "') or hasAuthority('" + Role.ROLE_ADMIN + "')")    public List<AnswerPaper> getAnswerPaperByName(@PathVariable String name) {        return answerPaperService.getAnswerPaperFuzzy(name);    }         @RequestMapping(value = "/papers/{paperId}/questions/{number}", method = RequestMethod.GET)    @PreAuthorize("hasAuthority('" + Role.ROLE_TEACHER + "') or hasAuthority('" + Role.ROLE_ADMIN + "') or hasAuthority('" + Role.ROLE_STUDENT + "')")    public AnswerQuestion getQuestionByPaperIdAndQuestionId(@PathVariable String paperId, @PathVariable Integer number) {        AnswerQuestion answerQuestion = answerQuestionService.getAnswerQuestionByPaperIdAndQuestionNumber(paperId, number);        return answerQuestion;    }         @RequestMapping(value = "/users/{username}", method = RequestMethod.GET)    @PreAuthorize("hasAuthority('" + Role.ROLE_TEACHER + "') or hasAuthority('" + Role.ROLE_ADMIN + "') or hasAuthority('" + Role.ROLE_STUDENT + "')")    public PageInfo<AnswerPaper> getListByUser(@PathVariable("username") String username,                                               @RequestParam(required = false) Integer pageIndex,                                               @RequestParam(required = false) Integer pageSize,                                               @RequestParam(required = false) Integer limit,                                               @RequestParam(required = false) Integer offset) {        if(pageIndex != null && pageSize != null) {            PageHelper.startPage(pageIndex, pageSize);        }        List<AnswerPaper> answerPapers = answerPaperService.getAnswerPaperListByAnswerUser(username);        PageInfo pageInfo = new PageInfo(answerPapers);        return pageInfo;    }     @RequestMapping(value = "/users/{username}/type/{type}", method = RequestMethod.GET)    @PreAuthorize("hasAuthority('" + Role.ROLE_TEACHER + "') or hasAuthority('" + Role.ROLE_ADMIN + "') or hasAuthority('" + Role.ROLE_STUDENT + "')")    public PageInfo<AnswerPaper> getListByUserAndType(@PathVariable("username") String username,                                                @PathVariable("type") String type,                                                @RequestParam(required = false) Integer pageIndex,                                                @RequestParam(required = false) Integer pageSize,                                                @RequestParam(required = false) Integer limit,                                                @RequestParam(required = false) Integer offset) {        if(pageIndex != null && pageSize != null) {            PageHelper.startPage(pageIndex, pageSize);        }        List<AnswerPaper> answerPapers = answerPaperService.getAnswerPaperListByAnswerUserAndType(username, type);        PageInfo pageInfo = new PageInfo(answerPapers);        return pageInfo;    }         @RequestMapping("/check")    @PreAuthorize("hasAuthority('" + Role.ROLE_TEACHER + "') or hasAuthority('" + Role.ROLE_ADMIN + "')")    public DtoTask countUnCheckAnswerPaper() {        DtoTask dtoTask = new DtoTask();        Integer checked = answerPaperService.countCheck("true");        Integer unChecked = answerPaperService.countCheck("false");        dtoTask.setChecked(checked);        dtoTask.setUnChecked(unChecked);        return dtoTask;    }         @RequestMapping(value = "", method = RequestMethod.GET)    @PreAuthorize("hasAuthority('" + Role.ROLE_TEACHER + "') or hasAuthority('" + Role.ROLE_ADMIN + "')")    public PageInfo<AnswerPaper> getListByUser(@RequestParam(required = false) Integer pageIndex,                                               @RequestParam(required = false) Integer pageSize,                                               @RequestParam(required = false) Integer limit,                                               @RequestParam(required = false) Integer offset) {        if(pageIndex != null && pageSize != null) {            PageHelper.startPage(pageIndex, pageSize);        }        List<AnswerPaper> answerPapers = answerPaperService.getAnswerPaperList();        PageInfo pageInfo = new PageInfo(answerPapers);        return pageInfo;    }         @RequestMapping(value = "", method = RequestMethod.PUT)    @PreAuthorize("hasAuthority('" + Role.ROLE_TEACHER + "') or hasAuthority('" + Role.ROLE_ADMIN + "')")    public ResponseEntity<?> putPaper(@RequestBody AnswerPaper answerPaper) {        answerPaperService.updatePaper(answerPaper);        return new ResponseEntity(HttpStatus.OK);    }         @RequestMapping(value = "/{id}/calculate", method = RequestMethod.PUT)    @PreAuthorize("hasAuthority('" + Role.ROLE_TEACHER + "') or hasAuthority('" + Role.ROLE_ADMIN + "') or hasAuthority('" + Role.ROLE_STUDENT + "')")    public ResponseEntity<?> CalculationScore(@PathVariable String id) {                List<AnswerQuestion> questions = answerQuestionService.findByAnswerPaperId(id);        if(questions != null && questions.size() > 0) {             int score = 0;            try {                for(AnswerQuestion question : questions) {                    score += Integer.parseInt(question.getMarkScore());                }            } catch (Exception e) {                // TODO: 2017/4/1            }                          AnswerPaper answerPaper = new AnswerPaper();            answerPaper.setId(id);            answerPaper.setScore(Integer.toString(score));            answerPaper.setChecked("true");            answerPaperService.updatePaper(answerPaper);        } else {            // TODO: 2017/4/1        }        return new ResponseEntity<Object>(HttpStatus.OK);    }     @RequestMapping(value = "/analysis/paper")    @PreAuthorize("hasAuthority('" + Role.ROLE_TEACHER + "') or hasAuthority('" + Role.ROLE_ADMIN + "')")    public List<PaperAnalysis> analysisPaper() {        return answerPaperService.analysisPaper();    }}

到此,关于“Java Online Exam在线考试系统怎么实现”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Java Online Exam在线考试系统怎么实现

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Java Online Exam在线考试系统怎么实现

这篇文章主要介绍“Java Online Exam在线考试系统怎么实现”,在日常操作中,相信很多人在Java Online Exam在线考试系统怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java
2023-06-21

Java如何实现在线高中考试系统

这篇文章主要介绍了Java如何实现在线高中考试系统,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。项目分为前台和后台,前台主要为学生角色、后台主要为管理员角色。管理员添加试题和
2023-06-29

Java怎么实现在线考试云平台

这篇文章主要讲解了“Java怎么实现在线考试云平台”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java怎么实现在线考试云平台”吧!考试流程:用户前台注册成为学生管理员后台添加老师,系统将该
2023-06-25

Java怎样实现在线选课系统

Java怎样实现在线选课系统,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一、项目简述功能: 系统分为三个角色。最高权限管理员,学生,教师,包括 学生管理,教师管理,课程管理,
2023-06-21

Java怎么实现在线寄查快递系统

小编给大家分享一下Java怎么实现在线寄查快递系统,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!介绍超级管理员:系统管理、用户管理、网点管理、运输点管理、快递员管理、网点申请管理(审核)、报价管理(时效报价)等。普通用户:
2023-06-29

Java怎么实现在线小说阅读系统

本篇文章给大家分享的是有关Java怎么实现在线小说阅读系统,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。环境配置Jdk1.8 + Tomcat8.5 + mysql + Ecl
2023-06-29

PHP+MySQL怎么实现在线测试答题系统

本篇内容介绍了“PHP+MySQL怎么实现在线测试答题系统”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!这个实例主要给大家介绍如何使用jQu
2023-06-04

Java怎么实现在线服装销售商城系统

这篇文章主要介绍了Java怎么实现在线服装销售商城系统的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java怎么实现在线服装销售商城系统文章都会有所收获,下面我们一起来看看吧。一、项目运行环境配置:Jdk1.8
2023-06-29

如何使用Go语言和Redis实现在线考试系统

如何使用Go语言和Redis实现在线考试系统概述:在线考试系统是一种实现在线考试的应用程序。通过使用Go语言和Redis数据库,我们可以构建一个高效、可扩展和可靠的在线考试系统。本文将介绍如何使用Go语言和Redis来设计和实现一个基本的在
2023-10-26

Java如何实现考试管理系统

本篇内容主要讲解“Java如何实现考试管理系统”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java如何实现考试管理系统”吧!项目简述本系统功能包括:支持单选题、多选题、判断题支持学生(stud
2023-06-22

Node-red怎么实现在线评语系统

这篇文章主要介绍“Node-red怎么实现在线评语系统”,在日常操作中,相信很多人在Node-red怎么实现在线评语系统问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Node-red怎么实现在线评语系统”的疑
2023-06-29

如何利用C++实现一个简单的在线考试系统?

如何利用C++实现一个简单的在线考试系统?随着网络技术和计算机科学的快速发展,在线教育和远程学习越来越受到人们的重视。而在线考试系统则成为了教育机构和企业用于评估学生和员工能力的重要工具。本文将介绍如何利用C++编程语言实现一个简单的在线考
如何利用C++实现一个简单的在线考试系统?
2023-11-03

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录