第 10 回 ことおぼえ レポート課題 氏名:森桂太 学籍番号:c110190 語学クラス:中国語 コース(系):社会福祉コース 1 筆記問題 a. pstore を使った CGI の使い方について、前々回、前回を参考に、ファイ ル名などを使いながら自分の言葉で解説せよ。 ・pstoreを使って PStore.new("データベースファイル名.db") とデータを受け 取り部外者に書き込ませる。簡単にいうと、第三者に書き込まれたり、作り替 えられても良いデータを作ること。 2 プログラム問題 3 CGI 作品の最高傑作を作る。ラジオボタンやドロップダウンメニューを 2 つ 以上組み合わせたもの。公益性のあるソフトウェア。 学生作品例 ・作成したCGI 選択肢で表示する画像を変える「ゆるキャラ相談室」 http://roy/~c108203/advertise2/rubycgi/r2_cgi_best.html ホームページ http://roy/~c108203/advertise2/rubycgi/soudan.html 4.作成したプログラム ==r2_cgi_best.html== ゆるキャラ達悩み相談 #rojou.cssを使う。

ゆるキャラ相談室へようこそ

# rojou.rbでデータを処理

お名前は?(10字以内):
# 名前入力 性別は?:
男です
女です
# ラジオボタンで性別を選択。Male Or Female で mof とした。 どんなことで悩んでる?:

# ドロップダウンで選択。 #r2_cgi_best.rbに送信
#全て元に戻す。

==r2_cgi_best.rb== #!/usr/koeki/bin/ruby require 'cgi' #cgi使用宣言 cgi = CGI.new("html4") #html4で print("Content-type: text/html; charset=EUC-jp\n\n") namae = cgi["name"] mf = cgi["mof"] nayami = cgi["problem"] # 貰ってくる値。 print("\n") print("\n") print("ゆるキャラ達のプチ悩み相談\n") print("") print("\n") print("\n") print("

") if nayami == "悩みはない" # ドロップダウンで「悩みはない」が選択されたら print("ふーん、\n") if mf == "man" # ラジオボタンで「男性」が選択されたら print("お兄さん、悩みないんですか
\n") printf("そんな %s お兄さんにアドバイス!",namae) #入力された名前を表示 else # ラジオボタンで「女性」が選択されたら print("お姉さん、悩みないんですか
\n") printf("そんな %s お姉さんにアドバイス!",namae) #入力された名前を表示 end print("

") #end の下に print("

")を書くことで pngデー タを共通の結果表示として出す。 男女個別の表示にしたい場合else、end の上に print png データを載せてやる。 #以下if文構造も同文。 elsif nayami == "体調不良" print("ふーん、\n") if mf == "man" print("なるほどね。お兄さん体調が悪いんだ
\n") printf("そんな %s お兄さんにアドバイス!",namae) else print("なるほどね、お姉さん体調が悪いんだ
\n") printf("そんな %s お姉さんにアドバイス!",namae) end print("

") elsif nayami == "人間関係" print("ふーん、\n") if mf == "man" print("そっかぁ。お兄さん、人間関係で悩んでるのか
\n") printf("そんな %s お兄さんにアドバイス!",namae) else print("そっかぁ。お姉さん、人間関係で悩んでいるのか
\n") printf("そんな %s お姉さんにアドバイス!",namae) end print("

") elsif nayami == "挫折寸前" print("あらら、\n") if mf == "man" print("お兄さん、挫折しちゃいそうなの?
\n") printf("そんな %s お兄さんにアドバイス!",namae) else print("お姉さん、挫折しちゃいそうなの?
\n") printf("そんな %s お姉さんにアドバイス!",namae) end print("

") elsif nayami == "金銭的・経済的" print("ふーん、\n") if mf == "man" print("なるほど。お兄さん金銭面で悩んでるんだ
\n") printf("そんな %s お兄さんにアドバイス!",namae) else print("なるほど、お姉さん金銭面で悩んでるんだ
\n") printf("そんな %s お姉さんにアドバイス!",namae) end print("

") elsif nayami == "学校の事" print("ふーん、\n") if mf == "man" print("なるほどね。お兄さん学校の事で悩んでるんだ
\n") printf("そんな %s お兄さんにアドバイス!",namae) else print("なるほどね、お姉さん学校の事で悩んでるんだ
\n") printf("そんな %s お姉さんにアドバイス!",namae) end print("

") end print("

\n") print("\n") #本体終了。 print("\n") #html文終了。 5.プログラム説明 プログラム横に表記。 6.基にしたプログラムからの変更点 ・elsif nayami 項目を増やした。 ・ドロップダウンの選択肢を増やした。 7.実行結果 pan{c110190}% ./r2_cgi_best.rb [~/public_html/advertise2/rubycgi] (offline mode: enter name=value pairs on standard input) Content-type: text/html; charset=EUC-jp ゆるキャラ達のプチ悩み相談

8.考察 プログラムの起動、ホームページでの表示、どちらともスムーズに出来た。 また、エラーなども確認したがでなかった。 9.感想 今回、先輩のページからかなりヒントをいただきながら作成しました。 途中エラーばかりで進まなくなったこともありましたが、友達に手助け してもらい完成できました。ご指摘よろしくお願いします。 10.参考文献 先輩ページ http://roy/~madoka/2010/r2/10/rpt/c108203.txt 西村先生講義ページ http://roy/~madoka/2011/r2/10/r2_10_02_theme_02_program.html http://roy/~madoka/2011/r2/10/r2_10_04_theme_03_comment.html http://roy/~madoka/2011/r2/10/r2_10_05_theme_04_input.html http://roy/~madoka/2011/r2/10/r2_10_06_theme_05_transaction.html http://roy/~madoka/2011/r2/10/r2_10_07_theme_06_count.html