팔괘장 종합 평가 문제
총 100문제 / 제한시간: 없음
`; container.insertAdjacentHTML('beforeend', questionHTML); }); }
// 초기 문제 생성 createQuestions();
// 제출 이벤트 처리 document.getElementById('quiz-form').addEventListener('submit', function(e) { e.preventDefault();
let score = 0; const total = Object.keys(quizData).length; let detailedResults = "";
// 채점 로직 for (let qId in quizData) { const selected = document.querySelector(`input[name="${qId}"]:checked`); const questionData = quizData[qId]; const isCorrect = selected && selected.value === questionData.correct;
if (isCorrect) score++;
detailedResults += `
${questionData.question}
선택한 답: ${selected ? questionData.options[selected.value] : '답을 선택하지 않음'} ${isCorrect ? '✓' : '✗'}
정답: ${questionData.options[questionData.correct]}
`; }
// 점수 계산 및 등급 설정 const scoreDisplay = document.getElementById('score-display'); const percentage = (score/total*100);
let grade = "", gradeColor = ""; if (percentage === 100) { grade = "A+ (만점)"; gradeColor = "#28a745"; } else if (percentage >= 90) { grade = "A (우수)"; gradeColor = "#17a2b8"; } else if (percentage >= 80) { grade = "B (좋음)"; gradeColor = "#007bff"; } else if (percentage >= 70) { grade = "C (보통)"; gradeColor = "#ffc107"; } else if (percentage >= 60) { grade = "D (개선 필요)"; gradeColor = "#dc3545"; } else { grade = "F (재시험 권장)"; gradeColor = "#6c757d"; }
// 점수 및 등급 표시 scoreDisplay.innerHTML = `
`; scoreDisplay.style.backgroundColor = score === total ? '#d4edda' : '#f8d7da'; scoreDisplay.style.color = score === total ? '#155724' : '#721c24';
// 결과 섹션 표시 // 결과 섹션 표시 직전에 추가 window.scrollTo({ top: 800, behavior: 'smooth' }); document.getElementById('quiz-form').style.display = 'none'; document.getElementById('result-section').style.display = 'block'; document.getElementById('detailed-results').innerHTML = detailedResults;
// 다시 풀기 버튼 추가 const restartBtn = document.createElement('button'); restartBtn.textContent = '다시 풀기'; restartBtn.className = 'restart-btn'; restartBtn.onclick = function() {
// 폼 초기화 document.getElementById('quiz-form').reset();
// 진행률 초기화 document.getElementById('progress').style.width = '0%';
// 결과 섹션 숨기기 document.getElementById('result-section').style.display = 'none'; document.getElementById('quiz-form').style.display = 'block'; };
document.getElementById('result-section').appendChild(restartBtn); });
// 진행 상황 업데이트
document.addEventListener('change', function() {
const total = Object.keys(quizData).length;
const answered = document.querySelectorAll('input[type="radio"]:checked').length;
const progress = document.getElementById('progress');
progress.style.width = `${(answered/total) * 100}%`;
});
})();