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

📄 jquiz6.js_

📁 很棒的在线教学系统
💻 JS_
📖 第 1 页 / 共 2 页
字号:
function CheckMCAnswer(QNum, ANum, Btn){//if question doesn't exist, bail	if (State[QNum].length < 1){return;}//Get the feedback	Feedback = I[QNum][3][ANum][1];//Now show feedback and bail if question already complete	if (State[QNum][0] > -1){//Add an extra message explaining that the question// is finished if defined by the user		if (strQuestionFinished.length > 0){Feedback += '<br />' + strQuestionFinished;}//Show the feedback		ShowMessage(Feedback);		return;	}//Hide the button while processing	Btn.style.display = 'none';//Increment the number of tries	State[QNum][2]++;//Add the percent-correct value of this answer	State[QNum][3] += I[QNum][3][ANum][3];//Store the try number in the answer part of the State array, for tracking purposes	State[QNum][1][ANum] = State[QNum][2];	if (State[QNum][5].length > 0){State[QNum][5] += ' | ';}	State[QNum][5] += String.fromCharCode(65+ANum);//Should this answer be accepted as correct?	if (I[QNum][3][ANum][2] < 1){//It's wrong//Mark the answer		Btn.innerHTML = IncorrectIndicator;//Remove any previous score unless exercise is finished (6.0.3.8+)		if (Finished == false){			WriteToInstructions(strInstructions);		}//Check whether this leaves just one MC answer unselected, in which case the Q is terminated		var RemainingAnswer = FinalAnswer(QNum);		if (RemainingAnswer > -1){//Behave as if the last answer had been selected, but give no credit for it//Increment the number of tries			State[QNum][2]++;//Calculate the score for this question			CalculateMCQuestionScore(QNum);//Get the overall score and add it to the feedback			CalculateOverallScore();			if ((ContinuousScoring == true)||(Finished == true)){				Feedback += '<br />' + YourScoreIs + ' ' + Score + '%.';				WriteToInstructions(YourScoreIs + ' ' + Score + '%.');			}		}	}	else{//It's right//Mark the answer		Btn.innerHTML = CorrectIndicator;//Calculate the score for this question		CalculateMCQuestionScore(QNum);//Get the overall score and add it to the feedback		if (ContinuousScoring == true){			CalculateOverallScore();			if ((ContinuousScoring == true)||(Finished == true)){				Feedback += '<br />' + YourScoreIs + ' ' + Score + '%.';				WriteToInstructions(YourScoreIs + ' ' + Score + '%.');			}		}	}//Show the button again	Btn.style.display = 'inline';//Finally, show the feedback	ShowMessage(Feedback);//Check whether all questions are now done	CheckFinished();}function CalculateMCQuestionScore(QNum){	var Tries = State[QNum][2] + State[QNum][4]; //include tries and hint penalties	var PercentCorrect = State[QNum][3];	var TotAns = GetTotalMCAnswers(QNum);	var HintPenalties = State[QNum][4];//Make sure it's not already complete	if (State[QNum][0] < 0){//Allow for Hybrids		if (HintPenalties >= 1){			State[QNum][0] = 0;		}		else{//This line calculates the score for this question			if (TotAns == 1){				State[QNum][0] = 1;			}			else{				State[QNum][0] = ((TotAns-((Tries*100)/State[QNum][3]))/(TotAns-1));			}		}//Fix for Safari bug added for version 6.0.3.42 (negative infinity problem)		if ((State[QNum][0] < 0)||(State[QNum][0] == Number.NEGATIVE_INFINITY)){			State[QNum][0] = 0;		}	}}function GetTotalMCAnswers(QNum){	var Result = 0;	for (var ANum=0; ANum<I[QNum][3].length; ANum++){		if (I[QNum][3][ANum][4] == 1){ //This is an MC answer			Result++;		}	}	return Result;}function FinalAnswer(QNum){	var UnchosenAnswers = 0;	var FinalAnswer = -1;	for (var ANum=0; ANum<I[QNum][3].length; ANum++){		if (I[QNum][3][ANum][4] == 1){ //This is an MC answer			if (State[QNum][1][ANum] < 1){ //This answer hasn't been chosen yet				UnchosenAnswers++;				FinalAnswer = ANum;			}		}	}	if (UnchosenAnswers == 1){		return FinalAnswer;	}	else{		return -1;	}}[/inclMultiChoice][inclMultiSelect]function CheckMultiSelAnswer(QNum){//bail if question doesn't exist or exercise finished	if ((State[QNum].length < 1)||(Finished == true)){return;}//Increment the tries for this question	State[QNum][2]++;	var ShouldBeChecked;	var Matches = 0;	if (State[QNum][5].length > 0){State[QNum][5] += ' | ';}//Check if there are any mismatches	Feedback = '';	var CheckBox = null;	for (var ANum=0; ANum<I[QNum][3].length; ANum++){		CheckBox = document.getElementById('Q_' + QNum + '_' + ANum + '_Chk');		if (CheckBox.checked == true){			State[QNum][5] += 'Y';		}		else{			State[QNum][5] += 'N';		}		ShouldBeChecked = (I[QNum][3][ANum][2] == 1);		if (ShouldBeChecked == CheckBox.checked){			Matches++;		}		else{			Feedback = I[QNum][3][ANum][1];		}	}//Add the hit readout	Feedback = Matches + ' / ' + I[QNum][3].length + '<br />' + Feedback;	if (Matches == I[QNum][3].length){//It's right		CalculateMultiSelQuestionScore(QNum);		if (ContinuousScoring == true){			CalculateOverallScore();			if ((ContinuousScoring == true)||(Finished == true)){				Feedback += '<br />' + YourScoreIs + ' ' + Score + '%.';				WriteToInstructions(YourScoreIs + ' ' + Score + '%.');			}		}	}	else{//It's wrong -- Remove any previous score unless exercise is finished (6.0.3.8+)		if (Finished == false){			WriteToInstructions(strInstructions);		}	}//Show the feedback	ShowMessage(Feedback);//Check whether all questions are now done	CheckFinished();}function CalculateMultiSelQuestionScore(QNum){	var Tries = State[QNum][2];	var TotAns = State[QNum][1].length;//Make sure it's not already complete	if (State[QNum][0] < 0){		State[QNum][0] = (TotAns - (Tries-1)) / TotAns;		if (State[QNum][0] < 0){			State[QNum][0] = 0;		}	}}[/inclMultiSelect]function CalculateOverallScore(){	var TotalWeighting = 0;	var TotalScore = 0;	for (var QNum=0; QNum<State.length; QNum++){		if (State[QNum] != null){			if (State[QNum][0] > -1){				TotalWeighting += I[QNum][0];				TotalScore += (I[QNum][0] * State[QNum][0]);			}		}	}	if (TotalWeighting > 0){		Score = Math.floor((TotalScore/TotalWeighting)*100);	}	else{//if TotalWeighting is 0, no questions so far have any value, so//no penalty should be shown.		Score = 100;	}}function CheckFinished(){	var FB = '';	var AllDone = true;	for (var QNum=0; QNum<State.length; QNum++){		if (State[QNum] != null){			if (State[QNum][0] < 0){				AllDone = false;			}		}	}	if (AllDone == true){//Report final score and submit if necessary		CalculateOverallScore();		FB = YourScoreIs + ' ' + Score + '%.';		if (ShowCorrectFirstTime == true){			var CFT = 0;			for (QNum=0; QNum<State.length; QNum++){				if (State[QNum] != null){					if (State[QNum][0] >= 1){						CFT++;					}				}			}			FB += '<br />' + CorrectFirstTime + ' ' + CFT + '/' + QsToShow;		}		WriteToInstructions(FB);		Finished == true;[inclTimer]		window.clearInterval(Interval);[/inclTimer][inclScorm1.2]		if (TimeOver == true){			SetScormTimedOut();		}		else{			SetScormComplete();		}[/inclScorm1.2]		TimeOver = true;		Locked = true;[inclSendResults]		setTimeout('SendResults(' + Score + ')', 50);[/inclSendResults]		Finished = true;		Detail = '<?xml version="1.0"?><hpnetresult><fields>';		for (QNum=0; QNum<State.length; QNum++){			if (State[QNum] != null){				if (State[QNum][5].length > 0){					Detail += '<field><fieldname>Question #' + (QNum+1) + '</fieldname><fieldtype>question-tracking</fieldtype><fieldlabel>Q ' + (QNum+1) + '</fieldlabel><fieldlabelid>QuestionTrackingField</fieldlabelid><fielddata>' + State[QNum][5] + '</fielddata></field>';				}			}		}		Detail += '</fields></hpnetresult>';		setTimeout('Finish()', SubmissionTimeout);	}[inclScorm1.2]	else{		SetScormIncomplete();	}[/inclScorm1.2]}[inclTimer]function TimesUp(){	document.getElementById('Timer').innerHTML = '[strTimesUp]';[inclPreloadImages]	RefreshImages();[/inclPreloadImages]	TimeOver = true;	Finished = true;	ShowMessage('[strTimesUp]');//Set all remaining scores to 0	for (var QNum=0; QNum<State.length; QNum++){		if (State[QNum] != null){			if (State[QNum][0] < 0){				State[QNum][0] = 0;			}		}	}	CheckFinished();}[/inclTimer]

⌨️ 快捷键说明

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