%@ Language=VBScript%>
<%
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
'xxxxxxxxxxxxxx Declarations
dim question(4)
dim responsea(4)
dim responseb(4)
dim responsec(4)
dim responsed(4)
dim responsee(4)
dim question_type(4)
dim qanswer(4)
dim explanation(4)
dim instructions, body, title, id, header, footer, pfile, ccount, expire, ncount
dim db, rs
dim correct, wrong
dim rnumber
dim email, email_to, email_server
dim answer(500)
dim aspresults
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
'xxxxxxxxxx operationalize your global variables
rnumber = 4
id = "5/11/01*9:38:53*AM566519"
instructions = "Please choose the best answer. For some questions, more than one answer may appear to be correct. In this case you should choose the answer that is most appropriate."
title = "Computer Based Examination"
pfile = "astro1.asp"
body = "
"
email = "yes"
email_to = "florin@lefo.ro"
email_server = "194.102.193.1"
password = "sisif+"
aspresults = "1"
session("security") = "0511200109382994207"
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
'xxxxxxxxxxxx Question 1
question_type(0) = "MC"
question(0) = "Care din urmatoarele este asterismul cel mai unic, cel mai comun asociat cu constelatia Lyra?"
responsea(0) = "arch"
responseb(0) = "parellelogram"
responsec(0) = "little dipper"
responsed(0) = "teaspoon"
responsee(0) = ""
qanswer(0) = "B"
explanation(0) = ""
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
'xxxxxxxxxxxx Question 2
question_type(1) = "MC"
question(1) = "Ce constelatie inprejmuieste partea sudica a constelatiei Ursa Minor?"
responsea(1) = "Cepheus"
responseb(1) = "Casseopeia"
responsec(1) = "Camelopardalis"
responsed(1) = "Draco"
responsee(1) = ""
qanswer(1) = "D"
explanation(1) = ""
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
'xxxxxxxxxxxx Question 3
question_type(2) = "MC"
question(2) = "Ce constelatie apare in imagine? ,""perseus.rle"""
responsea(2) = "Canes Venatici"
responseb(2) = "Perseus"
responsec(2) = "Coma Berenices"
responsed(2) = "Corvus"
responsee(2) = ""
qanswer(2) = "B"
explanation(2) = ""
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
'xxxxxxxxxxxx Question 4
question_type(3) = "MC"
question(3) = "Cea mai mare parte a primei jumatati a tuturor obiectelor Messial (in ordine numerica) ce clasa de obiecte sunt?"
responsea(3) = "galaxies"
responseb(3) = "supernova remnants"
responsec(3) = "open/globular clusters"
responsed(3) = "planetary nebulas"
responsee(3) = ""
qanswer(3) = "C"
explanation(3) = ""
'
'xbeginxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
dim WebQuizWriter
set WebQuizWriter = server.createobject("WebQuiz.Writer")
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
'xxxxxxxxx begin your bulk if statements here
'first off, the dreaded login sequence
if (request.form("action") = "login") or (request.querystring("action") = "login") then
'first off, your data validation
if (len(trim(request.form("name"))) = 0) and (len(trim(request.querystring("action"))) = 0) then
call webquizwriter.call_error("You must enter your name to begin the test!", body, title)
end if
expire = DateAdd("d", "1", now())
if (trim(request.form("name") = password)) or (trim(request.querystring("password")) = password) then
call webquizwriter.AdmModule(id, body, title, password, pFile)
end if
if (len(trim(request.querystring("password"))) > 0) and (trim(request.querystring("password")) <> password) then
call webquizwriter.call_error("The password you entered is not correct. Please try again!", body, title)
end if
if (trim(request.querystring("action")) <> "") and (trim(request.querystring("password")) <> password) then
call webquizwriter.call_error("The password you entered is not correct. Please try again!", body, title)
end if
call set_answers()
call create_question(1, webquizwriter.cleandata(request.form("name")), webquizwriter.cleandata(request.form("id")), now())
elseif (request.form("action") = "goto") and (request.form("start") <> "") then
'assuming they used the goto box
call set_answers()
call create_question(request.form("goto_number"), request.form("name"), request.form("id"), request.form("start"))
elseif (request.form("action") = "quit") and (len(trim(request.form("start"))) <> 0) then
'assuming they are trying to quit on me
call webquizwriter.quitconfirm(pfile, body, title)
elseif (request.form("action") = "quit_confirm") and (request.form("start") <> "") then
'they confirmed the quit command, expire all the cookies and let them go back to login
For Each cookie in Response.Cookies
Response.Cookies(cookie).Expires = #July 4, 1997#
Next
elseif (request.form("action") = "continue") and (request.form("start") <> "") then
'they answered a question, hit the save button, now do something with the data
'reset your answers
call set_answers
'determine whether you need to manipulate the multiple answer answer
if request.form("question_type") = "MA" then
MAanswerA = cstr(request.form("MA"))
MAanswerB = cstr(request.form("MB"))
MAanswerC = cstr(request.form("MC"))
MAanswerD = cstr(request.form("MD"))
MAanswerE = cstr(request.form("ME"))
answer(request.form("qnumber")) = MAanswerA & MAanswerB & MAanswerC & MAanswerD & MAanswerE
end if
'determine which question to send them to next
ncount = 1
do until (len(trim(answer(ncount))) = 0) or (ncount > rnumber)
ncount = ncount + 1
loop
if ncount <= rnumber then
call create_question(ncount, request.form("name"), request.form("id"), request.form("start"))
end if
'else print confirmation that it is done
call score_confirm(request.form("name"), request.form("id"), request.form("start"))
elseif (request.form("action") = "grade") and (len(trim(request.form("start"))) <> 0) then
if webquizwriter.previous(request.form("name"), request.form("id"), request.form("start")) = true then
'save the results
call save_results()
if email = "yes" then
'send email message
call send_email()
end if
else
call webquizwriter.call_error("Security Violation: You cannot change your answers once they have been saved.", body, title)
end if
'send the score report to the user
call score_report()
response.end
elseif (request.querystring("action") = "explain") and (request.querystring("number") <> "") then
if webquizwriter.securitycheck(request.querystring("name"), request.querystring("id"), request.querystring("start")) then
call webquizwriter.call_error("Security Violation: You can only view explanations for one hour after taking the exam.", body, title)
end if
show_explain(request.querystring("number"))
elseif (request.querystring("action") = "delete") and (len(trim(request.querystring("key"))) <> 0) and (request.querystring("password") = password) then
webquizwriter.delete(request.querystring("key"))
call webquizwriter.admmodule(id, body, title, password, PFILE)
end if
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
'xxxxxxxxx print out your intropage here
response.expires = 0
call WebQuizWriter.PrintHeader(body, title)
%>
|
|
Begin Test Now!
|
<% =title %>
Instructions: <% =instructions %>
How to take this exam: This is an computer-based examination.
You may quit at any time by clicking "Quit" on your screen. If you quit,
your exam will not be graded and you will not receive a score.
Only when you have answered all of the questions will you be given the chance
to score your exam. Do not press "Back" on your web browser
unless you are instructed to by the system. Pressing back at other times
could erase some of your previous answers. You should navigate
the system by clicking the links and buttons on the web pages.
|
|
<%
call webquizwriter.printfooter
response.end
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
'xxxxxxxxxxx start your subroutines here
sub create_question(number, name, id, start)
dim anumber
anumber = number -1
response.expires = 0
call webquizwriter.printheader(body, title)
%>
|
Student:
<% =name & " (" & id & ")" %>
|
Start Time:
<% =formatdatetime(start) %>
|
|
Question <% =number %> of <% =rnumber %>
|
<%
if question_type(anumber) = "MA" then
response.write "Multiple Answers Permitted"
elseif question_type(anumber) = "TF" then
response.write "True/False"
else
response.write "Multiple Choice"
end if
%>
|
|
|
| |
|
<%
response.write ""
%>
|
|
<%
call WebQuizWriter.printfooter
response.end
end sub 'create_question
'xxxxxxxxxxxxxxxxxxxxxxxxxxxx
'xxxxxxx screen to confirm to score tests
'xxxxxxxxxxxxxxxxxxxxxxxxxx
sub score_confirm(name, id, start)
response.expires = 0
call webquizwriter.printheader(body, title)
%>
|
Student:
<% =name & " (" & id & ")" %>
|
Start Time:
<% =formatdatetime(start) %>
|
|
|
|
|
|
| |
|
<%
response.write ""
%>
|
|
<%
call WebQuizWriter.printfooter
response.end
end sub
sub save_results()
set_answers
ncount = 1
number = 1
actual = 0
correct = 0
WRONG = ""
do until ncount > rnumber
if answer(number) = qanswer(actual) then
correct = correct + 1
'response.write "correct
"
ELSE
WRONG = WRONG & NUMBER & ", "
'response.write "wrong
"
END IF
number = number + 1
actual = actual + 1
ncount = ncount + 1
loop
'junk772
'Create and Open Recordset Object
call webquizwriter.insertscore(request.form("name"), request.form("id"), formatdatetime(request.form("start"), vbgeneraldate), wrong, int(correct/rnumber * 100), id)
end sub
sub send_email()
on error resume next
'compute the message to send
message = "Score report: " & vbcr
message = message & "---------------" & vbcr
message = message & "Exam Title: " & title & vbcr
message = message & "Student Name: " & request.form("name") & vbcr
message = message & "Time Began: " & formatdatetime(REQUEST.FORM("START"), vbgeneraldate) & vbcr
message = message & "Time Completed: " & formatdatetime(now(), vbgeneraldate) & vbcr
message = message & "Elapsed Time: " & DATEDIFF("n", request.form("start"), now()) & " minutes" & vbcr
message = message & "Score: " & int(correct/rnumber * 100) & " %" & vbcr
message = message & "Incorrect Questions: " & wrong & vbcr
set jmail = server.createobject("jmail.smtpmail")
jmail.serveraddress = email_server
jmail.sender = "WebquizWriter@yourserver.com"
jmail.subject = title & " Score Report"
jmail.addrecipient email_to
jmail.body = message
jmail.priority = 3
jmail.execute
end sub
sub score_report()
set_answers
response.expires = 0
call webquizwriter.printheader(body, title)
if aspresults = "3" then
%>Your score has been saved to the database
Click the button below to exit this test
<% call webquizwriter.printfooter()
response.end
End If
%>
Your score has been saved to the database.
<%
call WebQuizWriter.printfooter
end sub
sub show_explain(enumber)
enumber
enumber = enumber -1
response.expires = 0
call webquizwriter.printheader(body, title)
%>
WebQuiz Writer Answer & Explanation
|
|
|
Question <% =(enumber +1)%>
|
<%
if question_type(enumber) = "MA" then
response.write "Multiple Answers Permitted"
elseif question_type(enumber) = "TF" then
response.write "True/False"
else
response.write "Multiple Choice"
end if
%>
|
|
<% = question(enumber) %>
|
|
<%if instr(1, qanswer(enumber), "A", 1) <> 0 then%>Correct<%END IF%>
|
(A)
|
<%=responsea(enumber)%>
|
|
<%if instr(1, qanswer(enumber), "B", 1) <> 0 then%>Correct<%END IF%>
|
(B)
|
<%=responseb(enumber)%>
|
<% if len(trim(responsec(enumber))) <> 0 then%>
|
<%if instr(1, qanswer(enumber), "C", 1) <> 0 then%>Correct<%END IF%>
|
(C)
|
<%=responsec(enumber)%>
|
<%end if%>
<% if len(trim(responsed(enumber))) <> 0 then%>
|
<%if instr(1, qanswer(enumber), "D", 1) <> 0 then%>Correct<%END IF%>
|
(D)
|
<%=responsed(enumber)%>
|
<%end if%>
<% if len(trim(responsee(enumber))) <> 0 then%>
|
<%if instr(1, qanswer(enumber), "E", 1) <> 0 then%>Correct<%END IF%>
|
(E)
|
<%=responsee(enumber)%>
|
<%end if%>
|
<%=explanation(enumber)%>
|
|
| &nsbp; |
<%
call WebQuizWriter.printfooter
response.end
end sub
'xxxxxxxxxxxxxxxxxxxxxxxxxx
'xxxx the big sub goes here
Sub set_answers()
answer(0) = request.form("Q0")
answer(1) = request.form("Q1")
answer(2) = request.form("Q2")
answer(3) = request.form("Q3")
answer(4) = request.form("Q4")
answer(5) = request.form("Q5")
answer(6) = request.form("Q6")
answer(7) = request.form("Q7")
answer(8) = request.form("Q8")
answer(9) = request.form("Q9")
answer(10) = request.form("Q10")
answer(11) = request.form("Q11")
answer(12) = request.form("Q12")
answer(13) = request.form("Q13")
answer(14) = request.form("Q14")
answer(15) = request.form("Q15")
answer(16) = request.form("Q16")
answer(17) = request.form("Q17")
answer(18) = request.form("Q18")
answer(19) = request.form("Q19")
answer(20) = request.form("Q20")
answer(21) = request.form("Q21")
answer(22) = request.form("Q22")
answer(23) = request.form("Q23")
answer(24) = request.form("Q24")
answer(25) = request.form("Q25")
answer(26) = request.form("Q26")
answer(27) = request.form("Q27")
answer(28) = request.form("Q28")
answer(29) = request.form("Q29")
answer(30) = request.form("Q30")
answer(31) = request.form("Q31")
answer(32) = request.form("Q32")
answer(33) = request.form("Q33")
answer(34) = request.form("Q34")
answer(35) = request.form("Q35")
answer(36) = request.form("Q36")
answer(37) = request.form("Q37")
answer(38) = request.form("Q38")
answer(39) = request.form("Q39")
answer(40) = request.form("Q40")
answer(41) = request.form("Q41")
answer(42) = request.form("Q42")
answer(43) = request.form("Q43")
answer(44) = request.form("Q44")
answer(45) = request.form("Q45")
answer(46) = request.form("Q46")
answer(47) = request.form("Q47")
answer(48) = request.form("Q48")
answer(49) = request.form("Q49")
answer(50) = request.form("Q50")
answer(51) = request.form("Q51")
answer(52) = request.form("Q52")
answer(53) = request.form("Q53")
answer(54) = request.form("Q54")
answer(55) = request.form("Q55")
answer(56) = request.form("Q56")
answer(57) = request.form("Q57")
answer(58) = request.form("Q58")
answer(59) = request.form("Q59")
answer(60) = request.form("Q60")
answer(61) = request.form("Q61")
answer(62) = request.form("Q62")
answer(63) = request.form("Q63")
answer(64) = request.form("Q64")
answer(65) = request.form("Q65")
answer(66) = request.form("Q66")
answer(67) = request.form("Q67")
answer(68) = request.form("Q68")
answer(69) = request.form("Q69")
answer(70) = request.form("Q70")
answer(71) = request.form("Q71")
answer(72) = request.form("Q72")
answer(73) = request.form("Q73")
answer(74) = request.form("Q74")
answer(75) = request.form("Q75")
answer(76) = request.form("Q76")
answer(77) = request.form("Q77")
answer(78) = request.form("Q78")
answer(79) = request.form("Q79")
answer(80) = request.form("Q80")
answer(81) = request.form("Q81")
answer(82) = request.form("Q82")
answer(83) = request.form("Q83")
answer(84) = request.form("Q84")
answer(85) = request.form("Q85")
answer(86) = request.form("Q86")
answer(87) = request.form("Q87")
answer(88) = request.form("Q88")
answer(89) = request.form("Q89")
answer(90) = request.form("Q90")
answer(91) = request.form("Q91")
answer(92) = request.form("Q92")
answer(93) = request.form("Q93")
answer(94) = request.form("Q94")
answer(95) = request.form("Q95")
answer(96) = request.form("Q96")
answer(97) = request.form("Q97")
answer(98) = request.form("Q98")
answer(99) = request.form("Q99")
answer(100) = request.form("Q100")
end sub
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
'xxxxxxxxxxxx End of script goes here
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
'xxxxendxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
%>