首页>代码>SSM周测在线答题考试系统>/NCTestSSM0905/src/it/com/action/AnswerAction.java
package it.com.action;

import java.io.IOException;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.ArrayList;

import java.util.Date;


import java.util.HashMap;

import java.util.List;
import java.util.Map;
import java.util.Random;

import it.com.bean.Shijuan;
import it.com.service.TeacherService;
import it.com.service.AnswerService;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import net.sf.json.JSONArray;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

@Controller
public class AnswerAction {
@Resource
AnswerService as;
@Resource
TeacherService ts;
//跳转到首页
int kongzhi=1;
@RequestMapping("back_home.action")
public ModelAndView back(HttpServletRequest request,HttpSession session){
	return new ModelAndView("stu/main.jsp");
}
int[] xx = new int[20];
// 根据知识点查找题目(开始答题)
@RequestMapping("findquestion.action")
	public ModelAndView findquestion(HttpServletRequest request,HttpSession session){
	    listqj.clear();
	    kongzhi = 1;
	    String knowledge=request.getParameter("knowledge");
		String username = session.getAttribute("user").toString();
		//获取日期
		String dateNowStr = as.getDate();
		session.setAttribute("datidate",dateNowStr);
		//插入试卷
		as.insertShijuan(username,dateNowStr);
		//获取试卷id
		int shijuanid = as.selectShijuanid(username, dateNowStr);
		session.setAttribute("datishijuanid", shijuanid);
		int subjectid=Integer.parseInt(request.getParameter("subjectid"));
		List<Map> list=ts.findQuestionsByIdknow(knowledge, subjectid);
		List list1=new ArrayList();
		int index=(int)(Math.random()*list.size());
		for(int i=0;i<20;i++){
			//控制随机数不重复,也就是说一份试卷不会获取相同的试题
			for(int j=0;j<20;j++){
				while(xx[j]==index){
					index=(int)(Math.random()*list.size());
					j=-1;
					break;
				}
			}
			xx[i] = index;
			//获取list里面随机一条数据
			//将其保存在list中
			list1.add(list.get(index));
		}
		session.setAttribute("pageSize",ts.countPage());
		session.setAttribute("list", list1);
		String n=request.getParameter("n");
		if(n==null) n="1";
		return new ModelAndView("stu/showq.jsp?n="+n);
	}
List<Map> listqj = new ArrayList();
// 答题过程中保存所答题目
@RequestMapping("saveAns.action")
	public ModelAndView saveAns(HttpServletRequest request,HttpSession session){
	    int shijuanid = 0;
	    int n=Integer.parseInt(request.getParameter("n"));
	    n = n+1;
	    int pageSize=Integer.parseInt(session.getAttribute("pageSize").toString());
	    shijuanid = Integer.parseInt(session.getAttribute("datishijuanid").toString());
	    String title = request.getParameter("title").toString();
		int count=-1,questionid=0;
		questionid=Integer.parseInt(request.getParameter("qid"));
		String trueans = request.getParameter("trueans").toString();
		String uri="",ans="";
		ans=request.getParameter("ans");
		String username = session.getAttribute("user").toString();
		int judge = 0;
		if(trueans.equalsIgnoreCase(ans)){
			judge = 1;
		}else{
			judge = 0;
		} 
		Map map = new HashMap();
		map.put("title",title); 
		map.put("username",username);
		map.put("questionid", questionid);
		map.put("stuanswer", ans);
		map.put("judge", judge);
		map.put("shijuanid", shijuanid);
		map.put("trueans", trueans);
		listqj.add(map);
		request.getSession().setAttribute("listqj",listqj); 
		if(n<=20){
            return new ModelAndView("stu/showq.jsp?n="+n);
		}else{
			return new ModelAndView("submitAns.action");
		}
	}

// 提交试卷
@RequestMapping("submitAns.action")
public ModelAndView submitAns(HttpServletRequest request,HttpSession session){
	int pageSize=Integer.parseInt(session.getAttribute("pageSize").toString());
	List<Map> list1 = new ArrayList();
	String b="";
	synchronized (b) {
		String username = session.getAttribute("user").toString();
		for(Map m : listqj){
			if(m.get("username").equals(username)){
				list1.add(m);
			}
		}
//		System.out.println("list1==="+list1);
	}                 
	String a = " ";
	int judgeCount = 0;
	synchronized (a) {
		for(Map m:list1){
			String username = session.getAttribute("user").toString();
			if(m.get("username").equals(username)&&m.get("judge").equals(1)){
				judgeCount = judgeCount+1;
//				System.out.println("judgeCount"+judgeCount);
		}
	}                 
//	System.out.println("judgeCount=="+judgeCount);
	String username = session.getAttribute("user").toString();
	System.out.println("list1=="+list1);
	if(kongzhi == 1){
		as.insertAnswer(list1);		
	}else{
		as.updateShijuan(list1);
	}
	System.out.println("insertAnswerlist1"+list1);
	String date = request.getParameter("datidate");
	int shijuanid = Integer.parseInt(session.getAttribute("datishijuanid").toString());
	System.out.println("insert+shijuanid=="+shijuanid);
    as.insertGrade(judgeCount, shijuanid);
	session.setAttribute("resultList", list1);
	session.setAttribute("judgeCount",judgeCount);
	System.out.println("listqj.size()===="+listqj.size());
	return new ModelAndView("stu/showresult.jsp");
	}
}
// 清除全局list
@RequestMapping("clear.action")
public ModelAndView clear(HttpSession session){
	String username = session.getAttribute("user").toString();
	for(Map m: listqj){
		if(m.get("username").equals(2)){
			listqj.remove(m);
			System.out.println("yes");
		}
	}
//	System.out.println("clear==="+listqj);
	return new ModelAndView("back_home.action");
}

// 查找所有成绩
@RequestMapping("selectAllGrade.action")
public ModelAndView selectAllGrade(HttpSession session){
	String username = session.getAttribute("user").toString();
	List<Map> Gradelist = as.selectAllGrade(username);
	session.setAttribute("Gradelist", Gradelist);
	return new ModelAndView("stu/showAllGrade.jsp");
}

//查看历史的某一份试卷
@RequestMapping("selectshijuan.action")
public ModelAndView selectshijuan(HttpSession session,HttpServletRequest request){
	String username = session.getAttribute("user").toString();
    String date = request.getParameter("date");
    System.out.println("user =date="+username+date);
    int shijuanid = as.selectShijuanid(username, date);
    System.out.println("shijuanid"+shijuanid);
    List<Map> listsj = as.selectAnswer(shijuanid);
    session.setAttribute("listsj", listsj);
    System.out.println("listsj="+listsj.size());
	return new ModelAndView("stu/showsj.jsp");
}
//删除某次试卷及答题答案
@RequestMapping("deleteshijuan.action")
public ModelAndView deleteshijuan(HttpSession session,HttpServletRequest request){
	String date=request.getParameter("date");
	int shijuanid=Integer.parseInt(request.getParameter("id"));
	as.delsj(date, shijuanid);
	System.out.println("del_success");
	return new ModelAndView("selectAllGrade.action");
}

//重新答题
@RequestMapping("againAnwser.action")
public ModelAndView againAnwser(HttpSession session,HttpServletRequest request){
	listqj.clear();
	System.out.println("clear=="+listqj);
	int n=1;
	String username = session.getAttribute("user").toString();
    String date = request.getParameter("date");
    int shijuanid = as.selectShijuanid(username, date);
    List<Map> againlist = as.selectAnswer(shijuanid);
    System.out.println("againlist=="+againlist.size());
    session.setAttribute("list", againlist);
    session.setAttribute("datishijuanid", shijuanid);
    session.setAttribute("pageSize", againlist.size());
    request.setAttribute("judgeCount",0);
    kongzhi = 0;
	return new ModelAndView("stu/showq.jsp?n="+n);
}
}
最近下载更多
初嘤嘤嘤未来  LV7 2024年12月18日
ma406805131  LV19 2024年12月9日
2206371875  LV7 2024年3月14日
hongdongdong  LV14 2023年12月3日
lbsers  LV5 2023年5月6日
15152729192  LV3 2023年2月20日
唐唐丶  LV34 2023年2月19日
赵宇豪  LV1 2022年12月8日
1532593037  LV8 2022年11月30日
云翳tel青  LV11 2022年11月19日
最近浏览更多
taoshen95  LV16 2024年12月21日
初嘤嘤嘤未来  LV7 2024年12月18日
ma406805131  LV19 2024年12月9日
Luis虎子  LV16 2024年9月25日
傲世彩云之南  LV5 2024年8月8日
TY0165  LV20 2024年6月24日
xzg123456  LV6 2024年6月18日
Adguard  LV3 2024年6月13日
yyhrhv  LV8 2024年5月31日
yuanshun  LV7 2024年5月31日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友