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

📄 kaoshi.java

📁 struts在线考试系统. 自己还没看
💻 JAVA
字号:
package com.lili.exam.action;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Random;
import java.util.Set;

import org.apache.struts2.ServletActionContext;

import com.lili.common.exception.ExamException;
import com.lili.exam.pojo.CChoice;
import com.lili.exam.pojo.SelectOne;
import com.lili.exam.pojo.Subject;
import com.lili.exam.service.ExamService;
import com.lili.exam.service.ExamServiceImpl;
import com.lili.exam.util.BeanFactory;
import com.opensymphony.xwork2.ActionSupport;

public class Kaoshi extends ActionSupport {

	public String execute() {
		List<SelectOne> slist = new ArrayList<SelectOne>();
		List<CChoice> clist = new ArrayList<CChoice>();
		ExamService service = (ExamServiceImpl) BeanFactory
				.getBean("examService");
		Subject subject = null;
		subject = (Subject) ServletActionContext.getServletContext()
				.getAttribute("name");
		if (subject == null) {
			ServletActionContext.getRequest().setAttribute("message",
					"对不起,不能考试,请老师设置考试科目信息!");
			return "error";
		}
		if (subject.getState() == 0) {
			ServletActionContext.getRequest().setAttribute("message",
					"对不起,不能考试,请与老师联系!");
			return "error";
		}
		try {
			int choiceOneNum = service.getChoiceNum(subject);
			int selectOneNum = service.getSelectOneNum(subject);
			if (selectOneNum < 30 || choiceOneNum < 20) {
				ServletActionContext.getRequest().setAttribute("message",
					"对不起,不能考试,选择题数目小于30 或 判断题数目小于20!");
				return "error";	
			}
			
			System.out.println(selectOneNum+" :=========: "+choiceOneNum);
			
			//选择题数目设置为20道,并且随机从不大于题库中的数目中添加考题编号
			int[] s = new int[20];
			int size = 1;
			point: while (true) {
				int b = (int) (Math.random() * selectOneNum + 1);
				for (int i = 0; i < size; i++) {
					if (b == s[i]) {
						continue point;
					}
				}
				s[size - 1] = b;
				if (size == 20) {
					break;
				}
				size++;
			}
			//添加选择题 考题
			for(int aa : s){
				System.out.print(aa+" : " );
				SelectOne selectOne = service.getSelectOne(aa);
				slist.add(selectOne);
System.out.println(" : "+selectOne.getAnswer());
			}
			
			
			int[] a = new int[10];
			int size2 = 1;
			point2: while (true) {
				int b = (int) (Math.random() * choiceOneNum + 1);
				for (int i = 0; i < size2; i++) {
					if (b == a[i]) {
						continue point2;
					}
				}
				a[size2 - 1] = b;
				if (size2 == 10) {
					break;
				}
				size2++;
			}
			
			//添加判断题 考题
			for(int bb : a) {
				System.out.print(bb+" : ");
				CChoice choice = service.getChoice(bb);
				clist.add(choice);
System.out.println(" : "+choice.getAnswer());
			}
			
			ServletActionContext.getRequest().setAttribute("slist", slist);
			ServletActionContext.getRequest().setAttribute("clist", clist);
			ServletActionContext.getRequest().setAttribute("subject", subject);
			String time = (String)ServletActionContext.getServletContext().getAttribute("time");
			System.out.println("考试时间 :"+time);
			if(time == null){
				time = "100";
				ServletActionContext.getRequest().setAttribute("time", time);
			}else
				ServletActionContext.getRequest().setAttribute("time", time);
			
			return SUCCESS;
			
			
		} catch (ExamException e) {
			e.getMessage();
			e.printStackTrace();
		}

		return null;
	}

}

⌨️ 快捷键说明

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