第 8 回 ことはじめ レポート課題 氏名:樋口貴士 学籍番号:C1101715 語学クラス:中国語3 コース(系):地域共創コース 1.筆記問題 A. CGI.new や Hash.new のように新しく作って 様々な選択肢の中から、私達が何らかの項目を選び その選んだものが結果に結びつくことが似ていると感じた。 B. .htaccess は .rb と付いたプログラムを CGI として扱うことができる。 .html によって選択肢を表示することができ、その結果を .rb で表示すること ができる。 C.
# action は入力データの引渡し先。

#入力データに選択した結果を渡す。 #submit : 送信させる 。 #選択したものを reset : リセットさせる。

D. require "cgi" # CGI を使う。 cgi = CGI.new("html4") # CGI を HTML 文書に使う。 print("Content-type: text/html; charset=EUC-jp\n\n") # 日本語コードの定義。 lav = cgi["leave"] # CGI では leave と入力したものをプログラムでは lav # として取り組む。 2.プログラム問題 A. a.考えた設定 新庄駅から余目駅まで、自らが範囲を選択して 料金を計算するプログラムを作成した。 b.作成したプログラム #!/usr/bin/env ruby $KCODE ="e" # 日本語の文字コード。 require "cgi" # CGI を使う。 cgi = CGI.new("html4") # CGI を HTML 文書に使う。 print("Content-type: text/html; charset=EUC-JP\n\n") # 日本語コードの定義。 #Ruby に CGI でもらってきた値を代入。 lav = cgi["leave"] # CGI での leave は lav 。 arv = cgi["arrive"] # CGI での arrive は arv 。 tim = cgi["time"] # CGI での time は tim 。 #p arv kyori = Hash.new open("rikuusaisen.dat", "r") do |eki| #ファイルを開く。 読み込み専用なので r。 while place = eki.gets if /(\S+)\s+(\d+\.\d)/ =~ place #もし、この正規表現の場合は kyori[$1] = $2.to_f #データの2番目を数値と置き、 kyori[$1]にする。 end end end start = kyori[lav] # start には出発駅の距離が代入される。 goal = kyori[arv] # goal には到着駅の距離が代入される。 distance = start - goal #出発駅の距離から到着駅の距離を引く。 if distance < 0 #もし距離の差がマイナスの場合は distance *= -1 # -1をかけてプラスにする end # if の終わり。 p0 = 120 #初乗り料金は120円とする。 grid = (distance + 0.5).to_i #四捨五入する。 total = p0 + grid * 20 #初乗り120円 +距離の差 * 20円の計算式。 print("\n") #以降は html で表示される。 print("\n") print("陸羽西線 発券結果\n") print("\n") print("\n") print("

陸羽西線 乗車券

") print("

\n") print("出発駅・・到着駅") print("
") printf("%s・・%s間\n", lav, arv) printf("%d円\n", total) print("

\n") print("発売当日限り有効となっております。 途中下車はできないのでご注意を。") print("\n") print("\n") c.もとにしたプログラム 授業で作成したticket.rbとticket.htmlを変更し rikuusaisen.datのプログラムを読み込ませた。 d.実行結果 ◎新庄駅から余目駅に行った場合。 陸羽西線 乗車券 出発駅・・到着駅 新庄駅・・余目駅間 980円 発売当日限り有効となっております。 途中下車はできないのでご注意を。 ◎古口駅から余目駅に行った場合。 出発駅・・到着駅 古口駅・・余目駅間 640円 e.考察 ◎新庄駅から余目駅に行った場合。 pan{HIGUCHI Takashi}% bc -l 120+(43-0)*20 980 ◎古口駅から余目駅に行った場合。 pan{HIGUCHI Takashi}% bc -l 120+(43-17)*20 640 以上のように計算の答えが正しいのでこのプログラムは正しいといえる。 B. 自分のホームページに貼り付けた。 http://roy/~c110171/ ロゴを掲載したアドレスは http://roy/~c110171/logo_r2_c110171.png C. pdf ファイルに直接飛ぶアドレス http://roy/~c110171/advertise2/r2_c110171.pdf pdf ファイルが張り付けてあるページのアドレス トップページ http://roy/~c110171/index.html 広告ページ http://roy/~c110171/advertise2/index.html 3.感想 今回はいつものプログラムと違い、CGIを使って 私達の生活の中でもこのようなCGIが生活を支えているのだと 実感した。 このようなプログラムは作成するのは大変だったが ホームページ上で実行するので見映えがあって楽しかった。 4.参考文献 著者 西村まどか 基礎プログラミングI 第 11回 自由課題準備/ロゴ作成 http://roy/~madoka/2011/r1/11/ 基礎プログラミングII 第 8回 ことはじめ http://roy/~madoka/2011/r2/08/