Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么我的输出中没有定义类型?_Javascript_Function_While Loop_Undefined - Fatal编程技术网

Javascript 为什么我的输出中没有定义类型?

Javascript 为什么我的输出中没有定义类型?,javascript,function,while-loop,undefined,Javascript,Function,While Loop,Undefined,在运行代码后,我在TYPE列下没有定义。我看了看我的功能,它们对我来说似乎很好。“类型”列应为“儿童”、“少年”或“成人”。您可以在提示中输入10,说明售出了多少张票,费用是多少 <script type="text/javascript"> var BR = "<br />"; var JUNIOR_PRICE = 7.50; var ADULT_PRICE = 11.50; function main()

在运行代码后,我在TYPE列下没有定义。我看了看我的功能,它们对我来说似乎很好。“类型”列应为“儿童”、“少年”或“成人”。您可以在提示中输入10,说明售出了多少张票,费用是多少

    <script type="text/javascript">     
    var BR = "<br />";
    var JUNIOR_PRICE = 7.50;
    var ADULT_PRICE = 11.50;

        function main()
        {
            var ticketType;
            var quantity = 0;
            var charge = 0.00;
            var ticketName;
            var currentDate = "";
            var cAccum = 0;
            var jAccum = 0;
            var aAccum = 0;
            var numTickets = 0;
            var countNumber = 0;
            var delta = 0.00;
            var totRevenueC = 0.00;
            var totRevenueJ = 0.00;
            var totRevenueA = 0.00;
            var totRevenue = 0.00;
            var ticketsSold = 0.00;

            document.write("SUMMERVILLE SEAWORLD" + BR);
            currentDate = prompt("What is today's date? (ex: October 11, 2014)", "");
            document.write("Summary report for " + currentDate + BR);

            ticketType = getTicketType();

            while (ticketType != 'Q')
            {
                quantity = getQuantity();
                charge = getCharge();

                if (ticketType == "C")
                {
                    cAccum += quantity;
                    delta = 0;
                    totRevenueC = 0;
                }
                else if (ticketType == "J")
                {
                    jAccum += quantity;
                    delta = charge - (quantity * JUNIOR_PRICE);
                    totRevenueJ = (jAccum * JUNIOR_PRICE) - delta;
                }
                else
                {
                    aAccum += quantity;
                    delta = charge - (quantity * ADULT_PRICE);
                    totRevenueA = (aAccum * ADULT_PRICE) - delta;
                }

                countNumber ++;
                ticketsSold += quantity;
                totRevenue = totRevenueC + totRevenueJ + totRevenueA;

                ticketType = getTicketType();

                displayOneOrder(countNumber, ticketName, quantity, charge, delta);
            }
            displayFinalReport(currentDate, countNumber, aAccum, totRevenueA, jAccum, totRevenueJ, cAccum, totRevenueC, totRevenue);
        }

        function getTicketType()
        {
            var tickType;

            tickType = prompt("Enter ticket type: C, J, A or Q to quit", "");
            tickType = tickType.toUpperCase();
            while (tickType != "C" && tickType != "J" && tickType != "A" && tickType != "Q")
            {
                tickType = prompt("Invalid entry.  Enter ticket: C, J, A or Q to quit", "");
                tickType = tickType.toUpperCase();
            }
            return tickType;
        }

        function getQuantity()
        {
            var qty;
            qty = prompt("How many tickets sold?", "");
            qty = parseFloat(qty);
            //Validation loop for a negative amount
            while (qty < 0.0)
            {
                qty = prompt ("Negative sale values are not allowed! Please enter the sale for that region:", "");
                qty = parseInt(qty);
            }
            return qty;
        }

        function getCharge()
        {
            var chrg;
            chrg = prompt("What is the charge?", "");
            chrg = parseFloat(chrg);
            //Validation loop for a negative amount
            while (chrg < 0.0)
            {
                chrg = prompt ("Negative sale values are not allowed! Please enter the sale for that region:", "");
                chrg = parseFloat(chrg);
            }
            return chrg;                
        }

        function findTicketName(tickType)
        {
            var tickName;

            if (tickType == "C")
            {
                tickName = "Child";
            }
            else if (tickType == "J")
            {
                tickName = "Junior";
            }
            else
            {
                tickName = "Adult";
            }
            return tickName;            
        }

        function displayOneOrder(count, tickName, qty, chrg, delt)
        {
            document.writeln("<pre>");
            document.writeln("COUNTER #" + "    " + "TYPE" + "      " + "QTY" + "       " + "ACTUAL CHG" + "    " + "DELTA");
            document.writeln(count + "      " + tickName + "        " + qty + "     " + chrg.toFixed(2) + "     " + delt.toFixed(2) + BR);
            document.writeln("</pre>");
        }

        function displayFinalReport(currDate, count, aduAccum, totRevA, junAccum, totRevJ, chiAccum, totRevC, totRev)
        {
            document.write("SUMMERVILLE SEAWORLD" + BR + BR);
            document.write("Summary report for " + currDate + BR + BR);
            document.write("Number of records: " + count + BR + BR);
            document.write("SALES TOTALS");

            document.writeln("<pre>");
            document.writeln("TICKET TYPE" + "  " + "TOTAL TICKETS" + "     " + "TOTAL REVENUE");
            document.writeln("ADULT" + "             " + aduAccum + "              " + totRevA.toFixed(2) + BR);
            document.writeln("JUNIOR" + "            " + junAccum + "              " + totRevJ.toFixed(2) + BR);
            document.writeln("CHILD" + "             " + chiAccum + "              " + totRevC.toFixed(2) + BR + BR);
            document.writeln("TOTAL REVENUE: " + totRev.toFixed(2));
            document.writeln("</pre>");
        }
    </script>

