Tips -> Script |
|
Scr.001 試験問題自動作成CGI |
ここで紹介するスクリプトは、"-----...."で区切られたテキスト(問題集)を、練習問題化するCGI(Perl)です。サンプルを用意しました。こちらからどうぞ。
秋の情報処理試験(テクニカルエンジニア「ネットワーク」)を受けようと思いまして、WWWをうろうろしていたところ、KIKIさんの「KIKIの情報処理試験の部屋」というWebページに出会いました。ここには、過去問が纏まって置いてあり、しかも、解答や解説へのリンクまで整理されています。(これなら午前中の問題集はいらないだろうと、午後の問題集だけ買ってしまいました...大丈夫だろうか??)
さっそく、ネットワークスペシャリストのTEXT形式の問題集を入手し勉強を開始したのですが、「うーん。出来れば4択のクイズ形式になってるとうれしいなぁ」などと我が儘な思いにかられ、フリーウェアを探しはじめたのでした。しかし、どうもピッタリくるものがありません。
「じゃぁ適当に作るかぁ...」と作り始めたのがここで紹介するスクリプトです。スクリプトの内容を見ていただけると思いますが、私はPerlやCGIについては素人です。あまりスマートなロジックにはなっていませんが、徐々に勉強して修正して行きたいと思いますのでご了承下さい。
なお、事前にこのようなスクリプトを公開してよいかKIKIさんに打診したところ快く承諾下さいました。この場を借りてお礼申し上げます。本当にありがとうございました(多謝)。
KIKIさんのWebページで入手できるTEXT形式の問題集は、下記のように"-----.....----"で問題が区切られています。当スクリプトではこの問題形式を入力とし、練習形式/テスト形式の2種類の出題形式に変換するようになっています。動作サンプルを用意しましたのでこちらから参照してください。
問題集の見出し ---------------------- 問題見出し 問題 ---------------------- 問題見出し 問題 ... ... ... ※実際には、この形式になっていない部分が若干ありましたので、手で修正して使用しています。 |
まず、スクリプトと問題集を入手してください。スクリプトは下記のリンクから入手可能です。問題集は、KIKIさんのWebページから入手願います。
※スクリプトは、自由に使って頂いて結構ですが、当スクリプトによって起こったいかなる問題についても、当方で責任をもつものではありません。全て自己責任においてご利用下さい。
cgi-bin\ (cgiを置くディレクトリ) | +→ syutudai.cgi (syutudai.txtから拡張子を変更する) +→ config (環境設定用ファイル) +→ text\ (問題/解答ファイル格納ディレクトリ) | +→mondai01.txt (問題ファイル) +→mondai02.txt +→mondai03.txt +→kaitou01.txt (解答ファイル) +→kaitou02.txt +→kaitou03.txt
syutudai.cgi | 上記で入手したsyutudai.txtを拡張子を変更し、syutudai.cgiにします。 また1行目と9行目を環境に合わせて修正してください。 1 #!/usr/local/bin/perl ← perlのパス ... 8 # 環境設定 9 $syutudai_cgi = "cgi-bin/syutudai.cgi"; ← syutudai.cgiの格納場所 10 $cfg_file = "config"; 11 @sentakusi = ("", "ア", "イ", "ウ", "エ", "オ"); |
config | 環境に合わせて下記の通り作成してください。 <パラメタ形式> 通番,出題トップページ,問題ファイル名,解答ファイル名 ... <設定例> 1,/~tomo/siken.html,text/mondai01.txt,test/kaitou01.txt 2,/~tomo/siken.html,text/mondai02.txt,test/kaitou02.txt 3,/~tomo/siken.html,text/mondai03.txt,test/kaitou03.txt |
text\ | 問題ファイル/解答ファイルを格納するディレクトリを作成します。 |
問題ファイル | TEXT形式の問題集。configの記述と同じファイル名で格納します。問題の内容は、上述した「スクリプトの入力となる問題形式」を前提としていますので、若干の修正が必要かもしれません。("----"と問題見出しの間に空行があるパターンが見受けられました、その場合空行を削除してください) |
解答ファイル | 問題集の解答を羅列したファイル。 1行に解答を羅列して記述します。例えば、問1の解答がア、問2がイ、問3がアとした場合、「アイア」と記述したテキストファイルを作成します。 |
syutudai.cgiの呼びだしには、下記の通りパラメタの指定が必要です。(サンプルのソースも参考にしてください)
<a href="cgi-bin/syutudai.cgi?cfg=1&type=1&no=1>
「cfg=」には、configファイル上の該当する通番を指定します。「type=」は、1を指定すると練習問題形式となり、2を指定するとテスト形式となります。「no=」には開始問題番号を指定します。
Webサーバがなくても、w3m(テキスト型のブラウザ)のLocal-CGI機能を使うことで、当スクリプトを起動することが可能です。(TeraTerm越しにw3mを使ってみるとこんな感じになります)
詳しい設定方法は、後日アップしようと思いますので、少々お待ち下さい。