課題を再度提出させていただきます。 プログラムにドロップダウンを取り入れていなかったので、ドロップダウンを 宿泊人数選択の部分に取り入れました。そのため、[r2_cgi_best.html] と [best.rb] のプログラムにドロップダウンについてのプログラムを付け加えました。 また、選択したコース名の花の通りに色が変化する部分の表示を手直ししました。 実行結果・考察・感想文 内容を変更しました。 どうぞ宜しくお願いします。 第10回 基礎プログラミング II レポート課題 氏名:小松由里 学籍番号:c1090673 語学クラス:中国語1 コース(系):環境サイエンス 1、筆記問題 A、pstore を使った CGI の使い方 ディレクトリが全て書込み可能の状態にあるということは、設定とは違った場所 に書込みがされてしまったりと、プログラムが壊れる原因になる。 そのため、データベース専用のディレクトリ pstore を作成し、pstore の中のみ で第三者が書込みができるようにする。そして、その中に書きこまれたデータを しまうためのプログラムを作る。よって、第三者に書きこまれたデータは別のプロ グラムに保存されることになる。 2、プログラム問題 3、CGI 作品の最高傑作 掲載アドレス: http://roy/~c109067/advertise2/rubycgi/r2_cgi_best.html 掲載ホームページアドレス: http://roy.e.koeki-u.ac.jp/~c109067/ a、考えた設定 宿泊の予約をパソコンでできる宿泊施設があるように、宿泊プランをユーザーが 自由に決定でき、決定ボタンが押されると、決定されたユーザーのプランが表示 されるプログラム。 選択する料金プランは、選択した花の名前に対応して、 printf("

s%s樣のご宿泊プラン\n

",myouji ,namae)の部分と、 print("

ご意見

") の部分が、その花の色に変化するようにした。 b、作成したプログラム [r2_cgi_best.html] # html # head ******** CGI 最高傑作 ******** # title・title終わり # best.cssを使用する # head 終わり # body

:::::: 旅館やまがた屋 ご宿泊プラン :::::

# ユーザに入力させ、結果を吐く

本日は当旅館 やまがた屋 をお撰びいただき誠にありがとうございます。

ここでは、お客樣がご自由でご宿泊のプランを決定することができます。

こちらにはお客樣の個人情報をご入力ください。

# input type="radio" ラジオボタン # name="ラジオボタンの名前" ラジオボタンを区別するため名前を付ける # value="CGI 変数の値" ユーザーが選んだ値がプログラムに送られる

(1)性別: 男性 女性

(2)年齢:

(3)氏名: (氏) (名)

(4)ご住所:

(5)ご連絡先:


><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>> ご宿泊プラン内容 <<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><

[1]料金一覧(2泊3日分の料金となっております。希望するプランを撰びください。)

Sakuraコース…50.360円 Suzuranコース…46.120円 Satukiコース…41.780円 Sumireコース…39.570円


[2]ご宿泊人数

  • 人数:

  • [3]特典サービス一覧(この中からお一つお撰びください。)

    やまがた伝統工芸に参加 さくらんぼがりに参加 温泉割引チケットのプレゼント 全身マッサージ無料券のプレゼント

    # type="checkbox" チェックボックス # name="チェックボックスの名前" チェックボックスを区別するため名前を付ける # value="CGI 変数の値" ユーザーが選んだ値がプログラムに送られる

    [4]オプション(この中から複数選択することができます。)

    夜食配達 カラオケ無料 やまがた観光ミニツアー ケーキバイキング 浴衣・下駄の貸出 出発駅までの送迎

    # form 終わり

    # rows 行数を表す # cols 文字数を表す # textarea この中に文字を入れると、初期値となってCGI変数に代入される # 5 * 40 = 200 文字(半角文字の場合) # 200 / 2 =100 文字(全角文字の場合) を入力することが出来る

    [5]なにか他にご要望がありましたらご記入ください。


    # 送信 # リセット



    ホームページに戻る # body 終わり # html 終わり [best.css] body{ background: #ffff99 ; } h1{ color: #ffffff ; font-size: 2em; text-align: center; background: #339900 ; } h2{ color: #ffffff; font-size: 1.5em; text-align: center; background: #999900 ; } [best.rb] #!/usr/koeki/bin/ruby $KCODE = 'e' require 'cgi' # CGI を使用するための宣言 cgi = CGI.new("html4") # HTML で CGI を使用する print("Content-type: text/html; charest=EUC-jp\n\n") # 日本語表記にする # 受け取ったデータを使用する宣言 sei = cgi["sei"] # 性別 nenrei = cgi["nenrei"] # 年齢 myouji = cgi["myouji"] # 苗字 namae = cgi["namae"] # 名前 jyuusyo = cgi["jyuusyo"] # 住所 renraku = cgi["renraku"] # 連絡先 heya = cgi["heya"] # 宿泊プラン nin = cgi["nin"] # 人数 sabi = cgi["sabi"] # サービス op = Array.new op[0] = cgi["syoku"] # 夜食 op[1] = cgi["karaoke"] # カラオケ op[2] = cgi["tua"] # 観光ツアー op[3] = cgi["keki"] # ケーキバイキング op[4] = cgi["yukata"] # 浴衣・下駄 op[5] = cgi["sougei"] # 送迎 com = cgi["comment"] # 要望 print("\n") # best.css の使用 print("\n") # html print("\n") # head print("旅館宿泊プラン\n") # title・title 終わり print("\n") # head 終わり print("\n") # body print("

    \n") if heya == "sakura" # sakura なら print("\n") elsif heya == "suzuran" # suzuran なら print("\n") elsif heya == "satuki" # satuki なら print("\n") else heya == "sumire" # sumire なら print("\n") end # if 終わり print("

    =================== 旅館やまがた屋 宿泊プラン ====================

    \n") printf("

    [お客様情報]

    ") printf("

    性別: %s\n

    ", sei) # 性別 printf("

    年齢: %s\n

    ", nenrei) # 年齢 printf("

    氏名: (氏) %s\n (名) %s\n

    ", myouji ,namae) # 名前 printf("

    住所: %s\n

    ", jyuusyo) # 住所 printf("

    連絡先: %s\n

    ", renraku) # 連絡先 printf("

    %s%s樣のご宿泊プラン\n

    ",myouji ,namae) # 名前 printf("

    プラン: %sコース\n

    ",heya) # プラン printf("

    ご宿泊人数: %s樣\n

    ",nin) # 宿泊人数 printf("

    特典サービス: %s\n

    ",sabi) # サービス print("

    オプション一覧:

    ") print("") # table for apply in op # for printf("

    ",apply) # オプション end # for 終わり print("
    %s
    ") print("

    ご意見

    ") # 意見 printf("

    %s

    \n",com) # 書きこまれた意見を表示 print("
    ") # 空行 print("

    以上で宿泊プランは決定されました。\n

    ") print("

    *********** ご連絡は下記の住所まで宜しくお願いします ************\n

    ") print("

    当旅館 : 旅館 やまがた屋\n

    ") print("

    住所: 783-6782 やまがた県 やま市 23-78番地\n

    ") print("

    電話番号: 3849-03854-98764\n

    ") print("

    または

    ") print("

    宿泊プラン取扱代理店: るびるび旅行代理店\n

    ") print("

    住所: 789-3647 やまがた県 るび市 1-50番地\n

    ") print("

    電話番号: 2894-47463-22445\n

    ") print("

    \n") print("\n") # body 終わり print("\n") # html 終わり # print文で HTML 文章を表示させる [best2.css] body{ background: #ffff99 ; } h1{ color: #ffffff ; font-size: 2em; text-align: center; background: #339900 ; } h2{ color: #ffffff; font-size: 1.5em; text-align: center; background: #339966 ; } h4{ color: #ffffff; font-size: 1.5em; text-align: center; background: #6699cc ; } [heya1.css] h2{ color: #000000; font-size: 1.5em; text-align: center; background: #ffccff ; } [heya2.css] h2{ color: #000000; font-size: 1.5em; text-align: center; background: #99ccff ; } [heya3.css] h2{ color: #ffffff; font-size: 1.5em; text-align: center; background: #cc0066 ; } [heya4.css] h2{ color: #ffffff; font-size: 1.5em; text-align: center; background: #9933cc ; } c、もとにしたプログラム 基礎プログラミング II 第9回 CGIことえらび 講義ノート内にあるプログラム [seat.html] [service.html] [anquette.rb] 授業中で作成したプログラム [comment.html] [comment.rb] [color.html] [color.rb] を参考にした。 cgi 、name 、value 、print文を変更した。 d、実行結果 pan{c109067}% ./best.rb [~/public_html/advertise2/rubycgi] (offline mode: enter name=value pairs on standard input) Content-type: text/html; charest=EUC-jp 旅館宿泊プラン

    =================== 旅館やまがた屋 宿泊プラン ====================

    [お客様情報]

    性別:

    年齢:

    氏名: (氏) (名)

    住所:

    連絡先:

    樣のご宿泊プラン

    プラン: コース

    ご宿泊人数: 樣

    特典サービス:

    オプション一覧:

    ご意見


    以上で宿泊プランは決定されました。

    *********** ご連絡は下記の住所まで宜しくお願いします ************

    当旅館 : 旅館 やまがた屋

    住所: 783-6782 やまがた県 やま市 23-78番地

    電話番号: 3849-03854-98764

    または

    宿泊プラン取扱代理店: るびるび旅行代理店

    住所: 789-3647 やまがた県 るび市 1-50番地

    電話番号: 2894-47463-22445

    e、考察 pan{c109067}% ./best.rb [~/public_html/advertise2/rubycgi] (offline mode: enter name=value pairs on standard input) sei="女性" nenrei="20" myouji="やまがた" namae="さかた子" jyuusyo="やまがた県さかた市3-24" renraku="097-3754-4847" heya="sakura" nin="6名" sabi="さくらんぼがりに参加" op[1]="ケーキバイキング" com="宜しくお願いします 。" Content-type: text/html; charest=EUC-jp 旅館宿泊プラン

    =================== 旅館やまがた屋 宿泊プラン ====================

    [お客様情報]

    性別: 女性

    年齢: 20

    氏名: (氏) やまがた (名) さかた子

    住所: やまがた県さかた市3-24

    連絡先: 097-3754-4847

    やまがたさかた子樣のご宿泊プラン

    プラン: sakuraコース

    ご宿泊人数: 6名樣

    特典サービス: さくらんぼがりに参加

    オプション一覧:

    ご意見


    以上で宿泊プランは決定されました。

    *********** ご連絡は下記の住所まで宜しくお願いします ************

    当旅館 : 旅館 やまがた屋

    住所: 783-6782 やまがた県 やま市 23-78番地

    電話番号: 3849-03854-98764

    または

    宿泊プラン取扱代理店: るびるび旅行代理店

    住所: 789-3647 やまがた県 るび市 1-50番地

    電話番号: 2894-47463-22445

    プログラムを実行させたところ、入力した文字・数値がきちんと入力通りに表示された。 オプションと、意見の項目部分は、実行しても表示がされないようだった。何度 も実行したが、同じ結果だった。ウェブ上でもプログラムを実行してみたが、全 て表示されていたので、問題ないと思われる。 ウェブ上でも確認したところ、正しく表示されていた。また、プランによって、 表示される色がそれぞれ花の色の通りになっていた。 よって、このプログラムは正しいといえる。 f、参考文献 最後に記載 4、感想 今回のプログラム作成も苦戦した。なかなか CGI が理解できなかったが、課題 を作成していくにあたって、少しずつ理解していくことができた。 作成したプログラムでは、ユーザーが選んだ宿泊プランによって表示される色 が変化するようにプログラムを作成したが、きちんと表示されたので良かった。 プログラムを別の場所に保存してしまっていたり、chmod o+w が抜け ていたりとミスが多かったので、気を付けていきたい。 CGI で興味あるスクリプトは池田 博哉さんの作品(乗車発券システム)です。 アドレス: http://roy/~c109014/rubycgi/ticket.html 根拠: 乗車発券システムでは、料金だけでなく、距離まで求められていた。とい う点と、ドロップダウンメニューのとても良い見本だと思いました。 また、画面の表示の仕方も工夫されていて、プログラム作成の参考になりました。 5、参考文献 西村 まどか 基礎プログラミング I 第8回 電子チケットを作ろう http://roy/~madoka/2010/r1/08/ 「CSS の色見本」 http://roy/~madoka/2010/r1/08/08_12_appendix_01_safecolor.html 基礎プログラミング II 第8回 CGIことはじめ http://roy/~madoka/2010/r2/08/ 「基本の CGI ホームページの作りかた」 http://roy/~madoka/2010/r2/08/08_06_theme_05_firstcgi.html 基礎プログラミング II 第9回 CGIことえらび http://roy/~madoka/2010/r2/09/ 「ラジオボタンの作り方」 http://roy/~madoka/2010/r2/09/09_04_theme_02_radio.html 「チェックボックスの作り方」 http://roy/~madoka/2010/r2/09/09_05_theme_03_checkbox.html 「テキストフィールドの作り方」 http://roy/~madoka/2010/r2/09/09_06_theme_04_textfield.html 「テキストエリアの作り方」 http://roy/~madoka/2010/r2/09/09_07_theme_05_textarea.html 基礎プログラミング II 第10回 CGIことおぼえ http://roy/~madoka/2010/r2/10/ 「CGI で使うことのできるデータベース」 http://roy/~madoka/2010/r2/10/10_01_theme_01_pstore.html 共同学習者 久保田 瑛一郎 横山 広樹