第 8 回 ことはじめ レポート課題 氏名:下妻 匡哉 学籍番号:c1101164 語学クラス:英語(6) コース(系):地域共創コース 1.筆記問題 A.CGI 変数と Hash の似ている点は、複数の選択肢の中からプレイヤーが選ん だものが取り出されるところだと思う。 B. .htaccess というファイルを作成することで、保存したものの中から.rbファ イルのみをCGIとして読みこむようになる。 *.html はHTML方式で作った自分のwebページを表示させ、*.rb はその中で入 力された値を処理して表示させる。 C. ticket.html の場合 この2つで、表示されたボタンを押すと、それぞれの結果になるように値が Ruby に送られる。 D. ticket.rb の場合 #!/usr/bin/env ruby require 'cgi' で、 CGI で ruby を動かす宣言をする。 cgi = CGI.new("html4") print("Content-type: text/html; charset=EUC-jp\n\n") で、受け取ったCGIデータをHTML文章に使うことを宣言する。 arv = cgi["arrive"] で、 Ruby に CGI でもらってきた値(arrive)を代入する。 あとは、print 文を使って表示したい文章を入力・表示する。 -------------------------------------------------------------------------------- 2.プログラム問題 A. (1)考えた設定 陸羽西線酒田 - 新庄間の乗車券を発行(陸羽西線は特急の設定がない)するプ ログラムを作成した。 (2)作成したHTML・プログラム HTML:ticket.html もしもし券売機かえるくん

logo

もしもし券売機かえるくん

プログラム:ticket.rb #!/usr/koeki/bin/ruby require 'cgi' # CGI を使う宣言 cgi = CGI.new("html4") # CGI をHTML文書に使う宣言 web = Hash.new # web をハッシュで作成する print("Content-type: text/html; charset=EUC-JP\n\n") # 日本語コードの定義 lev = cgi["leave"] # lev は cgi["leave"] というハッシュの略とする arv = cgi["arrive"] # arv は cgi["arrive"] というハッシュの略とする start = web[lev] # start は web[lev] のハッシュとする finish = web[arv] # finish は web[arv] のハッシュとする # 以下、HTML文書 print("\n") print("\n") print("きっぷ\n") print("\n") print("\n") print("

*------------------------------------------------------------*

\n") printf("

乗車券 ticket

\n") printf("

普通乗車券 %s 駅 --- %s 駅 間

\n", lev, arv) # 選択された始発駅と到着駅が表示される print("

発券から3ヶ月以内有功

\n") print("

*------------------------------------------------------------*

\n") print("\n") print("\n") (3)参考にしたプログラム 第8回でつくった ticket.html、ticket.rb をもとにした。 駅名は全て知っていたので参考プログラムは使っていない。 (4)実行結果 始発駅を余目駅、到着駅を新庄駅とすると、 pan{c110116}% ./ticket.rb [~/public_html/rubycgi] (offline mode: enter name=value pairs on standard input) leave="余目" arrive="新庄" Content-type: text/html; charset=EUC-JP きっぷ

*------------------------------------------------------------*

乗車券 ticket

普通乗車券 余目 駅 --- 新庄 駅 間

発券から3ヶ月以内有功 下車前途無効

*------------------------------------------------------------*

(5)考察 始発駅(左側:leave)が余目駅、到着駅(右側:arrive)が新庄駅となっているの で、正常に作動しているといえる。 B. 作成したロゴを貼り付けたページ http://roy/~c110116/rubycgi/ticket.html 作成したロゴのアドレス http://roy/~c110116/rubycgi/logo_r2_c110116.png C. 直接pdfファイルに繋がるアドレス http://roy/~c110116/advertise2/r2_c110116.pdf pdfファイルを貼り付けたページ ホームページ http://roy/~c110116/index.html 広告ページ http://roy/~c110116/advertise2/index.html -------------------------------------------------------------------------------- 3.感想 今回は、列車の発券システムについてのプログラムだったので、すごい乗り気 で取り組み始めた。しかし、すぐに暗礁に乗り上げてしまった。いくらやって も、授業でのプログラムを貼り付けても起動しなかったのだ。それでも、安藤 夏海君をはじめ、友達の協力もあり、なんとか完成に漕ぎ着けることができた。 オンライン上での発券システムはすごいプログラムであることに感動した。 自分の趣味でもある鉄道の知識が、駅名の点で役に立ったのはよかった。 今回も毎日日付を跨いだが、めげずにやっていきたい。 -------------------------------------------------------------------------------- 4.参考文献 基礎プログラミングII 第 8 回 ことはじめ http://roy/~madoka/2011/r2/08/r2_08_06_theme_06_firstcgi.html 「基本の CGI ホームページの作りかた」 http://roy/~madoka/2011/r2/08/r2_08_07_theme_07_actionprogram.html 「CGI スクリプトの解説」 http://roy/~madoka/2011/r2/08/r2_08_08_theme_08_ruby.html 「動作プログラム作成」 http://roy/~madoka/2011/r2/08/r2_08_09_theme_09_declare.html 「Ruby で CGI を作る宣言」 基礎プログラミングI 第 11 回 自由課題準備 / ロゴ作成 http://roy/~madoka/2011/r1/11/ 以上作者:西村 まどか http://roy/~naoya/ruby/10.html 神田 直弥 基礎プログラミングI 第 10 回 プログラムの公開 共同学習者:安藤 夏海 , 鈴木 椎菜 , 吉住 貴則 ------------------------- 東北公益文科大学 公益学部 2年 下妻 匡哉 C110116@f.koeki-u.ac.jp -------------------------