Quiz Program base on Cookie
/*
Mastering JavaScript, Premium Edition
by James Jaworski
ISBN:078212819X
Publisher Sybex CopyRight 2001
*/
<HTML>
<HEAD>
<TITLE>Quiz Program</TITLE>
<SCRIPT LANGUAGE="JavaScript"><!--
//Question object
function Question() {
this.question=Question.arguments[0]
var n=Question.arguments.length
this.answers = new Array(n-2)
for(var i=1; i<n-1; ++i)
this.answers[i-1]=Question.arguments[i]
this.correctAnswer=Question.arguments[n-1]
}
function readCookie() {
currentQuestion=0
numberOfQuestions=0
correctAnswers=0
score="None"
cookie=document.cookie
currentQuestion=getNumberValue(cookie,"currentQuestion")
numberOfQuestions=getNumberValue(cookie,"numberOfQuestions")
correctAnswers=getNumberValue(cookie,"correctAnswers")
if(numberOfQuestions>0)
score=Math.round(correctAnswers*100/numberOfQuestions)
}
function getNumberValue(s,n) {
s=removeBlanks(s)
var pairs=s.split(";")
for(var i=0;i<pairs.length;++i) {
var pairSplit=pairs[i].split("=")
if(pairSplit[0]==n) {
if(pairSplit.length>1) return parseInt(pairSplit[1])
else return 0
}
}
return 0
}
function removeBlanks(s) {
var temp=""
for(var i=0;i<s.length;++i) {
var c=s.charAt(i)
if(c!=" ") temp += c
}
return temp
}
function askNextQuestion() {
document.writeln("<H4 ALIGN='CENTER'>"
+qa[currentQuestion].question+"</H4>")
displayAnswers()
}
function displayAnswers() {
document.writeln('<FORM NAME="answerForm">')
for(var ii=0;ii<qa[currentQuestion].answers.length;++ii) {
document.writeln('<H4 ALIGN="CENTER">')
document.writeln('<INPUT TYPE="RADIO" NAME="answer"> ')
document.writeln(qa[currentQuestion].answers[ii])
if(ii+1==qa[currentQuestion].answers.length) {
document.writeln('<BR><BR><INPUT TYPE="BUTTON"')
document.writeln('NAME="continue" VALUE="Continue" ')
document.writeln(' onClick="checkAnswers()">')
}
document.writeln('</H4>')
}
document.writeln('</FORM>')
}
function checkAnswers() {
var numAnswers=qa[currentQuestion].answers.length
var correctAnswer=qa[currentQuestion].correctAnswer
for(var jj=0;jj<numAnswers;++jj) {
if(document.answerForm.elements[jj].checked) {
if(jj==correctAnswer){
correct()
break
}else{
incorrect()
break
}
}
if(jj==numAnswers){
incorrect()
break
}
}
}
function correct() {
++currentQuestion
++numberOfQuestions
++correctAnswers
updateCookie()
location.reload(true)
}
function incorrect() {
++numberOfQuestions
updateCookie()
alert("Incorrect!")
location.reload(true)
}
function updateCookie() {
document.cookie="currentQuestion="+currentQuestion
document.cookie="numberOfQuestions="+numberOfQuestions
document.cookie="correctAnswers="+correctAnswers
}
function endQuiz() {
document.cookie="currentQuestion=0"
document.cookie="numberOfQuestions=0"
document.cookie="correctAnswers=0"
document.writeln('<FORM NAME="finishedForm">')
document.write("<H4 ALIGN='CENTER'>")
document.write("Congratulations! You have finished this quiz.")
document.write('<BR><BR><INPUT TYPE="BUTTON" ')
document.writeln('NAME="restart" VALUE="Restart" ')
document.writeln(' onClick="restartQuiz()">')
document.writeln("</H4>")
document.writeln('</FORM>')
}
function restartQuiz() {
location.reload(true)
}
// --></SCRIPT>
<SCRIPT LANGUAGE="JavaScript"><!--
//Heading displayed on the quiz page
pageHeading="History Quiz"
//Questions
qa = new Array()
qa[0] = new Question("Who was the first president of the United States?",
"George Washington",
"Abraham Lincoln",
"Benjamin Franklin",
"Harry Truman",
0)
qa[1] = new Question("When did Columbus discover America?",
"1249",
"1942",
"1492",
"1294",
2)
qa[2] = new Question("Who commanded the Macedonian army?",
"Napoleon",
"Alexander the Great",
"Cleopatra",
"George Patton",
1)
qa[3] = new Question("Where did Davy Crockett lose his life?",
"The Spanish Inquisition",
"The Alamo",
"Miami, Florida",
"On the Oregon Trail",
1)
qa[4] = new Question("Who was the first man to walk on the moon?",
"Louis Armstrong",
"Buzz Armstrong",
"Jack Armstrong",
"Neil Armstrong",
3)
qa[5] = new Question("Who wrote the <I>Scarlet Letter</I>?",
"Michael Crichton",
"Ernest Hemingway",
"Nathaniel Hawthorne",
"Charles Dickens",
2)
qa[6] = new Question("Eli Whitney invented:",
"Mad Cow's Disease",
"the Cotton Gin",
"whisky",
"the automobile",
1)
qa[7] = new Question("Who was known as the King of the Fauves?",
"Salvatore Dali",
"Henri Matisse",
"Pablo Picasso",
"Vincent Van Gogh",
1)
qa[8] = new Question("Who discovered the force of gravity?",
"Isaac Newton",
"Galileo",
"Copernicus",
"Albert Einstein"
,0)
qa[9] = new Question("Who created HTML?",
"Tim Berners-Lee",
"Marc Andreessen",
"Bill Gates",
"Jim Barksdale",
0)
qa[10] = new Question("Leonardo da Vinci was born in Greece.",
"True",
"False",
1)
qa[11] = new Question("Louisiana was purchased from France.",
"True",
"False",
0)
// --></SCRIPT>
</HEAD>
<BODY>
<SCRIPT LANGUAGE="JavaScript"><!--
readCookie()
document.writeln("<H1 ALIGN='CENTER'>"+pageHeading+"</H1>")
document.writeln("<P ALIGN='RIGHT'><B>Questions: "
+numberOfQuestions+"<BR>")
document.writeln("Correct Answers: "+correctAnswers+"<BR>")
document.writeln("Score: "+score+"</B></P>")
if(currentQuestion >= qa.length) endQuiz()
else askNextQuestion()
// --></SCRIPT>
</BODY>
</HTML>
Related examples in the same category