Как исправить неопределенные переменные после запуска программы - PullRequest
1 голос
/ 31 марта 2019

Программа запросит все входные данные и напечатает все, кроме переменных, которые отображаются как неопределенные.

Это для веб-приложения, привязанного к документу HTML.При запуске не выдается никаких ошибок.

function driver(){
    var plan1Code = "S";
    var plan1Cost = 450;
    var plan1Hours = 2.5;
    var plan1Pics = 75;

    var plan2Code = "G";
    var plan2Cost = 750;
    var plan2Hours = 5;
    var plan2Pics = 125;

    var plan3Code = "P";
    var plan3Cost = 1000;
    var plan3Hours = 8;
    var plan3Pics = 225;

    var retName = getName();
    var retPlan = getPlan();
    var retHours = getHours();
    var retPics = getPics();

    var baseCost, totalCost, upchargeTime, upchargeTimeCost, upchargePics, upchargePicsCost;

    if (retPlan == plan1Code){
        baseCost = plan1Cost;
        upchargeTime, upchargeTimeCost = calcTimeUpcharge(retHours, plan1Hours);
        upchargePics, upchargePicsCost = calcPicsUpcharge(retPics, plan1Pics);
    }
    else if (retPlan == plan2Code){
        baseCost = plan2Cost;
        upchargeTime, upchargeTimeCost = calcTimeUpcharge(retHours, plan2Hours);
        upchargePics, upchargePicsCost = calcPicsUpcharge(retPics, plan2Pics);
    }
    else if (retPlan == plan3Code){
        baseCost = plan3Cost;
        upchargeTime, upchargeTimeCost = calcTimeUpcharge(retHours, plan3Hours);
        upchargePics, upchargePicsCost = calcPicsUpcharge(retPics, plan3Pics);
    }

    totalCost = calcTotalCost(baseCost, upchargeTimeCost, upchargePicsCost);
    print(retName, retPlan, baseCost, upchargeTime, upchargeTimeCost, upchargePics, upchargePicsCost, totalCost);

}

function getName(){
    var text;
    var name = prompt("Enter your name");
    if (name == null) {
        text = "Please enter a valid name";
    }
}

function getPlan(plan){
    var plan = prompt("Enter the selected package");
}

function getHours(hours){
    var hours = prompt("Enter anticipated coverage hours");
}

function getPics(pics){
    var pics = prompt("Enter anticipated number of pictures");
}

function calcTimeUpcharge(hours, baseHours){
    upchargeTime = hours - baseHours;
    var price;
    if (upchargeTime>0){
        var upchargeTimeUnits = Math.ceil((upchargeTime)/.5);
        upchargeTimeCost = upchargeTimeUnits * 50;
    }
    else {
        upchargeTime = 0;
        upchargeTimeCost = 0;
    }
    return upchargeTime, upchargeTimeCost;

}

function calcPicsUpcharge(pics, basePics){
    upchargePics = pics - basePics;
    if (upchargePics>0){
        upchargePicsunits = Math.ceil((upchargePics)/10);
        upchargePicsCost = upchargePicsunits*40;
    }
    else {
        upchargePics = 0;
        upchargePicsunits = 0;
    }
    return upchargePics, upchargePicsCost;
}

function calcTotalCost(baseCost, timeCost, picsCost){
    return baseCost + timeCost + picsCost;
}

function print(retName, retPlan, baseCost, upchargeTime, upchargeTimeCost, upchargePics, upchargePicsCost, totalCost){
    document.write(retName + ", thanks for using Photosarus!" + "\n");
    document.write("<br><br>");
    document.write("You selected plan " + retPlan + " at a cost of "+ baseCost );
    document.write("<br><br>");
    document.write(upchargeTime + "additional hours at a cost of "+ upchargeTimeCost);
    document.write("<br><br>");
    document.write(upchargePics + "additional pictures at a cost of "+ upchargePicsCost);
}

Я ожидаю, что вывод скажет

Билл, спасибо за использование Photosarus!

Вы выбрали план S по цене 450

0 дополнительных часов при стоимости 0

0 дополнительных фотографий по цене 0

Новместо этого я получаю

undefined, спасибо за использование Photosarus!

Вы выбрали план undefined по стоимости undefined

undefined дополнительные часы по стоимости undefined

undefined дополнительные фотографии по цене undefined

1 Ответ

2 голосов
/ 31 марта 2019

Вам нужно return значения из функций:

function getName(){
    var text;
    var name = prompt("Enter your name");
    if (name == null) {
        text = "Please enter a valid name";
    }
    return name;
}

function getPlan(plan){
    var plan = prompt("Enter the selected package");
    return plan;
}

function getHours(hours){
    var hours = prompt("Enter anticipated coverage hours");
    return hours;
}

function getPics(pics){
    var pics = prompt("Enter anticipated number of pictures");
    return pics;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...