• 締切済み

択一形式のテストをつくりたいです

2択問題(○×形式)と3択問題が混在した、クイズページを作ろうとしています。 構成は、20問で2択の○×問題と3択問題が混在しており、 クイズを受けたあと、採点ボタンを押すと、その場で採点ができ、 採点結果と解説が同時に見る事ができるようなプログラムを探してます。 問題全てが2択、もしくは3択などのプログラムはWebサイト上で見つけたのですが、 2択や3択が混在しているプログラムが見つからず、質問いたしました。 無料のものを使用したいのですが、どなたかご教示いただけませんでしょうか? 因みに、対応はPC環境のみで、採点結果が100点の場合→「合格者登録ページ」へ、 100点以外の場合→「再試験」へ各々リンクさせる予定です。 宜しくお願いします。

みんなの回答

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

回答がないみたいなので、さらっと書いてみました。 2択3択といわず100択でも可能です。 問題ごとに加点配分をして、合格のレベル(今回だと70点)なども 設定するとよろしいかと。 <html> <head> <script language=javascript> var obj=new Array(20); for(var i=0;i<obj.length;i++){ obj[i]=new Object; obj[i].setObj=setObj; } obj[0].setObj("1+1は何?",Array("0","2","10"),1,2); obj[1].setObj("1*1は何?",Array("0","10","1"),2,2); obj[2].setObj("1/1は何?",Array("1","2","3","5","6"),0,3); obj[3].setObj("1-1は何?",Array("0","2"),0,3); obj[4].setObj("省略:答えは0",Array("0","1"),0,5); obj[5].setObj("省略:答えは0",Array("0","1"),0,5); obj[6].setObj("省略:答えは0",Array("0","1"),0,5); obj[7].setObj("省略:答えは0",Array("0","1"),0,5); obj[8].setObj("省略:答えは0",Array("0","1"),0,5); obj[9].setObj("省略:答えは0",Array("0","1"),0,5); obj[10].setObj("省略:答えは0",Array("0","1"),0,5); obj[11].setObj("省略:答えは0",Array("0","1"),0,5); obj[12].setObj("省略:答えは0",Array("0","1"),0,5); obj[13].setObj("省略:答えは0",Array("0","1"),0,5); obj[14].setObj("省略:答えは0",Array("0","1"),0,5); obj[15].setObj("省略:答えは0",Array("0","1"),0,5); obj[16].setObj("省略:答えは0",Array("0","1"),0,5); obj[17].setObj("省略:答えは0",Array("0","1"),0,5); obj[18].setObj("省略:答えは0",Array("0","1"),0,10); obj[19].setObj("省略:答えは0",Array("0","1"),0,10); function setObj(question,answers,correct,point){ this.question=question; this.answers=answers; this.correct=correct; this.point=point; } function check(f){ var point=0; for(var i=0;i<f.length;i++){ if(f[i].type=="radio" && f[i].checked) point+=parseInt(f[i].value); } alert("あんたは"+point+"点") if(point<70) location.href="saishiken.htm"; else location.href="goukaku.htm"; } </script> </head> <body> <form> <script> for(var i=0;i<obj.length;i++){ document.write("質問"+(i+1)+":"+obj[i].question+"("+obj[i].point+"点)"+"<br>") for(var j in obj[i].answers){ document.write("<input type='radio' name='q-"+i+"' id='q-"+i+"-"+j+"' value='"+(j==obj[i].correct?obj[i].point:0)+"'><label for='q-"+i+"-"+j+"'>"+obj[i].answers[j]+"</label>") } document.write("<br>") } </script> <input type="button" value="採点" onClick="check(this.form)"> </form> </body> </html>

関連するQ&A