码迷,mamicode.com
首页 > 其他好文 > 详细

在线考试————随机出题

时间:2019-11-04 09:27:29      阅读:312      评论:0      收藏:0      [点我收藏+]

标签:lis   http   题目   尽心   前台   Servle   https   dom   on()   

// 获取前台页面的值
	// 随机出现 题目

	@RequestMapping(value = "/queryQuestion")
	public String queryQuestion(TestQuestion ques, HttpServletRequest request) {
		// 获取 前台 输入个数数组 写死直接尽心个获取比较
		// 获取所有的题目主干
		// List<Map<String, Object>> radioCounts =
		// disposeService.queryQuestions();
		// 存放 option 表的内容

		List<Map<String, Object>> radioOptionCount = disposeService.queryOption();

		// 抽取单选
		List<Map<String, Object>> danXuan = disposeService.queryQuestionDanxuan();
		// 抽取多选
		List<Map<String, Object>> duoXuan = disposeService.queryDuoQuestions();
		// 抽取判断
		List<Map<String, Object>> panDuan = disposeService.queryPanQuestions();

		// 获取长度
		// int radionCount = radioCounts.size();
		// 获取单选长度
		int danXuans = danXuan.size();
		// 获取多选的长度
		int duoXuans = duoXuan.size();
		// 获取 判断
		int panDuans = panDuan.size();

		// 随机页面上单选的值
		// String radios = request.getParameter("radios");
		// int radioLen = Integer.parseInt(radios);
		// 获取单选的值
		// String radioGrade=request.getParameter("radioGrade");

		// 用空数组盛放单选
		int[] arr = new int[3];
		// 判断是否在里面
		String str = "";
		// 用空数组盛放多选
		int[] arr2 = new int[2];
		// 判断是否在里面
		String str2 = "";
		// 用空数组盛放判断
		int[] arr3 = new int[1];
		// 判断是否在里面
		String str3 = "";
		Random r1 = new Random();
		// 单选
		for (int i = 0; i < 3; i++) {
			int random = r1.nextInt(danXuans);// 如果1-6随机取3个数
			// 当值是11 或者 是1 时候进行区别
			while (str.lastIndexOf("," + random + ",") != -1) {
				random = r1.nextInt(danXuans);

			}
			// 存入 arr中
			arr[i] = random;
			str += "," + random + ",";

		}
		// 多选
		for (int i = 0; i < 2; i++) {
			int random = r1.nextInt(duoXuans);// 如果1-6随机取3个数
			// 当值是11 或者 是1 时候进行区别
			while (str2.lastIndexOf("," + random + ",") != -1) {
				random = r1.nextInt(duoXuans);
			}
			// 存入 arr中
			arr2[i] = random;
			str3 += "," + random + ",";

		}
		// 判断
		for (int i = 0; i < 1; i++) {
			int random = r1.nextInt(panDuans);// 如果1-6随机取3个数
			// 当值是11 或者 是1 时候进行区别
			while (str3.lastIndexOf("," + random + ",") != -1) {
				random = r1.nextInt(panDuans);
			}
			// 存入 arr中
			arr3[i] = random;
			str3 += "," + random + ",";

		}
		// 添加到radioList 集合中
		// List<Map<String, Object>> radioList = new ArrayList<Map<String,
		// Object>>();
		// 单选集合
		List<Map<String, Object>> danxuanQuestion = new ArrayList<Map<String, Object>>();
		for (int i = 0; i < arr.length; i++) {
			danxuanQuestion.add(danXuan.get(arr[i]));
		}

		// 多选集合
		List<Map<String, Object>> duoxuanQuestion = new ArrayList<Map<String, Object>>();
		for (int i = 0; i < arr2.length; i++) {
			duoxuanQuestion.add(duoXuan.get(arr2[i]));
		}

		// 判断集合
		List<Map<String, Object>> panduanQuestion = new ArrayList<Map<String, Object>>();

		for (int i = 0; i < arr3.length; i++) {
			panduanQuestion.add(panDuan.get(arr3[i]));
		}
		List<Map<String, Object>> radioList = new ArrayList<Map<String, Object>>();
		for (Map<String, Object> map : danxuanQuestion) {
			radioList.add(map);

		}

		for (Map<String, Object> map2 : duoxuanQuestion) {
			radioList.add(map2);

		}
		for (Map<String, Object> map3 : panduanQuestion) {
			radioList.add(map3);

		}

		request.setAttribute("radioList", radioList);
		request.setAttribute("optionList", radioOptionCount);
		request.setAttribute("listLength", radioList.size());
		return "/sys/examQuestion";
	}

 个

在线考试————随机出题

标签:lis   http   题目   尽心   前台   Servle   https   dom   on()   

原文地址:https://www.cnblogs.com/layuechuquwan/p/11790204.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!