📄 testresult.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 + -