/
MakarovaSS
/
TestProject
Обзор
Документация
Войти
/
MakarovaSS
/
TestProject
Код
Запросы
1
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
index.html
129 строк
5 KB
MakarovaSS
Создан генератор формы с вопросами и ответами для тестирования
26 май 2026, 10:11
26 май 2026, 10:11
d8967b6
Код
Авторство
О чём код?
<!DOCTYPE html> <html lang="ru"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Тест</title> <style> body { font-family: Arial, sans-serif; margin: 40px; } .question { margin-bottom: 20px; } .variants { margin-left: 20px; } .variant { margin: 10px 0; } button { margin-top: 20px; padding: 10px 20px; font-size: 16px; cursor: pointer; } </style> </head> <body> <div id="test-container"></div> <button onclick="checkAnswers()">Проверить ответы</button> <script> const content = `#Task #Question Что позволяет делать принцип наследования? #Variant Создавать новый метод на основе существующего #Correct Variant Создавать новый класс на основе существующего #Variant Перегружать методы #Task #Question Допустимо ли в Python множественное наследование? #Correct Variant Да,Допустимо #Variant Нет, допустимо только одиночное наследование`; function parseInput(content) { const tasks = content.split('#Task').slice(1); return tasks.map(task => { const questionMatch = task.match(/#Question\r?\n([^#]+)\r?\n/); const question = questionMatch ? questionMatch[1].trim() : ''; const variants = []; const variantRegex = /#Variant\r?\n([^#]+)\r?\n/g; let match; while ((match = variantRegex.exec(task)) !== null) { variants.push({ text: match[1].trim(), correct: false }); } const correctVariantMatch = task.match(/#Correct Variant\r?\n([^#]+)\r?\n/); if (correctVariantMatch) { const correctText = correctVariantMatch[1].trim(); const existingIndex = variants.findIndex(v => v.text === correctText); if (existingIndex >= 0) { variants[existingIndex].correct = true; } else { variants.push({ text: correctText, correct: true }); } } return { question, variants }; }); } function renderForm() { const container = document.getElementById('test-container'); const parsedTasks = parseInput(content); parsedTasks.forEach((task, index) => { const questionDiv = document.createElement('div'); questionDiv.className = 'question'; const h3 = document.createElement('h3'); h3.textContent = `${index + 1}. ${task.question}`; questionDiv.appendChild(h3); const variantsDiv = document.createElement('div'); variantsDiv.className = 'variants'; task.variants.forEach((variant, i) => { const label = document.createElement('label'); label.className = 'variant'; const input = document.createElement('input'); input.type = 'radio'; input.name = `q${index}`; input.value = i; label.appendChild(input); label.appendChild(document.createTextNode(variant.text)); variantsDiv.appendChild(label); }); questionDiv.appendChild(variantsDiv); container.appendChild(questionDiv); }); } function checkAnswers() { const parsedTasks = parseInput(content); let correctCount = 0; let totalCount = 0; parsedTasks.forEach((task, index) => { const radios = document.getElementsByName(`q${index}`); const selected = Array.from(radios).find(r => r.checked); const correctIndex = task.variants.findIndex(v => v.correct); if (selected) { totalCount++; if (parseInt(selected.value) === correctIndex) { correctCount++; } } }); alert(`Правильных ответов: ${correctCount} из ${totalCount}`); } window.onload = renderForm; </script> </body> </html>