Excel Forcast and Outline Group MCQs
Download Full MCQs as PDF
];
let correctAnswers = 0;
function generateQuiz() {
const quizContainer = document.getElementById("quiz-container");
questions.forEach((question, index) => {
let questionHTML = `
${index + 1}. ${question.q}
`;
question.options.forEach((option, optIndex) => {
questionHTML += `- ${String.fromCharCode(65 + optIndex)}) ${option}
`;
});
questionHTML += `
${question.explanation}
`;
quizContainer.innerHTML += questionHTML;
});
}
function toggleExplanation(questionNumber) {
var explanation = document.getElementById("explanation-" + questionNumber);
explanation.style.display = "block";
}
function checkAnswer(option, isCorrect, questionNumber) {
var options = option.parentElement.children;
for (var i = 0; i < options.length; i++) {
options[i].style.pointerEvents = "none";
}
if (isCorrect) {
option.classList.add("correct");
correctAnswers++;
} else {
option.classList.add("incorrect");
options[questions[questionNumber].answer].classList.add("correct");
}
toggleExplanation(questionNumber);
}
function submitQuiz() {
const scoreBox = document.getElementById("score");
scoreBox.style.display = "block";
scoreBox.innerHTML = `
🎉 Congratulations! Your score is: ${correctAnswers} out of ${questions.length}.
Now you can download all MCQs in a PDF from the bottom of the page.
`;
document.getElementById("pdf-link").style.display = "block";
window.scrollTo(0, 0);
}
function downloadPDF() {
const { jsPDF } = window.jspdf;
const doc = new jsPDF();
const websiteURL = "https://www.smartmcqs.site/";
const postTitle = document.title || "quiz";
const fileName = postTitle.replace(/[^a-z0-9]/gi, '_').toLowerCase() + '.pdf';
const pageHeight = doc.internal.pageSize.height;
const pageWidth = doc.internal.pageSize.width;
let yPos = 30;
let pageNum = 1;
function addHeaderFooter() {
doc.setFontSize(16);
doc.setTextColor(0, 0, 255);
doc.text("www.smartmcqs.site", pageWidth / 2, 15, { align: 'center' });
doc.setFontSize(10);
doc.setTextColor(0, 0, 0);
doc.text(`Page ${pageNum}`, pageWidth - 20, pageHeight - 10);
}
addHeaderFooter();
doc.setFontSize(12);
questions.forEach((question, i) => {
if (yPos > pageHeight - 30) {
doc.addPage();
pageNum++;
yPos = 30;
addHeaderFooter();
}
const questionText = `${i + 1}. ${question.q}`;
doc.setTextColor(0, 0, 255);
doc.textWithLink(questionText, 10, yPos, { url: websiteURL });
yPos += 8;
question.options.forEach((option, idx) => {
doc.setTextColor(idx === question.answer ? 0 : 255, 0, 0);
doc.text(`${String.fromCharCode(65 + idx)}) ${option}`, 10, yPos);
yPos += 8;
});
doc.setTextColor(0, 0, 0);
doc.text(`Explanation: ${question.explanation}`, 10, yPos, { maxWidth: 180 });
yPos += 14;
});
doc.save(fileName);
}
generateQuiz();
No comments:
Post a Comment