28.12.2014, 20:57
|
Новичок на форуме
|
|
Регистрация: 28.12.2014
Сообщений: 2
|
|
Помогите пожалуйста с тестом!!!
Имеется тест, который выводит оценку и кол-во правильных ответов. Необходимо, чтобы тест еще выводил номера вопросов где ответили не правильно. Помогите пожалуйста!!!
Код:
|
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="Form1.css">
<script type="text/javascript">
var d=document, rez=0,
ball=1, //балл за вопрос
vsego=5, //всего вопросов
count=0; //Кол-во правильных ответов
function stopTest(){
var i=0;
//Первый вопрос
for(i=0; i<d.getElementsByName("q1").length; i++){
if(d.getElementsByName("q1")[i].checked) {
if(i==2){rez+=5; count++;}
}
}
//Второй вопрос
for(i=0; i<d.getElementsByName("q2").length; i++){
if(d.getElementsByName("q2")[i].checked) {
if(i==4){rez+=5; count++;}
}
}
//Третий вопрос
for(i=0; i<d.getElementsByName("q3").length; i++){
if(d.getElementsByName("q3")[i].checked) {
if(i==2){rez+=5; count++;}
}
}
//Четвертый вопрос
for(i=0; i<d.getElementsByName("q4").length; i++){
if(d.getElementsByName("q4")[i].checked) {
if(i==3){rez+=5; count++;}
}
}
//Пятый вопрос
for(i=0; i<d.getElementsByName("q5").length; i++){
if(d.getElementsByName("q5")[i].checked) {
if(i==5){rez+=5; count++;}
}
}
alert('Ваша оценка '+((rez/ball)/vsego)*1+' \nВы правильно ответили на '+count+ ' вопросов из '+vsego+'.');
location.reload(true);
rez=0;
count=0;
}
</script>
</head>
<style>
body {
background: url(1.jpg) no-repeat 100%;
background-attachment:fixed;
}
</style>
<body>
<form method="get" name="formname" onsubmit="return checkForm();">
<div id="header"><center><h2><i>Ответьте на вопросы!</i></h2></center></div>
<div id="blok1">
<center><h4 name="v1">1. Сколько будет 2+2*5?</h4></center>
<input type="radio" name="q1">25<br>
<input type="radio" name="q1">20<br>
<input type="radio" name="q1">12<br>
<input type="radio" name="q1">30<br>
<input type="radio" name="q1">35<br>
<input type="radio" name="q1">50<br>
</div>
<div id="blok2">
<center><h4>2. Какая самая богатая страна мира?</h4></center>
<input type="radio" name="q2">США<br>
<input type="radio" name="q2">Россия<br>
<input type="radio" name="q2">Китай<br>
<input type="radio" name="q2">Канада<br>
<input type="radio" name="q2">Катар<br>
<input type="radio" name="q2">Германия<br>
</div>
<div id="blok3">
<center><h4>3. Как называется наша галактика?</h4></center>
<input type="radio" name="q3">Галактика Андромеды<br>
<input type="radio" name="q3">Комета<br>
<input type="radio" name="q3">Млечный путь<br>
<input type="radio" name="q3">Объект Мейола<br>
<input type="radio" name="q3">Водоворот<br>
<input type="radio" name="q3">Веретено<br>
</div>
<div id="blok4">
<center><h4>4. Кто основал компанию Microsoft?</h4></center>
<input type="radio" name="q4">Стив Джобс<br>
<input type="radio" name="q4">Ларри Пейдж<br>
<input type="radio" name="q4">Акио Морито<br>
<input type="radio" name="q4">Билл Гейтс<br>
<input type="radio" name="q4">Фредерик Идестам<br>
<input type="radio" name="q4">Вернер Сименс<br>
</div>
<div id="blok5">
<center><h4>5. Какое самое быстрое животное в мире?</h4></center>
<input type="radio" name="q5">Лев<br>
<input type="radio" name="q5">Зебра<br>
<input type="radio" name="q5">Газель<br>
<input type="radio" name="q5">Заяц<br>
<input type="radio" name="q5">Собака<br>
<input type="radio" name="q5">Гепард<br>
</div>
<div id="blok6">
<center><h4>Нажмите на кнопку ниже, чтобы узнать результат.</h4></center>
<input style="margin-left:43px;" type="button" value="Принять ответ" name="ok" onclick="stopTest()"/>
<input type="reset" value="Сбросить тест"/>
</div>
</form>
</body>
</html> |
|
|
29.12.2014, 00:01
|
Профессор
|
|
Регистрация: 09.11.2014
Сообщений: 610
|
|
<html>
<head>
<meta charset="windows-1251" />
<link rel="stylesheet" type="text/css" href="Form1.css">
<style>
body {
background: url(1.jpg) no-repeat 100%;
background-attachment:fixed;
}
</style>
</head>
<body>
<form method="get" name="formname" onsubmit="return checkForm();">
<div id="header"><center><h2><i>Ответьте на вопросы!</i></h2></center></div>
<div id="block1">
<center><h4 name="v1">1. Сколько будет 2+2*5?</h4></center>
<input type="radio" name="q1">25<br>
<input type="radio" name="q1">20<br>
<input type="radio" name="q1">12<br>
<input type="radio" name="q1">30<br>
<input type="radio" name="q1">35<br>
<input type="radio" name="q1">50<br>
</div>
<div id="block2">
<center><h4>2. Какая самая богатая страна мира?</h4></center>
<input type="radio" name="q2">США<br>
<input type="radio" name="q2">Россия<br>
<input type="radio" name="q2">Китай<br>
<input type="radio" name="q2">Канада<br>
<input type="radio" name="q2">Катар<br>
<input type="radio" name="q2">Германия<br>
</div>
<div id="block3">
<center><h4>3. Как называется наша галактика?</h4></center>
<input type="radio" name="q3">Галактика Андромеды<br>
<input type="radio" name="q3">Комета<br>
<input type="radio" name="q3">Млечный путь<br>
<input type="radio" name="q3">Объект Мейола<br>
<input type="radio" name="q3">Водоворот<br>
<input type="radio" name="q3">Веретено<br>
</div>
<div id="block4">
<center><h4>4. Кто основал компанию Microsoft?</h4></center>
<input type="radio" name="q4">Стив Джобс<br>
<input type="radio" name="q4">Ларри Пейдж<br>
<input type="radio" name="q4">Акио Морито<br>
<input type="radio" name="q4">Билл Гейтс<br>
<input type="radio" name="q4">Фредерик Идестам<br>
<input type="radio" name="q4">Вернер Сименс<br>
</div>
<div id="block5">
<center><h4>5. Какое самое быстрое животное в мире?</h4></center>
<input type="radio" name="q5">Лев<br>
<input type="radio" name="q5">Зебра<br>
<input type="radio" name="q5">Газель<br>
<input type="radio" name="q5">Заяц<br>
<input type="radio" name="q5">Собака<br>
<input type="radio" name="q5">Гепард<br>
</div>
<div id="block6">
<center><h4>Нажмите на кнопку ниже, чтобы узнать результат.</h4></center>
<input style="margin-left:43px;" type="button" value="Принять ответ" name="ok"/>
<input type="reset" value="Сбросить тест"/>
</div>
</form>
<script>
ball=1, //балл за вопрос
answers={q1: 1, q2: 0, q3: 2, q4: 3, q5: 5}
document.getElementsByName("ok")[0].onclick=function(){
var count=0
"block1 block2 block3 block4 block5"
.split(" ")
.map(function(id){return document.getElementById(id).querySelectorAll("input")})
.forEach(function(collection){for(var i=0; i<collection.length; i++){
if((collection[i].checked)&&(answers[collection[i].name]===i)) count++ }})
alert("Ваша оценка: "+count*ball+". Вы ответили на "+count+" вопросов из 5")
}
</script>
</body>
</html>
PS не понял вашей мудреной системы начисления баллов за оценки. Я в математике не силен. В моем варианте, тупо начисление балла за каждый правильный ответ. Сбрасывать тест тоже непонятно зачем, все равно невозможно установить больше 1 флага на блок.
Последний раз редактировалось krutoy, 29.12.2014 в 00:06.
|
|
29.12.2014, 00:14
|
Новичок на форуме
|
|
Регистрация: 28.12.2014
Сообщений: 2
|
|
Спасибо конечно, но результат тот же, что и у меня. Мне нужно, чтобы показывало дополнительно вопросы на которые не правильно ответил
|
|
29.12.2014, 00:37
|
Профессор
|
|
Регистрация: 09.11.2014
Сообщений: 610
|
|
Так чтоли?
<html>
<head>
<meta charset="windows-1251" />
<link rel="stylesheet" type="text/css" href="Form1.css">
<style>
body {
background: url(1.jpg) no-repeat 100%;
background-attachment:fixed;
}
</style>
</head>
<body>
<form method="get" name="formname" onsubmit="return checkForm();">
<div id="header"><center><h2><i>Ответьте на вопросы!</i></h2></center></div>
<div id="block1">
<center><h4 name="v1">1. Сколько будет 2+2*5?</h4></center>
<input type="radio" name="q1">25<br>
<input type="radio" name="q1">20<br>
<input type="radio" name="q1">12<br>
<input type="radio" name="q1">30<br>
<input type="radio" name="q1">35<br>
<input type="radio" name="q1">50<br>
</div>
<div id="block2">
<center><h4>2. Какая самая богатая страна мира?</h4></center>
<input type="radio" name="q2">США<br>
<input type="radio" name="q2">Россия<br>
<input type="radio" name="q2">Китай<br>
<input type="radio" name="q2">Канада<br>
<input type="radio" name="q2">Катар<br>
<input type="radio" name="q2">Германия<br>
</div>
<div id="block3">
<center><h4>3. Как называется наша галактика?</h4></center>
<input type="radio" name="q3">Галактика Андромеды<br>
<input type="radio" name="q3">Комета<br>
<input type="radio" name="q3">Млечный путь<br>
<input type="radio" name="q3">Объект Мейола<br>
<input type="radio" name="q3">Водоворот<br>
<input type="radio" name="q3">Веретено<br>
</div>
<div id="block4">
<center><h4>4. Кто основал компанию Microsoft?</h4></center>
<input type="radio" name="q4">Стив Джобс<br>
<input type="radio" name="q4">Ларри Пейдж<br>
<input type="radio" name="q4">Акио Морито<br>
<input type="radio" name="q4">Билл Гейтс<br>
<input type="radio" name="q4">Фредерик Идестам<br>
<input type="radio" name="q4">Вернер Сименс<br>
</div>
<div id="block5">
<center><h4>5. Какое самое быстрое животное в мире?</h4></center>
<input type="radio" name="q5">Лев<br>
<input type="radio" name="q5">Зебра<br>
<input type="radio" name="q5">Газель<br>
<input type="radio" name="q5">Заяц<br>
<input type="radio" name="q5">Собака<br>
<input type="radio" name="q5">Гепард<br>
</div>
<div id="block6">
<center><h4>Нажмите на кнопку ниже, чтобы узнать результат.</h4></center>
<input style="margin-left:43px;" type="button" value="Принять ответ" name="ok"/>
<input type="reset" value="Сбросить тест"/>
</div>
</form>
<script>
ball=1, //балл за вопрос
answers={q1: 1, q2: 0, q3: 2, q4: 3, q5: 5}
document.getElementsByName("ok")[0].onclick=function(){
var count=0, wrong=[], noAnswer=[]
"block1 block2 block3 block4 block5"
.split(" ")
.map(function(id){return document.getElementById(id).querySelectorAll("input")})
.forEach(function(collection){
var tmp=collection[0].name[1];
for(var i=0; i<collection.length; i++){
if(collection[i].checked){
if(answers[collection[i].name]===i) return count++; return wrong.push(tmp)}} noAnswer.push(tmp)})
alert("Ваша оценка: "+count*ball+".\nВы ответили на "+count+" вопросов из 5\n"+"Неверные ответы на вопросы: "+wrong+"\nНет ответов на вопросы: "+noAnswer)
}
</script>
</body>
</html>
Последний раз редактировалось krutoy, 29.12.2014 в 01:07.
|
|
29.12.2014, 01:19
|
Профессор
|
|
Регистрация: 09.11.2014
Сообщений: 610
|
|
Kryloff,
Да, и вот еще что, сразу не обратил внимания, у вас там самая богатая страна -- толи канада, то ли катар, (с какого хрена?), если все правильно, исправте в answers={q1: 1, q2: 0, q3: 2, q4: 3, q5: 5}, если это не ошибка, я там США поставил, есличо.
|
|
|
|