diff options
Diffstat (limited to 'texmf-dist/source/latex/eq2db/examples/FDF_submit/quiz2.tex')
-rw-r--r-- | texmf-dist/source/latex/eq2db/examples/FDF_submit/quiz2.tex | 180 |
1 files changed, 180 insertions, 0 deletions
diff --git a/texmf-dist/source/latex/eq2db/examples/FDF_submit/quiz2.tex b/texmf-dist/source/latex/eq2db/examples/FDF_submit/quiz2.tex new file mode 100644 index 00000000..ab78eeca --- /dev/null +++ b/texmf-dist/source/latex/eq2db/examples/FDF_submit/quiz2.tex @@ -0,0 +1,180 @@ +% +% D. P. Story dpstory@uakron.edu +% The University of Akron +% +% Demo of using web/exerquiz to create a quiz, then process the +% user's responses using the Adobe FDF Toolkit. +% +\documentclass{article} +\usepackage[designi]{web} % dvips, pdftex, xetex +\usepackage{exerquiz} +\usepackage[ImplMulti,indefIntegral]{dljslib} +\usepackage[eqRecord]{eq2db} + +\everyTextField{\BC{}\textFont{TiRo}\textSize{10}\textColor{0 0 1 rg}} + +% Set the deadline date +\newcommand\Deadline{8/10/2003} + +% set the time limit +\newcommand\TimeLimit{15} % measured in minutes + +% +% Document level JavaScript to check whether student has entered the IdInfo +% fields, and whether the student has a SSN of someone enrolled in the ``course''. +% The ClassRoster array lists the student IDs (SSN) of student ``enrolled''. +% +\begin{insDLJS}[checkIDs]{eqrecord}{JS for eqRecord} +var ok2Initialize = false; +var okToSubmit = false; +var ClassRoster = new Array(123456789, 111111111, 222222222, 987654321); +var TimeLimit = 60 * 1000 * \TimeLimit; +var StartingTime, RequiredEndingTime; +function checkIDs() { + var DeadlineDate = util.scand("mm/dd/yyyy", "\Deadline").valueOf(); + var TimeOfQuiz = new Date().valueOf(); + if ( TimeOfQuiz > DeadlineDate) { + app.alert("It is too late to take this quiz!"); + return false; + } + var f = this.getField("IdInfo.Name.First"); + if ( f.value.replace(/\s/g,"") == "" ) { + app.alert("Please enter your \"First Name\", then try again to initialize the quiz again."); + return false; + } + var f = this.getField("IdInfo.Name.Last"); + if ( f.value.replace(/\s/g,"") == "" ) { + app.alert("Please enter your \"Last Name\", then try again to initialize the quiz again."); + return false; + } + var f = this.getField("IdInfo.SSN"); + if ( f.value == "" ) { + app.alert("Please enter enter your \"SSN\", then try to initialize the quiz again."); + return false; + } + for (var i=0; i < ClassRoster.length; i++) + if ( f.value == ClassRoster[i] ) break; + if ( i == ClassRoster.length ) { + app.alert("You are not enrolled in this class and, therefore, will not be permitted to take the quiz!"); + return false + } + else { + StartingTime = new Date().valueOf(); + RequiredEndingTime = StartingTime + TimeLimit; + return true; + } +} +function checkTimeLimit() +{ + var FinishTime = new Date().valueOf(); + if ( FinishTime > RequiredEndingTime ) + { + app.alert("The time limit of \TimeLimit\space minutes has expired, your results will not be submitted, sorry!"); + return false; + } + else return true; +} +\end{insDLJS} + + +% Check IDs just before we initialize the quiz +\renewcommand\priorInitQuiz{if(checkIDs())} + +% Check the time limit just before we submit, if exceeded, we +% do not submit. +\renewcommand\priorSubmitQuiz{if(checkTimeLimit())} + +\useBeginQuizButton[\textColor{0 0 1}\CA{Begin}\AC{}\RC{}\rectW{}] +\useEndQuizButton[\textColor{0 0 1}\CA{End}\AC{}\RC{}\rectW{}] + +% Design the "Quiz": Have the user enter his/her name and SSN (and perhaps +% other data to identify the class. + +% User's First Name +\newcommand\FirstName[2]{\textField{IdInfo.Name.First}{#1}{#2}} %\V{First Name} + +% User's Last Name +\newcommand\LastName[2]{\textField{IdInfo.Name.Last}{#1}{#2}} %\V{Last Name}% + +% User's SSN +\newcommand\SSN[2]{\textField[\MaxLen{11} + \AA{\AAKeystroke{AFSpecial_Keystroke(3);} + \AAFormat{AFSpecial_Format(3);} + }]{IdInfo.SSN}{#1}{#2}} + + +\begin{document} +\thispagestyle{empty} + +\begin{flushleft} +Quiz~\#3 \hfill \underbar{First Name:\ \FirstName{100pt}{10pt}}\par +D. P. Story \hfill\underbar{\rlap{Last Name:}\phantom{First Name:}\ \LastName{100pt}{10pt}}\par +Math 101 \hfill \rlap{SSN:}\phantom{First Name:}\ \SSN{100pt}{10pt} +\end{flushleft} + +% Submit this quiz to the ASP, and save it in the Database eqQuiz, +% within eqQuiz, there is a table called Quiz1. +\eqSubmit{http://localhost/scripts/eqRecord.asp\#FDF}{eqQuiz}{Math101} +\begin{quiz}*{Quiz3} Answer each of the following. Passing +is 100\%. + +\begin{questions} + +\item Name \emph{one} of the two people recognized as a founder of +Calculus.\par%\kern2pt +\RespBoxTxt{0}{0}{5}{Isaac Newton}{Newton}{I. Newton}% +{Gottfried Leibniz}{Leibniz}% +\CorrAnsButton{Isaac Newton or Gottfried Leibniz} + +\item $\displaystyle\frac{d}{dx} e^{x^2}=\RespBox{2*x*e^(x^2)}{4}{.0001}{[0,1]} %\hfill +\CorrAnsButton{2*x*e^(x^2)}$%\kern1bp\sqTallyBox + +\item $\cos(\pi) = \RespBox{-1}{1}{.0001}24\CorrAnsButton{-1}$ + +\item $\displaystyle\int \sin(x)\,dx = +\RespBox{-cos(x)}{4}{.0001}{[0,1]}[indefCompare]\CorrAnsButton{-cos(x)}$ +\end{questions} +\end{quiz}\quad\ScoreField\currQuiz\CorrButton\currQuiz + +\noindent +Answers: \AnswerField\currQuiz\hfill + +\newpage +\begin{flushleft} +Quiz \#4 \hfill Math 101 +\end{flushleft} + +% +% You can remove the limitations of the first quiz by saying +% \renewcommand\priorInitQuiz{} +% \renewcommand\priorSubmitQuiz{} +% that is, redefined one or both to be empty. +% + +\eqSubmit{http://localhost/scripts/eqRecord.asp\#FDF}{eqQuiz}{Math101} + +\begin{quiz}*{Quiz4} +Using the discriminant, $b^2-4ac$, respond to each of the +following questions. +\begin{questions} +\item Is the quadratic polynomial $x^2-4x + 3$ irreducible? +\begin{answers}4 +\Ans0 Yes &\Ans1 No +\end{answers} +\item Is the quadratic polynomial $2x^2 - 4x + 3 $ irreducible? +\begin{answers}4 +\Ans1 Yes &\Ans0 No +\end{answers} +\item How many solutions does the equation $2x^2 - 3x - 2= 0$ have? +\begin{answers}4 +\Ans0 none &\Ans0 one &\Ans1 two +\end{answers} +\item $\displaystyle\int_0^\pi \sin(x)\,dx = $\space +\RespBox{2}{1}{.0001}{[0,1]}\CorrAnsButton{2} +\end{questions} +\end{quiz}\quad\ScoreField\currQuiz\CorrButton\currQuiz + +\noindent +Answers: \AnswerField\currQuiz + +\end{document} |