#!/usr/koeki/bin/ruby $KCODE = 'e' stop = Array.new dist = Array.new i = 0 open("rikuusaisen.dat","r") do |f| while line = f.gets if /(\S+)\s+(\d+\.\d+)/ =~ line stop[i] = $1 dist[i] = $2.to_f i += 1 end end end k = 0 printf("駅候補\n") while k < stop.length printf("%d: %-10s\t%4.1f\n", k+1, stop[k], dist[k]) k += 1 end print("駅番号を選んで下さい\n") print("出発駅: ") dept_n = gets.chomp.to_i print("到着駅: ") arvl_n = gets.chomp.to_i distance = dist[dept_n] - dist[arvl_n] if distance < 0 distance = -1 * distance end p0 = 120 grid = (distance + 0.5).to_i # 四捨五入 printf("料金: %d 円\n", p0 + grid * 20) # 初乗り料金とキロ数あたりの料金の和 open("ticket.txt","w") do |ticket| ticket.printf("%s -- %s \n走行距離: %4.1f [km]\n", stop[dept_n], stop[arvl_n], distance) ticket.printf("料金: %d 円\n", p0 + grid * 20) end print("発券終了\n") # 印刷されたかの確認を標準出力