第 8 回 ことはじめ レポート課題 氏名:吉田 栞 学籍番号:c1101997 語学クラス:英語クラス6 コース(系):政策マネジメントコース 1.筆記問題 A.CGI変数とHashが似ている点は、複数の選択肢があるうちからピックアップし たいものを取りだせるということだと思います。 また、CGIは選んだ項目が何かの項目と結びつきます。 項目は hash でいえば key のようなものであり、選択肢は value のような ものです。 B.htaccessで、そのディレクトリ内でのみCGIを使用することを宣言します。 *.htmlで、ウェブページ閲覧者がインターネット上で入力しやすいページを作り、 *.rbで、解答者により入力された値を処理し、その結果を反映させています。 C.
到着駅: # 使用者に入力をさせるところをタグでまとめる

# CGI変数の value の値を 「.rbファイル」に送る。 # CGI変数の value の値を 「.rbファイル」でリセットする

D.require 'cgi' ここでCGIを使用するよう要求を出し cgi = CGI.new("html4") 作成者が使いたい形式で使えるようにしています。 print("Content-type: text/html; charset=Euc-jp\n\n") sta = cgi["start"] そして、例えばこのような時は、CGIで"start"として入力されたものを プログラム上ではstaとして取り込むことを宣言しています。 2.プログラム問題 A (1)設定 酒田 - 新庄間の電車の運賃を選択した駅から検索する。 (2)プログラム ------------ ticket.rb ------------ #!/usr/koeki/bin/ruby require 'cgi' # CGIの実行を要求 cgi=CGI.new("html4") # CGIをHTML文書で使用する nakami = Hash.new def cost(sai,owa) # sai = 出発駅、owa = 到着駅 if sai > owa # 運賃をもとめる (sai-owa)/2*20 + 120 elsif owa > sai (owa-sai)/2*20 + 120 end end print("Content-type: text/html; charset=EUC-JP\n\n") # 日本語コード lev = cgi["leave"] arv = cgi["arrive"] open("ticket.dat","r") do |card| # データ ticket.datを読みこむ while line = card.gets if /(\S+)\s+(\S+)/ =~line nakami[$1] =$2.to_f #データをとりだす end end end saisho = nakami[lev] owari = nakami[arv] print("\n") # HTML文書 print("\n") print("チケット\n") print("\n") print("\n") print("

----------------------------------------

\n") printf("

快速庄内 乗車券

\n") printf("

乗車区間 : %s -- %s 間

\n",lev,arv) printf("

運賃 : %d 円

\n",cost(saisho,owari)) print("

----------------------------------------

\n") print("\n") print("\n") (3)データ ------------ ticket.dat ------------ 酒田 0.0 東酒田 3.1 砂越 6.5 北余目 9.4 余目 12.2 南野 16.0 狩川 20.2 清川 24.1 高屋 30.4 古口 38.0 津谷 42.1 羽前前波 44.6 升形 47.6 新庄 55.0 (4)HTML ------------ ticket.html ------------ オンライン券売機

オンライン発券システム