第 10 回 ことおぼえ レポート課題 氏名: 本間 紘司 学籍番号: C1101796 語学クラス: 中国語 コース(系): 社会福士 1.筆記問題 A.そもそも pstore とはデータベース専用の directory を作り、その中だけ第三者 も書き込み可能にする。これによって、侵入者、プログラムのミスでデータを破 壊するのを防いでくれる。 では、その CGI においてその働きをするプログラムは以下の通り require 'pstore' #うけとったデータをためる宣言 db = PStore.new("~.db") #データベースの作成 この2つがあって、pstore を使う宣言、また管理者、第3者が書き込み可能とな る。 -------------------------------------------------------------------------------- 2.プログラム問題 i.考えた設定 公益大学の食堂のメニューと売店のメニューの金額をラジオボタンを使って、表 示させるプログラムを作った。 ii.作成したプログラム (gakusyoku.html) 学食/売店メニュー

~ 学食/売店メニュー ~


食堂と売店のメニューを忘れてお金が足りないあなたに朗報!

ぜひこのプログラムで思い出して、日頃の昼食の計算に役立てて下さい!


スパゲッティ
カレー
ラーメン
日替わり定食
ソフトクリーム
カツカレー
菓子パン
ガム
ノート
ジュース


(gakusyoku.rb) #!/usr/koeki/bin/ruby require 'cgi' #cgi を使う宣言 cgi = CGI.new("html4") #cgi を HTML 文書に使う print("Content-type: text/html; charset=EUC-jp\n\n") #日本語コードの定義 food = cgi["food"] print("\n") print("\n") print("値段\n") print("") print("\n") print("\n") print("
\n") print("

会計

\n") if food == "スパゲッティ" #スパゲッティを選んだ時 printf("

金額は 250 円です

\n") #←が表示 printf("

アンがトロッとしてておいしいですよね!

\n") elsif food == "カレー" #カレーを選んだ時 printf("

金額は 350 円です

\n") #←が表示 printf("

具菜が多く煮込んであって、ボリュームがあってお得!

\n") elsif food == "ラーメン" #以下繰り返し printf("

金額は 350 円です

\n") printf("

味噌ラーメンも見のがせないです!!

\n") elsif food == "日替わり定食" printf("

金額は 250 円です

\n") printf("

驚きの安さ!! 御飯は別売りですよー

\n") elsif food == "ソフトクリーム" printf("

金額は 100 円です

\n") printf("

食わなきゃ損です!

\n") elsif food == "カツカレー" printf("

金額は 450 円です

\n") printf("

いつもより懐があたたかいあなたに

\n") elsif food == "菓子パン" printf("

金額は 100 円です

\n") printf("

値段の割りには食べごたえあっていいですね!

\n") elsif food == "ガム" printf("

金額は 100 円です

\n") printf("

口のなかもリフレッシュ!

\n") elsif food == "ノート" printf("

金額は 140 円です

\n") printf("

食べ物じゃないけど講義中のおとも

\n") elsif food == "ジュース" printf("

金額は 140 円です

\n") printf("

種類が豊富です!

\n") else printf("

何か選んで下さい

\n") end print("\n") print("\n") iii.元にしたプログラム なし vi.プログラムの実行結果 ~1回目~ pan{c110179}% ./gakusyoku.rb [~/public_html/advertise2/rubycgi] (offline mode: enter name=value pairs on standard input) food="スパゲッティ" Content-type: text/html; charset=EUC-jp 値段

会計

金額は 250 円です

アンがトロッとしてておいしいですよね!

スパゲッティ

pan{c110179}% ./gakusyoku.rb [~/public_html/advertise2/rubycgi] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~2回目~ pan{c110179}% ./gakusyoku.rb [~/public_html/advertise2/rubycgi] (offline mode: enter name=value pairs on standard input) food="カレー" Content-type: text/html; charset=EUC-jp 値段

会計

金額は 350 円です

具菜が多く煮込んであって、ボリュームがあってお得!

pan{c110179}% [~/public_html/advertise2/rubycgi] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~正しく入力しない場合~ pan{c110179}% ./gakusyoku.rb [~/public_html/advertise2/rubycgi] (offline mode: enter name=value pairs on standard input) food ="スパゲッティ" Content-type: text/html; charset=EUC-jp 値段

会計

何か選んで下さい

pan{c110179}% ./gakusyoku.rb [~/public_html/advertise2/rubycgi] 以上から表示を間違えるとプログラムが実行されない。また、正しい表示でプログラムが実行される為成功と言える。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ v.考察 ~反省点~ ・前回、前々回よりひどいミスをやってしまった。基本である最初の1行を間違えていた ・最初はチェックボックスを使った複数の計算の予定だったが、どうしてもでき ずあきらめてしまった。 ・前回の講義を散慢に聞いていたせいか、重要な ~.rb の仕組をページを見ても 分からなくなっていた。 ・作ったあげくこんな中途半端なプログラムをつくってしまった。 -------------------------------------------------------------------------------- 3.感想 とにかくひどいプログラムを作ってしまった印象だ。最初のチェックボックスも ~.html まではできたのに ~.rb が作れなくなっていた。D評価もらっても仕方な い出来だと思う。それでもよかったのは HP の更新をできたところだ。 一応ボーナスの為、送りますが後で再提出したいと思います。 参考文献 基礎プログラミングII 第 9 回 ことえらび 「ラジオボタンの作り方」 リンク プログラムのページ http://roy.e.koeki-u.ac.jp/~c110179/advertise2/rubycgi/r2_cgi_best.html 間接的に載せているページ http://roy.e.koeki-u.ac.jp/~c110179/advertise2/index.html