氏名: 兵藤 理沙 学籍番号: c1101721 語学クラス: 英語 6 コース: 政策マネジメント 第 8 回 ことはじめ のレポート課題を再提出します。 1、筆記問題 A、 CGIのnameがhashのkeyのような働きをして、CGIのoptionがhashのvalueのような 働きをしている。 B、 .htaccessという名前のファイルを作成し、このディレクトリの中の*.rbで終わ るファイルはCGIスクリプトと認識されるようにする。 *.htmlは表示させプログラムファイルにデータを送る。 *.rbはデータをhtmlにする C、 のOKを押すと*.rbへ送信する。 D、 for = cgi["start"] arv = cgi["arrove"] .htmlから送信されたデータを代入する。 2、プログラム問題 A、 (1)考えた設定 酒田駅から鶴岡駅までの料金と走行距離を表示するプログラム (2)作成したプログラム ticket.html========================================== #!/usr/bin/env ruby $KCODE = 'e' # 日本語の文字コード require 'cgi' # cgiを使う cgi = CGI.new('html4') # 受け取ったデータをhtmlで使う print("Content-type: text/html; charset=EUC-jp\n\n") # 日本語コードの定義 lav = cgi["leave"] # ユーザが選んだものを受け取る arv = cgi["arrive"] # ユーザが選んだものを受け取る data = Hash.new # 新しいHashをつくる open("ticket.dat","r") do |station| # ticket.datを使う while line = station.gets # 指定したファイルを読み込み、lineに代入する if/(\S+)\s+(\S+)/=~ line # ticket.datの中が \S(空白以外)と \s(空白)と \S(空白以外)の時受け取る data[$1] = $2.to_i end end end hajime = data[lav] # dataからlavを取り出し、hajimeに出発駅が入る oriru = data[arv] # dataからarvを取り出し、oriruに降りる駅が入る def ryokin(h,o) # 出発駅から降りる駅までの料金を求める if h > o # 出発駅の距離の方が長い時 120 + (h - o) / 2 * 20 elsif h < o # 降りる駅の距離の方が長い時 120 + (o - h) / 2 * 20 end end def kyori(ha,ow) # 出発駅から降りる駅までの距離を求める if ha > ow # 出発駅の距離の方が長い時 ha - ow elsif ha < ow # 降りる駅の距離の方が長い時 ow - ha end end print("\n") print("
\n") print("\t\t出発駅:%s -- 到着駅:%s
\n", lav, arv) # ユーザが選んだものを表示する printf("\t料金: %d [円]
\n", ryokin(hajime,oriru)) # def ryokinの計算式の答えを表示させる printf("\t走行距離: %d [km]
\n", kyori(hajime,oriru)) # def kyoriの計算式の答えを表示させる print("
\n") print("ご利用ありがとうございました。
\n") print("\n") print("\n") print("\n") ===================================================== ticket.html==========================================