Member 13210587 Ответов: 2

Как я могу рассчитать правильную оценку


привет
Интересно, может ли кто-нибудь помочь мне в этом вопросе?

Проблема, с которой я сталкиваюсь, заключается в том, что правильная оценка и балл не вычисляются, когда человек выбирает оценки P/m/D. кстати это не домашнее задание я создавал этот скрипт чтобы помочь студентам с вычислением их оценки

был бы признателен, если бы я мог получить некоторую помощь в решении этой проблемы

Что я уже пробовал:

var units = 3;
var ocr = 0;
var grade = "";
var feedback = "";

function runCert()
{
document.getElementById("o1").disabled=false;
document.getElementById("o2").disabled=false;
document.getElementById("o3").disabled=true;
document.getElementById("o1").style.backgroundColor="#CCFFCC";
document.getElementById("o2").style.backgroundColor="#CCFFCC";
document.getElementById("o3").style.backgroundColor="#FFCCCC";
units = 2;
}

function runScore()
{
	ocr = 0;
	
	
	function assistScore(con1)
{
	if (document.getElementById("o1").disabled=false == "P") ocr = ocr + 21;
	if (document.getElementById("o1").disabled=false == "M") ocr = ocr + 24;
	if (document.getElementById("o1").disabled=false == "D") ocr = ocr + 27;
	
	if (document.getElementById("o2").disabled=false == "P") ocr = ocr + 21;
	if (document.getElementById("o2").disabled=false == "M") ocr = ocr + 24;
	if (document.getElementById("o2").disabled=false == "D") ocr = ocr + 27;
	
	if (document.getElementById("o3").disabled=false == "P") ocr = ocr + 14;
	if (document.getElementById("o3").disabled=false == "M") ocr = ocr + 16;
	if (document.getElementById("o3").disabled=false == "D") ocr = ocr + 18;	
}
	
	
	
if (units == 2)
	{
		assistScore(document.getElementById("o1").value);
		assistScore(document.getElementById("o2").value);
			

		if (ocr >= 52)
		{
			ucas = 28;
			grade = "D*";
			feedback = "This is the highest grade available";
		}
		else if (ocr >= 50)
		{
			ucas = 24;
			grade = "D";
			feedback = "You are " + (50 - ocr) + " ocr points short of the next grade boundary";
		}
		else if (ocr >= 46)
		{
			ucas = 40;
			grade = "M";
			feedback = "You are " + (46 - ocr) + " ocr points short of the next grade boundary";
		}
		else
		{
			ucas = 8;
			grade = "P";
			feedback = "You are " + (42 - ocr) + " ocr points short of the next grade boundary";
		}
		
		
	}
	
	alert("ocr Score: " + ocr + "\n\nocr Grade: " + grade + "\n\nUCAS Points: " + ucas + "\n\n" + feedback);


}

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document




  
    
      
      
    
    
      
      
      
      
    
    
      
      
      
      
    
    
      
      
      
      
    
    
      
      
      
      
    
  <table width="933" height="251" border="1"><tbody><tr><td colspan="3">OCR grade calculator </td><td width="199"> </td></tr><tr><td width="201">unit #</td><td width="217">name </td><td width="288">mark </td><td>your course</td></tr><tr><td style="width: 98px">1</td><td style="width: 221px">Fundamentals of IT</td><td>
        Select
        P
        M
        D
      </td><td>
Certificate (2 units)</td></tr><tr><td style="width: 98px">2</td><td style="width: 221px">Global Information</td><td>
        Select
        P
        M
        D
      </td><td></td></tr><tr><td style="width: 98px">3</td><td style="width: 221px">Cyber Security</td><td>
        Select
        P
        M
        D
      </td><td> </td></tr></tbody></table>
  <p> </p>
  <p> </p>
  <p> </p>
  <p> </p>

Richard MacCutchan

Вы не объяснили, в чем проблема. И, пожалуйста, правильно отформатируйте свой код с помощью <pre> теги, так что это читабельно

phil.o

Я отформатировал код для вас. Это уродство. В части javascript отсутствует закрывающая скобка, а часть html не является допустимым xml, но все же html. Это ошибка копирования/вставки или ваш реальный код? Пожалуйста, уточните.

Member 13210587

Привет, Фил. o большое спасибо за форматирование этого документа. сценарий позволяет студентам выбрать свою оценку для блоков 1 и 2, а затем рассчитать свою итоговую оценку, балл и баллы ucas. сценарий все еще находится в стадии разработки. текущая проблема заключается в том, что когда пользователи выбирают свою оценку, система не вычисляет правильный балл и оценку
с уважением

ZurdoDev

Все, что вам нужно сделать, это отладить его. Поставьте точку останова на одной из линий, пройдите через нее и посмотрите, что происходит. Очень просто.

2 Ответов

Рейтинг:
1

Patrice T

Когда вы не понимаете, что делает ваш код или почему он делает то, что делает, ответ таков: отладчик.
Используйте отладчик, чтобы увидеть, что делает ваш код. Просто установите точку останова и посмотрите, как работает ваш код, отладчик позволяет вам выполнять строки 1 на 1 и проверять переменные по мере их выполнения, это невероятный инструмент обучения.

Отладчик-Википедия, свободная энциклопедия[^]
Отладка JavaScript[^]
Хром Инструменты Разработчика  |  Сеть  |  Разработчики Google[^]
Отладчик здесь для того, чтобы показать вам, что делает ваш код, и ваша задача-сравнить его с тем, что он должен делать.
В отладчике нет никакой магии, он не находит ошибок, он просто помогает вам. Когда код не делает того, что ожидается, вы близки к ошибке.


Рейтинг:
0

W∴ Balboos, GHB

У вас есть по крайней мере девять из них, с различными "о#" и буквами.

if (document.getElementById("o1").disabled=false == "P") ocr = ocr + 21;

Они всегда будут оцениваться как ложные, так как
document.getElementById("o1").disabled=false 
не возвращает символьное значение

Таким образом, приращение ocr никогда не произойдет, и значение никогда не будет правильным.


Maciej Los

5ед!