温馨提示×

温馨提示×

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

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

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

发布时间:2020-06-02 20:49:33 阅读:637 作者:Leah 栏目:编程语言
Java开发者专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

这篇文章主要为大家详细介绍了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实现在线测评考试系统的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

向AI问一下细节

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

AI

开发者交流群×