情報処理実習3B(Web)

2017年度 前期 木04 15:15-16:45 瀬田2-119

課題

09.form/fare.js

ソース

//梅田からの営業キロ
var stations = {
'梅田'       : 0,
'十三'       : 2.4,
'南方'       : 4.3,
'崇禅寺'     : 5.6,
'淡路'       : 6.6,
'上新庄'     : 8.7,
'相川'       : 9.6,
'正雀'       :11.8,
'摂津市'     :13.3,
'南茨木'     :15.3,
'茨木市'     :17.2,
'総持寺'     :18.6,
'富田'       :19.7,
'高槻市'     :23.0,
'上牧'       :27.3,
'水無瀬'     :28.1,
'大山崎'     :30.1,
'西山天王山' :32.6,
'長岡天神'   :34.1,
'西向日'     :36.0,
'東向日'     :37.4,
'洛西口'     :38.7,
'桂'         :40.4,
'西京極'     :42.5,
'西院'       :44.3,
'大宮'       :45.7,
'烏丸'       :48.6,
'河原町'     :47.7
};

//営業キロと運賃
var pays = {
 4 : 150,
 9 : 190,
14 : 220,
19 : 270,
26 : 280,
34 : 320,
42 : 370,
51 : 400
};


window.addEventListener('load', function() {
    document.getElementById('result').style.display ='none';
    //リセットボタンを押した後の処理
    function reset(){
         document.getElementById('result').style.display ='none';
    }
    document.getElementById('button_reset').addEventListener('click',reset,false);
},false);

//発駅、着駅から距離を計算し、運賃を求める。子どもなら半額
function fare_culc(){
    //フォームから変数を受け取る☆
    var is_adult = document.getElementById('is_adult_yes').checked;
    var start = '';
    var end = '';

    //営業キロ計算
    var distance = stations[end] - stations[start];
    if(distance < 0){
        distance = -distance;
    }
    distance = Math.floor(distance * 10+0.5) / 10;

    var payment = 0;
    //営業キロdistanceから運賃payment検索(Excelのvlookup関数のイメージ)☆
    for(var upper_limit in pays){
        if(distance < upper_limit){
            payment = pays;
            break;
        }
    }

    //子ども料金計算
    if(!is_adult){
        payment = Math.floor(payment/20 + 0.9)*10; //大人の半額ただし1の位の端数は切り上げ
    }
  
    //指定の場所に結果を出力
    var distance_output = document.getElementById("distance");
    distance_output.innerHTML = '距離:' + distance + '営業キロ';
    var payment_output = document.getElementById("payment");
    payment_output.innerHTML = '運賃:' + payment + '円';

    document.getElementById('result').style.display ='';
}