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

📄 examhall.java

📁 这是一个网上考试系统,主要是用java和jsp写的.
💻 JAVA
字号:
package kaoshi.bean;

import java.util.*;
/**
 * @version 2007-12-28
 * @author Xiaofei 
*/

public class ExamHall {
/*考场有三种状态
*wait
*exam
*over
*被删除返回removed
*/
	private int registerTotal = 0;
	private int paperTotal = 0;
	private HashMap registers = new HashMap();
	
	public ExamHall(){}
	
	public void setRegisterTotal(int i){
		this.registerTotal = i;
	}	
	public int getRegisterTotal(){
		return this.registerTotal;
	}
	
	public void setPaperTotal(int s){
		this.paperTotal = s;
	}
	public int getPaperTotal(){
		return this.paperTotal;
	}
	
	public Collection getRecords() {
		return registers.values();
	}
	
	public synchronized boolean register (String sid, String nm, String ip) {
		boolean result = false;
		Record record = (Record)registers.get(sid);
		if (record==null) {
			record = new Record();
			record.setSid(sid);
			record.setNm(nm);
			record.setIp(ip);
			record.setStatus("wait");
			record.setStartTime(new Date());
			registers.put(sid, record);
			result = true;
			registerTotal++;
		} else {
			//Permit relogin again, but must using the same ip
			if (record.getIp().equals(ip)) {
				result = true;
			}
		}
		return result;
	}
	
	public String getStatus(String sid) {
		String s = null;
		Record r = (Record)registers.get(sid);
		if (r!=null) {
			s = r.getStatus();
		} else {
			s = "removed";
		}
		return s;
	}
	
	public void remove (String sid) {
		if (registers.containsKey(sid)) {
			Record r = (Record)registers.get(sid);
			registerTotal--;
			if (r.getStatus().equals("exam")) {
				paperTotal--;	
			}
			registers.remove(sid);
		}
	}
	
	public void permitExam(String sid) {
		Record r = (Record)registers.get(sid);
		if (r!=null) {
			if (!r.getStatus().equals("exam")) {
				r.setStatus("exam");
				paperTotal++;		
			}			
		}
	}
	
	public void permitAll() {
		Iterator ir = registers.values().iterator();
		while (ir.hasNext()) {
			Record r = (Record)ir.next();
			if ("wait".equals(r.getStatus())) {	
				r.setStatus("exam");
			}
		}
		paperTotal = registerTotal;
	}
	
	public boolean reportResult(String sid, double k) {
		boolean result = false;
		Record r = (Record)registers.get(sid);
		if (r!=null) {
			r.setEndTime(new Date());
			r.setSelectTypeScore(k);
			r.setStatus("over");
			result = true;
		}
		return result;
	}
	
	public boolean isValidPaper(String sid, String ip) {
		boolean result = false;
		Record r = (Record)registers.get(sid);
		if ((r!=null)&&(r.getStatus().equals("exam"))&&(r.getIp().equals(ip))) {
			result = true;
		}
		return result;
	}

}

⌨️ 快捷键说明

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