var BR=“
”; var价格=7.50; var价格=11.50; 函数main() { var-ticketType; var数量=0; var费用=0.00; var ticketName; var currentDate=“”; var cAccum=0; var-jAccum=0; var aAccum=0; var numTickets=0; var countNumber=0; varδ=0.00; var totRevenueC=0.00; var totRevenueJ=0.00; var totRevenueA=0.00; var totRevenue=0.00; var TicketsSeld=0.00; 文件。书写(“萨默维尔海洋世界”+BR); currentDate=提示(“今天的日期是什么?(例如:2014年10月11日)”,“”); 文件。编写(“总结报告”+currentDate+BR); ticketType=getTicketType(); while(ticketType!=“Q”) { 数量=getQuantity(); charge=getCharge(); 如果(票证类型==“C”) { cAccum+=数量; δ=0; totRevenueC=0; } 否则,如果(票证类型==“J”) { jAccum+=数量; 增量=费用-(数量*价格); totRevenueJ=(jAccum*JUNIOR_PRICE)-三角洲; } 其他的 { aAccum+=数量; 增量=费用-(数量*成人价格); totRevenueA=(aAccum*成人价格)-三角洲; } countNumber++; 票务售出+=数量; 总收入=总收入+总收入+总收入; ticketType=getTicketType(); displayOneOrder(计数编号、票号、数量、费用、增量); } 显示最终报告(当前日期、计数编号、aAccum、totRevenueA、jAccum、totRevenueJ、cAccum、totRevenueC、totRevenue); } 函数getTicketType() { 变量类型; tickType=提示(“输入票据类型:C、J、A或Q以退出”,”; tickType=tickType.toUpperCase(); while(tickType!=“C”&&tickType!=“J”&&tickType!=“A”&&tickType!=“Q”) { tickType=prompt(“输入无效。输入票证:C、J、A或Q以退出”,”); tickType=tickType.toUpperCase(); } 返回类型; } 函数getQuantity() { 变量数量; 数量=提示(“售出多少张票?”,“”); 数量=浮动(数量); //负数的验证循环 而(数量<0.0) { 数量=提示(“不允许销售值为负值!请输入该地区的销售:,”); 数量=parseInt(数量); } 退货数量; } 函数getCharge() { var-chrg; chrg=提示(“费用是多少?”,“”); chrg=parseFloat(chrg); //负数的验证循环 而(chrg<0.0) { chrg=prompt(“不允许销售值为负值!请输入该地区的销售:,”); chrg=parseFloat(chrg); } 返回chrg; } 函数findTicketName(tickType) { 变量名称; 如果(类型=“C”) { tickName=“Child”; } else if(tickType==“J”) { tickName=“Junior”; } 其他的 { tickName=“成人”; } 返回名称; } 函数displayOneOrder(计数、名称、数量、颜色、增量) { 文件。书面形式(“”);
displayOneOrder(countNumber, ticketName, quantity, charge, delta);
displayOneOrder(countNumber, ticketType, quantity, charge, delta);
document.writeln(“计数器”+“类型”+“数量”+“实际值”+“增量”);
displayOneOrder(countNumber, ticketName, quantity, charge, delta);
displayOneOrder(countNumber, ticketType, quantity, charge, delta);
文件写入(计数+“”+tickName+“”+qty+“”+chr.toFixed(2)+“”+delt.toFixed(2)+BR);
displayOneOrder(countNumber, ticketName, quantity, charge, delta);
displayOneOrder(countNumber, ticketType, quantity, charge, delta);
文件。书面形式(“”);
displayOneOrder(countNumber, ticketName, quantity, charge, delta);
displayOneOrder(countNumber, ticketType, quantity, charge, delta);
} 函数显示最终报告(currDate、count、aduAccum、totRevA、junAccum、totRevJ、Chiacum、totRevC、totRev) { 文件。书写(“萨默维尔海洋世界”+BR+BR); 文件编写(“总结报告”+currendate+BR+BR); 文件。写入(“记录数:+count+BR+BR”); 文件。填写(“销售总额”); 文件。书面形式(“”);
displayOneOrder(countNumber, ticketName, quantity, charge, delta);
displayOneOrder(countNumber, ticketType, quantity, charge, delta);
document.writeln(“票证类型”+“总票证”+“总收入”);
displayOneOrder(countNumber, ticketName, quantity, charge, delta);
displayOneOrder(countNumber, ticketType, quantity, charge, delta);
书面文件(“成人”+“+ADUCUM+”+totRevA.toFixed(2)+BR);
displayOneOrder(countNumber, ticketName, quantity, charge, delta);
displayOneOrder(countNumber, ticketType, quantity, charge, delta);
书面文件(“初级”+“+junAccum+”+totRevJ.toFixed(2)+BR);
displayOneOrder(countNumber, ticketName, quantity, charge, delta);
displayOneOrder(countNumber, ticketType, quantity, charge, delta);
document.writeln(“CHILD”+“”+chiacum+“”+totRevC.toFixed(2)+BR+BR);
displayOneOrder(countNumber, ticketName, quantity, charge, delta);
displayOneOrder(countNumber, ticketType, quantity, charge, delta);
书面文件(“总收入:+总修订金额(2));
displayOneOrder(countNumber, ticketName, quantity, charge, delta);
displayOneOrder(countNumber, ticketType, quantity, charge, delta);
文件。书面形式(“”);
displayOneOrder(countNumber, ticketName, quantity, charge, delta);
displayOneOrder(countNumber, ticketType, quantity, charge, delta);
}
我相信您要做的是更改这一行:

displayOneOrder(countNumber, findTicketName(ticketType), quantity, charge, delta);
……为此:

ticketName = findTicketName(ticketType);
换句话说,当您打算传递
ticketType
时,您传递了第二个参数的
ticketName

更新:或者,如果您希望它显示票证类型的全名(例如,“成人”而不是“A”),则将该行更改为:<