温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Java实现在线测评考试系统代码

发布时间:2020-06-02 20:49:33 来源:亿速云 阅读:628 作者:Leah 栏目:编程语言

这篇文章主要为大家详细介绍了Java实现在线测评考试系统的方法,文中示例代码介绍的非常详细,零基础也能参考此文章,感兴趣的小伙伴们可以参考一下。

代码展示

package service;

import java.util.ArrayList;

import java.util.List;

import java.util.Random;

import util.Config;
import util.Md5Utils;
import entity.EntityContext;
import entity.ExamInfo;
import entity.Question;
import entity.QuestionInfo;
import entity.User;
import exception.IdOrPasswordException;

public class ExamServiceImpl implements ExamService {
private EntityContext entityContext;
private List<QuestionInfo> paper = new ArrayList<QuestionInfo>();
private Config config;
private User loginUser;

public List<QuestionInfo> getPaper() {

   return paper; } public void setPaper(List<QuestionInfo> paper) {    this.paper = paper; } public ExamServiceImpl(EntityContext entityContext, Config config) {    super();    this.entityContext = entityContext;    this.config = config; } public ExamServiceImpl(EntityContext entityContext) {    super();    this.entityContext = entityContext; } @Override public User login(int id, String password) throws IdOrPasswordException {    loginUser = entityContext.findUserById(id);    if (loginUser == null) {        throw new IdOrPasswordException("鏃犳鐢ㄦ埛!");    }    if (loginUser.getPassword().equals(Md5Utils.md5(password))) {        return loginUser;    }    throw new IdOrPasswordException("瀵嗙爜閿欒!"); } @Override public ExamInfo start() {    buildPaper();    ExamInfo examInfo = new ExamInfo();    examInfo.setUser(loginUser);    examInfo.setTimeLimit(config.getInt("TimeLimit"));    examInfo.setExamTitle(config.getString("PaperTitle"));    examInfo.setQuestionNumber(config.getInt("QuestionNumber"));    return examInfo; } private void buildPaper() {    int i = 0;    Random random = new Random();    for (int level = Question.LEVEL1; level <= Question.LEVEL10; level++) {        List<Question> list = entityContext.getQuestions(level);        Question q1 = list.remove(random.nextInt(list.size()));        Question q2 = list.remove(random.nextInt(list.size()));        paper.add(new QuestionInfo(++i, q1));        paper.add(new QuestionInfo(++i, q2));    } } @Override public QuestionInfo getQuestionInfo(int index) {    return paper.get(index - 1); } @Override public void sendUserAnswers(int questionIndex, List<Integer> answers) {    QuestionInfo questionInfo = paper.get(questionIndex - 1);    questionInfo.setUserAnswers(new ArrayList<Integer>(answers)); } @Override public int getTotalSocre() {    int score = 0;    for (QuestionInfo questionInfo : paper) {        if (questionInfo.getUserAnswers().equals(                questionInfo.getQuestion().getAnswers())) {            score += questionInfo.getQuestion().getScore();        }    }    return score; }}

看完这篇文章,你们学会Java实现在线测评考试系统的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI