第9回 基礎プログラミング II レポート課題 氏名:木内雄 学籍番号:c1090561 語学クラス:中国語 コース(系):政策 1.筆記問題 A.ラジオボタンのしくみ type="radio" は、ラジオボタン name="ラジオボタンの名前" は、使うラジオボタンを区別するための名前 value="CGI 変数の値" は、ユーザが選ぶとこの値がプログラムに送られる input tag に checked と入れると、自動的に既定値に設定できる B.チェックボックスのしくみ type="checkbox" は、チェックボックス name="チェックボックスの名前" は、使うチェックボックスを区別するため value="CGI 変数の値" は、ユーザが選ぶとこの値がプログラムに送られる 2.プログラム問題 CGIのリンク先 http://roy/~c109056/advertise2/rubycgi/fork.html CGIの題名 カウンター 入力部分と送信結果の表示する部分↓ #!/usr/koeki/bin/ruby require 'cgi' cgi = CGI.new("html4") print("Content-type: text/html; charset=EUC-JP\n\n") arv = cgi["arrive"] list = 0 open("list.txt","r") do |read| while data = read.gets if /(\d+)/ =~ data list = $1.to_i end end end print("\n") print("\n") print("おいでませ\n") print("\n") print("\n") printf("

No. %d のお客様

\n", list) print("

庄内へようこそ

\n") print("\n") print("\n") list += 1 open("list.txt","w") do |write| write.printf("%d\n",list) end 各部の解説 ◯arv = cgi["arrive"] データをarvに代入する。 ◯open("list.txt","r") do |read| while data = read.gets if /(\d+)/ =~ data list = $1.to_i end end end openで、データを読みこみモードで開いてctに代入する。 ◯open("list.txt","w") do |write| write.printf("%d\n",list) end このopenで、データを書込みモードで開いて、ctに1を足した数を代入していく 実行結果 roy{c109056}% ./cuntter.rb [~/public_html/advertise2/rubycgi] (offline mode: enter name=value pairs on standard input) Content-type: text/html; charset=EUC-JP おいでませ

No. 8 のお客様

庄内へようこそ

roy{c109056}% ./cuntter.rb [~/public_html/advertise2/rubycgi] (offline mode: enter name=value pairs on standard input) Content-type: text/html; charset=EUC-JP おいでませ

No. 9 のお客様

庄内へようこそ

考察 ちゃんと一人一人増えているのでこのプログラムは正しい。 D.CSSできせかえが出来るプログラム プログラム本体 #!/usr/koeki/bin/ruby require'cgi' cgi = CGI.new("html4") print("Content-type: text/html; charset=ECU-jp\n\n") color = cgi["color"] print("\n") print("\n") print("色の変更\n") print("\n") print("\n") print("\n") if color == "aka" print("
\n") print("

色チェンジ!

") print("
\n") elsif color == "ao" print("
\n") print("

色チェンジ!

") print("
\n") elsif color == "midori" print("
\n") print("

色チェンジ!

") print("
\n") elsif color == "kiiro" print("
\n") print("

色チェンジ!

") print("
\n") elsif color == "orenzi" print("
\n") print("
色チェンジ!
") print("
\n") end print("\n") print("\n") HTML本体 color.html 色チェンジャー<title> <link rel="stylesheet" type="text/css"href="color.css"> </head> <body> <br> <h7>色チェンジャー</h7> <br> <form method="POST" action="./color.rb"> <p> <input type="radio" name="color" value="aka"> 赤 <input type="radio" name="color" value="ao"> 青 <input type="radio" name="color" value="kiiro"> 黄色 <input type="radio" name="color" value="orenzi"> オレンジ <input type="radio" name="color" value="midori"> 緑 <br> <input type="submit" value="OK"> <input type="reset" value="reset"> </from> </p> </body> </html> 各部の解説 color.rb ◯if color == "aka" print("<br>\n") print("<h1>色チェンジ!</h1>") print("<br>\n") もし赤を選んだらCSSのh1を選択し赤色に変える。 ◯<input type="submit" value="OK"> <input type="reset" value="reset"> OKを押すと送信結果を表示するようにし,resetを押すとリセットされるようにし た。 実行結果 pan{c109056}% ./color.rb [~/public_html/advertise2/rubycgi] (offline mode: enter name=value pairs on standard input) Content-type: text/html; charset=ECU-jp <html> <head> <title>色の変更 考察 ちゃんと色が変化したのでこのプログラムは正しい。 応援キャラクターについて 題名:gogoランプ スロット 好きには堪らないgogoランプを描いて見ました。 影をつけて立体感を出せるように頑張りました。 感想 今回のレポートでCGIについて少しずつ分かってきたような気がする。 久し振りにgimpを使ってみたが、忘れていることが多かった。だが、やってみ ると面白かった。 参考文献 第9回 CGIことえらび http://roy/~madoka/2010/r2/09/ 第8回 CGIことはじめ http://roy/~madoka/2010/r2/08/ 第12回 自由課題コンペティション / 画像作成 http://roy/~madoka/2010/r1/12/ 共同学習者 遠藤裕貴、青木千紗、横山君