Java小项目之:在线测评考试系统

Java小项目之:在线测评考试系统,让你可以在家考科一!
今天带来的java小项目是一套在线测评考试系统,题库是科目一的。不仅可以在家练练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学

习资料的也可以私信我!

祝关注我的人都:身体健康,财源广进,福如东海,寿比南山,早生贵子,从不掉发!

原文地址:https://blog.51cto.com/14623707/2469128

时间: 2024-10-06 10:03:24

Java小项目之:在线测评考试系统的相关文章

Java小项目之:投票系统

Java小项目之:投票系统今天给大家带来的是java编写的投票小系统,代码简易,适合初学者练手!代码展示:package com.tarena.wgh.servlet; import java.io.IOException;import java.io.PrintWriter;import java.util.*; import javax.servlet.ServletContext;import javax.servlet.ServletException;import javax.serv

Java小项目之:教你做个聊天系统!

Java小项目之:聊天系统今天给大家带来的java练手小项目是一个简单的聊天室,界面简单,操作不难.分为注册系统,登录系统和聊天系统三部分,很适合java小白练手.完整的源码和素材请关注并私信我获取! 界面展示: 代码展示:package chatRoom2; import java.io.BufferedReader;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.io.PrintWr

Java小项目之:文件的加密与解密!再也不怕存的小电影被别人发现了!

Java小项目之:文件的加密与解密!再也不怕存的小电影被别人发现了!今天带来的java小项目是加密解密系统,再也不怕别人偷看自己的电脑了,也可以正大光明的存小电影了.减少借别人电脑被看隐私的尴尬,从这个项目开始!界面展示: 部分代码展示:package wt.diy.encryption.gui; import java.io.File; import javax.swing.JFileChooser;import javax.swing.JFrame;import javax.swing.JO

php小项目-web在线文件管理器

php小项目-web在线文件管理器 一 项目结果相关视图 二 项目经验 通过简单的实现小项目,对php的文件相关操作更加熟悉,主要用于熟悉文件的相关操作 三 源代码下载地址 http://files.cnblogs.com/files/qiujun/fileManager.zip

java小项目之:植物大战僵尸,这个僵尸有点冷!内附素材源码

Java小项目之:植物大战僵尸! <植物大战僵尸>是由PopCap Games开发的一款益智策略类单机游戏,于2009年5月5日发售,这款游戏可谓是无人不知无人不晓. 在我身边,上到40岁的大叔阿姨,下到7.8岁的小弟弟妹妹都听说和玩过这游戏.在以前智能手机还没流行的时候,各种黑网吧,游戏厅便有着玩这游戏的人.当3G技术现世,半智能手机和智能手机出现后,这款游戏更是如日中天,与愤怒的小鸟一起霸占了手机游戏市场(但当时估计都是盗版的). 相信有些使用b站的小伙伴,应该看过很多这样的视频: 这种视

Java小项目之:拼图游戏!

Java小项目之:拼图游戏!今天教大家用java做出一个拼图游戏,很适合java初学者练手.所用素材: 部分代码: package picture_mosical; import java.awt.Graphics; import java.awt.Image; import java.awt.Toolkit; import java.awt.image.BufferedImage; import java.awt.image.CropImageFilter; import java.awt.i

Java小项目之:图书馆管理系统!有借有还再借不难!

Java小项目之:图书馆管理系统!今天给大家分享的java小项目是图书馆管理系统.这个图书馆管理系统是很完善的,包括书籍信息录入.借阅者信息.书籍类别添加.新书订购等等功能.和现实生活中的图书馆管理系统没什么两样,毫不夸张的说,你只要学会了今天我分享的这个小项目,以后自己创建一个图书馆管理系统是没一点问题的.按照惯例先上图: 部分代码展示:public class BookLoginIFrame extends JFrame { private class BookResetAction imp

java小项目之:泡泡堂炸弹人,来互相伤害呀!

Java小项目之:泡泡堂!双人对弈今天给大家分享的java小项目,是披着泡泡堂外衣的炸弹人游戏.炸弹人这种休闲游戏抓住了玩家对互动娱乐的需求,它操作简单,极易上手,趣味十足,能给玩家在短时间内就可获得游戏所带来的互动趣味和成就感.需要素材的可以私信我,这个小游戏是很适合java初学者练手的.功能模块简介: 游戏开始画面 人物移动的控制实现 炸弹的产生及炸弹爆炸的实现 结果的判断实现 计时的实现 两人一起互玩的实现游戏界面展示: 代码展示: 操作介绍:1.先进入游戏画面,用户可以自己选择角色,pl

Java小项目之:小说阅读器

Java小项目之:小说阅读器 今天带来的java项目是一款阅读器,老少皆宜,适合练手. 代码展示: package com; import javax.swing.JOptionPane; public class Scroll { private int n; private int size; private Thread t; private static int def_speed = 1000; private static int up_speed = -500; private s