第 8 回 ことはじめ レポート課題 氏名:小林愛実 学籍番号:c1100816 語学クラス:英語6 コース(系):政策マネジメント 1、筆記問題 A、CGIは、HTML文書内にあらかじめデータを入力し、入力後にボタンを押すとデー タが表示される。 Hashのkeyとvalueの関係がこれと同じような機能を持っていると考える。 B、.htaccessという名前のファイルを作成することで、このディレクトリ内でCGIを 利用するという宣言を行なう。 これにより、*.rb は CGI になり、利用者により入力された値を処理する。 *.htmlは、利用者が入力してもらうページを作る。 .htaccess *.rb *.htmlの3つがそろわないと機能しない。 C、ticket.htmlより
# actionで結果を表示する先を指定

# ここで.rbに選択した結果を渡す # input submitは送信ボタン # input resetはリセットボタン

D、ticket.rbより require `cgi` # CGIを使用するよう要求 cgi = CGI.new(`html4`) # HTMLの入力フォームから引き渡された値が、ハッシュ変数cgiに代入される。 print("Content-type: text/html; charset=EUC-JP\n\n") # 日本語コードの定義 arv = cgi["arrive"] # ここでRubyに CGI でもらってきた値を代入 printf("

酒田--%s間

\n",arv) # html文書として出力する 2、プログラム問題 A、オンライン発券システム a、考えた設定 出発駅と到着駅をそれぞれ選択すると出発駅と到着駅と、その間の距離が表示さ れる。 b、変更点 授業中に作成した ticket.rb を参考に作成した。 変更点は、到着駅だけでなく出発駅を選択できるようにした。 また、出発駅と到出発駅の間の距離も表示できるようにした。 c、作成したプログラム * プログラム (onrain.rb) #!/usr/bin/env ruby require 'cgi' # CGI を使う cgi = CGI.new("html4") # CGI を HTML 文書に使う print("Content-type: text/html; charset=EUC-JP\n\n") # 日本語コードの定義 sat = cgi["start"] arv = cgi["arrive"] eki = Hash.new eki["新庄駅"] = 0.0 eki["升形駅"] = 7.5 eki["羽前前波駅"] = 10.6 eki["津谷駅"] = 12.6 eki["古口駅"] = 17.0 eki["高屋駅"] = 24.8 eki["清川駅"] = 31.1 eki["狩川駅"] = 34.9 eki["南野駅"] = 38.9 eki["余目駅"] = 43.0 # ここからhtml文表示 print("\n") print("\n") print("オンライン券売機\n") print("\n") print("\n") print("

乗車券

") printf("

出発駅:%s --- 到着駅:%s

\n", sat,arv) # 選択した出発駅と到着駅を表示させる if eki[arv] > eki[sat] printf("

走行距離:%3.1f km

\n",(eki[arv]-eki[sat]).to_f) # 到着駅の距離から出発駅の距離を引く else printf("

走行距離:%3.1f km

\n",(eki[sat]-eki[arv]).to_f) # マイナスにならないようにするために、出発駅から到着駅を引く end print("発売当日限り有効 下車前途無効") print("\n") print("\n") * HTML方式 オンライン発券システム

オンライン発券システム



著作権

これらのプログラムは、東北公益文科大学2年生 小林愛実が著作権を所有してい ます。これらのプログラムの入手・実行・改変・再配布は、いずれも無料で自由に行 なうことが出来ます。ただし、このプログラムを取扱うことで生じた、いかなる 結果に対しても著作者は責任を負いません。

c1100816 小林愛実


このプログラムに対する感想・御意見がある方は c110081@e.koeki-u.ac.jp までメールを送り下さい。 d、実行結果 * 出発駅:新庄駅 --- 到着駅:余目駅の場合 乗車券 出発駅:新庄駅 --- 到着駅:余目駅 走行距離:43.0 km 発売当日限り有効 下車前途無効乗車券 ----------------------------------------------- * 出発駅:余目駅 --- 到着駅:新庄駅の場合 乗車券 出発駅:余目駅 --- 到着駅:新庄駅 走行距離:43.0 km 発売当日限り有効 下車前途無効 e、考察 実際に走行距離があっているかbc -lで調べてみた。 * 出発駅:新庄駅 --- 到着駅:余目駅の場合 panpan{KOBAYASHI Manami}% bc -l [~] 43.0-0.0 43.0 * 出発駅:余目駅 --- 到着駅:新庄駅の場合 43.0an{KOBAYASHI Manami}% bc -l [~] 43.0-0.0 43.0 よって、プログラムの実行結果とbc -lの結果が一致したため、このプログラム は正しいと言える。 また、出発駅と到着駅を反対にしても、マイナスがつかなかったため、プログラムの (eki[sat]-eki[arv]).to_f の部分も正しいと言える。 * CGIのアドレス http://roy/~c110081/rubycgi/onrain.html 掲載URL http://roy/~c110081/advertise2/ B、ロゴの作成 http://roy/~c110081/logo_r2_c110081.png C、PDF ファイル http://roy/~c110081/rubycgi/r2_c110081.pdf 3、感想 今回の課題は、初めてCGIを使ったということでなかなか理解することができず、 作成するのが大変だった。 オンライン発券システムは、値段を入れるなどまだまだ改良の余地があると思う ので、これから改良していきたい。 4、参考文献 西村まどか 基礎プログラミングII 「ことはじめ」 http://roy/~madoka/2011/r2/08/ 神田直弥 基礎プログラミングII CGI[1] http://roy/~naoya/cgi-bin/9.html 東北公益文化大学 公益学部 公益学科 2年 小林愛実 c110081f.koeki-u.ac.jp