⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testresult.java

📁 纯JAVA代码的考试系统
💻 JAVA
字号:
/**
 * TestResult.java
 * 本代码为教育目的而编写,但遵循产品代码规范。
 * 任何人任何时候都可以使用此代码,但需说明引用的代码来源于
 * www.fangsoft.org。
 * 欢迎任何建议。
 * 访问我们:
 * 		电子邮件:fangsoft.com@gmail.com
 * 		网站:   www.fangsoft.org
 * =====================================
 * This code is for software education,but it follows production code quality.
 * Anyone can use this code anywhere, but you should comment the code is from
 * www.fangsoft.org.
 * Any suggestion from you is appreciated. 
 * Visit us by
 *       email:    fangsoft.com@gmail.com
 *       websiste: www.fangsoft.org
 */
package org.fangsoft.testcenter.model;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import org.fangsoft.testcenter.dao.db.QuestionResultDBDao;
import org.fangsoft.testcenter.dao.db.TestResultDBDao;

public class TestResult {
	private Customer customer;
	// private String uesid;
	private Test test;
	private int score;
	private Result result;
	private int pass;
	private List<QuestionResult> questionResult;
	private Date startTime;
	private Date endTime;
	private int id;
	private int count;

	private Status status;

	public static enum Result {
		PASS(1, "pass"), FAILURE(0, "fail"), UNKNOW(-1, "unknow");
		private String value;
		private int intVal;

		private Result(int intVal, String value) {
			this.value = value;
			this.intVal = intVal;
		}

		public String getValue() {
			return this.value;
		}

		public int getIntVal() {
			return this.intVal;
		}
	};

	public static enum Status {
		NEW(0, "new"), TESTING(1, "testing"), SUSPEND(2, "suspend"), FINISH(3,
				"finish");
		private int intVal;
		private String description;

		private Status(int intVal, String desc) {
			this.intVal = intVal;
			this.description = desc;
		}

		public int getIntVal() {
			return this.intVal;
		}

		public String getDescription() {
			return description;
		}
	}

	public void suspendTest() {
		this.setEndTime(new Date());
		this.setStatus(Status.SUSPEND);
	}

	public void continueTest() {
		long elapsedTime = this.getEndTime().getTime()
				- this.getStartTime().getTime();
		long testTime = this.getTest().getTimeLimitMin() - elapsedTime
				/ (60 * 1000);
		this.getTest().setTimeLimitMin((int) testTime);
		this.setStatus(Status.TESTING);
	}

	public Status getStatus() {
		return status;
	}

	public void setStatus(Status status) {
		this.status = status;
	}

	public TestResult() {
		this.questionResult = new ArrayList<QuestionResult>();
	}

	private int computeScore() {
		if (this.getStatus() == Status.FINISH)
			return this.score;
		if (this.score < 0)
			this.score = 0;
		for (QuestionResult qr : this.questionResult) {
			this.score += qr.computeAnswer();
		}
		return this.score;
	}

	public Result computePass() {
		int rights = 0;
		for (QuestionResult qr : this.questionResult) {
			if (qr.getResult()) {
				rights++;
			}
		}
		if (100 * rights >= 60 * this.getQuestionResult().size()) {
			this.setResult(Result.PASS);
		} else {
			this.setResult(Result.FAILURE);
		}
		return this.getResult();
	}

	public Result commitTest() {
		if (this.status == Status.FINISH)
			return this.getResult();
		else if (this.getStatus() == Status.TESTING) {
			this.computeScore();
			this.computePass();
			this.setStatus(Status.FINISH);
			return this.getResult();
		}
		this.setResult(Result.UNKNOW);
		return Result.UNKNOW;
	}

	public Customer getCustomer() {
		return customer;
	}

	public void setCustomer(Customer customer) {
		this.customer = customer;
	}

	public Date getEndTime() {
		return endTime;
	}

	public void setEndTime(Date endTime) {
		this.endTime = endTime;
	}

	public int getScore() {
		return score;
	}

	public void setScore(int score) {
		this.score = score;
	}

	public Date getStartTime() {
		return startTime;
	}

	public void setStartTime(Date startTime) {
		this.startTime = startTime;
	}

	public Test getTest() {
		return test;
	}

	public void setTest(Test test) {
		this.test = test;
	}

	public List<QuestionResult> getQuestionResult() {
		return questionResult;
	}

	public void addQuestionResult(QuestionResult qr) {
		this.questionResult.add(qr);
	}

	public QuestionResult getQuestionResult(int index) {
		return this.questionResult.get(index);
	}

	public void setQuestionResult(List<QuestionResult> questionResult) {
		this.questionResult = questionResult;
	}
	public void removefrist(List<QuestionResult> questionResult){
		this.questionResult.remove(1);
	}
	public List<QuestionResult> retlist(){
		return this.questionResult;
	}
	public void reworkList(QuestionResult questionResult,int index){
		this.questionResult.remove(index);
		this.questionResult.add(index, questionResult);
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public Result getResult() {
		return result;
	}

	public void setResult(Result result) {
		this.result = result;
	}

	/*
	 * public String getUesid() { return uesid; }
	 * 
	 * public void setUesid(String uesid) { this.uesid = uesid;
	 */

	public int Pass() {
		if (this.getResult() == Result.PASS)
			pass = 1;
		if (this.getResult() == Result.FAILURE)
			pass = 0;
		if (this.getResult() == Result.UNKNOW)
			pass = -1;
		return pass;
	}

	public void setPass(int pass) {
		this.pass = pass;
	}

	public void save() {
		//if (this.endTime != null) {
			TestResultDBDao.getInstance().save(this);
			for (QuestionResult qr : this.getQuestionResult()) {
				qr.setTR_ID(this.getId());
				QuestionResultDBDao.getInstance().insert(qr);
			}
		//}
	}
	public void updatte() {
		if (this.endTime != null) {
			int id=this.id;
			TestResultDBDao.getInstance().update(this);			
			for (QuestionResult qr : this.getQuestionResult()) {
				qr.setTR_ID(id);
				QuestionResultDBDao.getInstance().update(qr);
				
			}
		}
	}

	public int getCount() {
		return count;
	}

	public void setCount(int count) {
		this.count = count;
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -