課題を再度提出させていただきます。
プログラムにドロップダウンを取り入れていなかったので、ドロップダウンを
宿泊人数選択の部分に取り入れました。そのため、[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
:::::: 旅館やまがた屋 ご宿泊プラン :::::
# 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("%s |
",apply) # オプション
end # for 終わり
print("
")
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
共同学習者
久保田 瑛一郎
横山 広樹