var questionNUm = 0;
/*数字转汉字数字*/
var chnNumChar = [ "零", "一", "二", "三", "四", "五", "六", "七", "八", "九" ];
var chnUnitSection = [ "", "万", "亿", "万亿", "亿亿" ];
var chnUnitChar = [ "", "十", "百", "千" ];
/* 快速创建答案列表 */
var score = 0;
var total_score = 0;
var answerLen = 0;
$(function() {
function creat(q_num, a_num, fraction) {
// $(".section").remove();
answer_index_b = $(".section").length + 1;
$(".content").append('
No.' + answer_index_b+ '(Single choice) total score: '
+ q_num + ' X ' + fraction + ' = ' + (q_num * fraction)
+ '
');
for (var i = 0; i < q_num; i++) {
str_temp = str[i];
str_temp = str_temp.toUpperCase()
code = str_temp.charCodeAt();
on_index = code - 65;
questionNUm++;
if (code < (65 + a_num)) {
console.log(str_temp);
$(".section-" + answer_index_b + " .question_list").append(
'');
for (var j = 0; j < a_num; j++) {
option = String.fromCharCode(0x41 + j);
if (on_index == j) {
console.log(on_index + "---" + j);
$(".question" + (questionNUm) + ' ul').append(
'' + option
+ '');
} else
$(".question" + (questionNUm) + ' ul').append(
'' + option
+ '');
}
} else {
alert("No." + (i + 1) + ":" + String.fromCharCode(code)
+ "The answer is wrong, exceeding the number of choices");
// return;
}
}
$(".section-" + answer_index_b).attr("data-score",
q_num * fraction);
total_score += q_num * fraction;
$("#score_all").text(total_score);
}
/***************************************************************************
* 1、单选题 2、完形填空 3、阅读理解 4、判断题 5、多选题
**************************************************************************/
function addQuestion(type, a_num, index_s_2, fraction2) {
console.log(type);
fraction2=parseInt(fraction2);
console.log(fraction2);
answer_index_b = $(".section").length + 1;
var question_num = SectionToChinese($(".section").length + 1);
switch (type) {
case 1: // 单选题
// alert(typeof(index_s_2));
$(".content")
.append(
' No.'
+ answer_index_b
+ '(Single choice) total score: '
+ index_s_2
+ ' X '
+ fraction2
+ ' = '
+ index_s_2 * fraction2
+ '
');
for (i = 1; i <= index_s_2; i++) {
$(".section-" + answer_index_b + " .question_list").append(
'');
for (var j = 0; j < a_num; j++) {
option = String.fromCharCode(0x41 + j);
$(".section-" + answer_index_b + " .question" + i + ' ul')
.append(
'' + option
+ '');
}
}
total_score += index_s_2 * fraction2;
$("#score_all").text(total_score);
break;
case 2: // 多选题
// $(".content").html("");
$(".content")
.append(
' No.'
+ answer_index_b
+ '(Multiple choice) total score: '
+ index_s_2
+ ' X '
+ fraction2
+ ' = '
+ index_s_2 * fraction2
+ '
');
for (var i = 1; i <= index_s_2; i++) {
questionNUm++;
$(".section-" + answer_index_b + " .question_list").append(
'');
for (var j = 0; j < a_num; j++) {
option = String.fromCharCode(0x41 + j);
$(
".section-" + answer_index_b + " .question"
+ questionNUm + ' ul').append(
'' + option + '');
}
}
total_score += index_s_2 * fraction2;
$("#score_all").text(total_score);
break;
}
$(".section0").attr("data-score",
$(".section0").find(".question").length * fraction2);
}
/* 添加试题的确定按钮 */
$("#addQuestion_submit").click(function() {
// $("#fast").attr("disabled","disabled");
var type_2 = parseInt($("#type").val());
var index_s_2 =parseInt($("#index_s_2").val());
//var index_e_2 = parseInt($("#index_s_2").val());
// var answer_2=$("#answer_2").val();
var num_ans_2 = $("#num_ans_2").val();
var fraction2 = parseFloat($("#fraction2").val());
if (isNaN(index_s_2)) {
alert("Please enter the number of questions");
return;
} else if (isNaN(fraction2)) {
alert("Please enter the score");
return;
}
// console.log(typeof(type_2));
console.log(type_2+'-'+ num_ans_2+"-"+ index_s_2+"-"+ fraction2);
addQuestion(type_2, num_ans_2, index_s_2, fraction2);
$('.addQuestion').modal('hide');
})
/* 提交保存数据 */
$("#save").click(function() {
var content = [];
if ($(".section").length > 0) {
var rank = 0;
for (i = 0; i < $(".section").length; i++) {
content[i] = {
index: i+1,
type: $(".section").eq(i).attr("data-type"),
questionNum: $(".section").eq(i).attr("data-questionNum"),
optionNum: $(".section").eq(i).attr("data-optionNum"),
score: $(".section").eq(i).attr("data-fraction")
};
}
}
self.location.href = URL + JSON.stringify(content) + "&page_score=" + total_score;
});
/* ajax封装函数 */
function ajax_submit(url, data) {
$(".loading").css("display", "block");
console.log(data);
$.ajax({
url : url,
type : "POST",
data : data,
dataType : "json",
contentType : "application/x-www-form-urlencoded; charset=utf-8",
success : function(data) {
$(".loading").css("display", "none");
if(testData.paper_type == '1'){
window.location.href = JUMP_URL + "?a=1&defaulturl=../paper/list2.do";
}else{
window.location.href = JUMP_URL + "?a=1&defaulturl=../paper/list4.do?school_id=" + testData.school_id ;
}
}
})
}
function fastSort(array, head, tail) {
// 考虑到给每个分区操作的时候都是在原有的数组中进行操作的,所以这里head,tail来确定分片的位置
/* 生成随机项 */
var randomnum = parseInt((head + tail) / 2);
var random = array[randomnum];
/* 将小于random的项放置在其左边 策略就是通过一个临时的数组来储存分好区的结果,再到原数组中替换 */
var arrayTemp = [];
var unshiftHead = 0;
for (var i = head; i <= tail; i++) {
if (parseInt(array[i].rank) < parseInt(random.rank)) {
arrayTemp.unshift(array[i]);
unshiftHead++;
} else if (parseInt(array[i].rank) > parseInt(random.rank)) {
arrayTemp.push(array[i]);
}
/* 当它等于的时候放哪,这里我想选择放到队列的前面,也就是从unshift后的第一个位置放置 */
if (parseInt(array[i].rank) === parseInt(random.rank)) {
arrayTemp.splice(unshiftHead, 0, array[i]);
}
}
/* 将对应项覆盖原来的记录 */
for (var j = head, u = 0; j <= tail; j++, u++) {
array.splice(j, 1, arrayTemp[u]);
}
/* 寻找中间项所在的index */
var nowIndex = array.indexOf(random);
/* 设置出口,当要放进去的片段只有2项的时候就可以收工了 */
if (arrayTemp.length <= 2) {
return;
}
/* 递归,同时应用其左右两个区域 */
fastSort(array, head, nowIndex);
fastSort(array, nowIndex + 1, tail);
}
function creatHtml(data) {
console.log(data);
$(".header_box h1").html(data.title);
$("#time").html(data.exam_time);
if(data.score != null && data.score > 0 && data.score != ''){
$("#score_all").html(data.score);
}
if (data.questions.length > 0) {
$(".time").removeAttr("data-target");
$(".remove").remove();
$(".btn_box").remove();
}
for (var i = 0; i < data.questions.length; i++) {
if (data.questions[i].questions) {
$(".content")
.append(
' '
+ 'No.'
+ (i + 1)
+ 'total score:'
+ data.questions[i].questions.length
+ " X "
+ (parseFloat(data.questions[i].sug_score) / data.questions[i].questions.length)
+ " = "
+ data.questions[i].sug_score
+ ''
+ ''
+ data.questions[i].content
+ '
');
} else {
if (i == 0) {
$(".content")
.append(
'');
}
$(".section0").find(".question_list").append(
'');
for (var k = 0; k < parseInt(data.questions[i].option_num); k++) {
str_temp = data.questions[i].answer;
$(".section0").find(".question" + (i + 1) + ' ul').append(
''
+ String.fromCharCode(0x41 + k) + '');
for (var l = 0; l < str_temp.length; l++) {
str_temp_arry = str_temp.split('');
code = str_temp_arry[l].charCodeAt();
on_index = code - 65;
if (on_index == k) {
$(".section0").find(
".question" + (i + 1) + ' ul li').eq(
on_index).attr("class",
"btn btn-default on");
}
}
}
}
if (data.questions[i].questions) {
for (var j = 0; j < data.questions[i].questions.length; j++) {
$(".section-" + i).find(".question_list").append(
'');
if ($(".section-" + i).find(".que_name").text() == "判断题") {
for (var k = 0; k < parseInt(data.questions[i].questions[j].option_num); k++) {
str_temp = data.questions[i].questions[j].answer;
if (k % 2 == 0) {
$(".section-" + i).find(
".question" + (j + 1) + ' ul').append(
'√');
} else if (k % 2 == 1) {
$(".section-" + i).find(
".question" + (j + 1) + ' ul').append(
'×');
}
if (str_temp == "√")
$(".section-" + i).find(
".question" + (j + 1) + ' ul li').eq(0)
.attr("class", "btn btn-default on");
else
$(".section-" + i).find(
".question" + (j + 1) + ' ul li').eq(1)
.attr("class", "btn btn-default on");
}
} else {
for (var k = 0; k < parseInt(data.questions[i].questions[j].option_num); k++) {
str_temp = data.questions[i].questions[j].answer;
$(".section-" + i).find(
".question" + (j + 1) + ' ul').append(
''
+ String.fromCharCode(0x41 + k)
+ '');
for (var l = 0; l < str_temp.length; l++) {
str_temp_arry = str_temp.split('');
code = str_temp_arry[l].charCodeAt();
on_index = code - 65;
if (on_index == k) {
$(".section-" + i).find(
".question" + (j + 1) + ' ul li')
.eq(on_index).attr("class",
"btn btn-default on");
}
}
}
}
}
}
}
}
/*快速建题中,每输入五个答案就加一个空格*/
$("#answer").on("input propertychange", function(event) {
var answerStr = "";
answerStr = $("#answer").val();
var result = "";
if (answerStr.length > 5) {
answerStr = answerStr.replace(new RegExp(" ", "gm"), "");
for (var i = 0; i < answerStr.length; i++) {
result += answerStr[i];
if (i % 5 == 4 && i != answerStr.length - 1) {
result += " ";
}
}
} else {
result = answerStr;
}
$("#answer").val(result);
if (answerStr.length > 0) {
$(".tips").text("Total" + answerStr.length + "question");
} else {
$(".tips").text("");
}
})
function SectionToChinese(section) {
var strIns = '', chnStr = '';
var unitPos = 0;
var zero = true;
while (section > 0) {
var v = section % 10;
if (v === 0) {
if (!zero) {
zero = true;
chnStr = chnNumChar[v] + chnStr;
}
} else {
zero = false;
strIns = chnNumChar[v];
strIns += chnUnitChar[unitPos];
chnStr = strIns + chnStr;
}
unitPos++;
section = Math.floor(section / 10);
}
return chnStr;
}
if (template != null && template.length > 0) {
$("#addQuestion").attr("disabled", "disabled");
$("#fast").attr("disabled", "disabled");
for (var i = 0; i < template.length; i++) {
if (template[i].type == 1) {
var answer = "";
for (var j = 0; j < template[i].questionNum; j++) {
answer += "1";
}
creat(answer, template[i].optionNum, template[i].score);
}
if (template[i].type == 2) {
addQuestion(5, template[i].optionNum, 1,
template[i].questionNum, template[i].score);
}
}
if(testData != null){
$(".header_box h1").html(testData.title);
$("#time").html(testData.exam_time);
if(testData.score != null && testData.score > 0 && testData.score != ''){
$("#score_all").html(testData.score);
}
}
}else if (testData != null && testData.questions != null
&& testData.questions.length > 0) {
fastSort(testData.questions, 0, testData.questions.length - 1);
for (var i = 0; i < testData.questions.length; i++) {
if (testData.questions[0].questions
&& testData.questions[0].questions.length > 1) {
fastSort(testData.questions[i].questions, 0,
testData.questions[i].questions.length - 1);
}
}
creatHtml(testData);
}else{
if(testData != null){
$(".header_box h1").html(testData.title);
$("#time").html(testData.exam_time);
if(testData.score != null && testData.score > 0 && testData.score != ''){
$("#score_all").html(testData.score);
}
}
}
})