第 8 回 ことはじめ レポート課題 氏名:佐藤 汰紀 学籍番号:C1101046 語学クラス:英語2 コース(系):環境サイエンスコース 1、筆記問題 A、CGI変数とHashは、使用者に入力を促すところや、あらかじめ作っておいたデー タから値を持って来るところ、プログラムの面では〜.newなど新しく作るところ、 が似ていると思った。 B、.htaccessの中に.htmlや.rbを作ることによってはじめてひとつのプログラム として機能する。.htmlが選択肢を、.rbが結果を表示する機能をそれぞれ担って いる。 C、講義で使用したプログラムticket.htmlで見てみると この部分でメニューを作成して これでボタンを押すように指示して、押した値が送られ表示されるものである。 D、ticket.htmlで見てみると require 'cgi' この表示でCGIを使用することを示し、 cgi = CGI.new('html4') print("Content-type: text/html; charset=EUC-jp\n\n") この文章により入力されたデータを使うことを示す。 2、プログラム問題 A、ticket.html オンライン券売機

陸羽西線 チケット購入ページ

著作権

このプログラムの著作権は© c110104の 佐藤汰紀にあります。

御用の方は、下記のアドレスへよろしくおねがいします。
c1110104@e.koeki-u.ac.jp


ticket.rb #!/usr/bin/env ruby $KCODE = 'e' require 'cgi' # cgi を使う宣言 cgi = CGI.new("html4") print("Content-type: text/html; charset=EUC-jp\n\n") lav = cgi["leave"] #メニューで選択したものが入る arv = cgi["arrive"] nagasa = Hash.new open("rikuusaisen.dat", "r") do |eki| # rikuusaisen.dat を読みこませる while basyo = eki.gets if /(\S+)\s+(\d+\.\d)/ =~ basyo #もしも文字列や空白を含む場合は nagasa[$1] = $2.to_f #to_fを使い数字として読みこませる。 end end end hajime = nagasa[lav] oriru = nagasa[arv] goukei = hajime - oriru if goukei < 0 goukei *= -1 end p0 = 120 #初乗り料金 grid = (goukei).to_i total = p0 + grid * 20 #初乗り料金に距離の差と20を掛けたものを足して料金の計算 print("\n") 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") 今回のプログラムはticket.html、ticket.rbを改良した物に、rikuusaisen.dat ファイルを読みこませて作った。 両方の駅を指定できるようにして、その駅の料金を表示させた。 require 'cgi'で使う宣言をした後にnagasa = Hash.new を入れて選択できるよ うにし、open("rikuusaisen.dat", "r") do |eki|でdatファイルからの読み込み を行い、goukei = hajime - oriru で出発から到着までの料金を表示させた。 その際、goukei *= -1を入れることで料金がマイナスになることや多くなること を防いだ。 結果 津谷駅から余目駅のチケット 陸羽西線 チケット

陸羽西線 乗車券

出発駅・到着駅
津谷駅 -- 余目駅間 720円

発券当日限り有効です 途中下車出来ません B、作ったロゴを張りつけてあるページ http://roy/~c110104/index.html ロゴのページアドレス http://roy/~c110104/logo_r2_c110104.png C、 pdfファイルの直接のページ http://roy/~c110104/advertise2/r2_c110104.pdf pdfファイルが張りつけてあるページのアドレス http://roy/~c110104/index.html 広告ページ http://roy/~c110104/advertise2/ 感想 とりあえず完成した。始発から到着駅までの料金計算が難しくて最初はよくわか らなかったが、やっているうちに、こういう意味だったのかと理解できるように なった。 CGIの選択ボタンの大きさ変更がどうしてもわからなかったので、教えてもらい たい。 また、先輩のページのソースを見ると、bgcolorを使用しないで色を付けていた が、そのやり方も知りたいと思った。 参考文献 神田直弥 基礎プログラミングI 第10回 http://roy/~naoya/ruby/10.html 基礎プログラミング II 第 8 回 「ことはじめ」 http://roy/~madoka/2011/r2/08/