2017-02-23 68 views
-3

我的任务在我的java类我们应该写一个航运计算器来计算最终运输成本基于“统一费率“每”重量级“每”500英里出货“的说明是这样的。试图在java中编写一个简单的程序来计算运输价格使用else if语句,我彻底失去了

The Fast Freight Shipping Computer charges the following rates: 
Weight of Package Rate per 500 Miles Shipped 
2 pounds or less $1.10 
Over 2 pounds but not more than 6 pounds $2.20 
Over 6 pounds but not more than 10 pounds $3.70 
Over 10 pounds $3.80 

The shipping charges per 500 miles are not prorated. For example, if a 2 pound 
package is shipped 550 miles, the charges would be $2.20. Write a program that asks 
the user to enter the weight of a package and the distance traveled, 
and then displays the shipping charges. 

我的老师要我们将利用“其他”和“如果”这个任务,但是我他不会介意它的一个小票友,他实际上是使用堆栈溢出的帮助,所以在这里我是谁提出的一个。

基本上我不知道如何使它每500英里收费并将其应用于该程序。如果任何人都可以提供帮助,我会非常感激,并希望看到你是如何计算出来的,以及你为什么会这样做。

对于冗长的问题,我很抱歉,但我很茫然。香港专业教育学院尝试这样多次和从头越已经重启喜欢比我对继承人承认我的最新尝试:

public static void main(String[] args) { 

    // Declarations 

    double finalPrice; 
    double shippingRate; 
    int milesShipped; 
    double packageWeight; 
    Scanner keyboard = new Scanner(System.in); 

    // Get user input 

    System.out.print("Please enter the weight of package in Pounds: "); 
    packageWeight = keyboard.nextDouble(); 

    System.out.print("Please enter the miles traveled in miles: "); 
    milesShipped = keyboard.nextInt(); 

    //Computations 

    if (packageWeight <= 2) { 
     shippingRate = 1.10; 
    }else if (packageWeight >= 2 && packageWeight <= 6) { 
     shippingRate = 2.20; 
    }else if (packageWeight >= 6 && packageWeight <= 10) { 
     shippingRate = 3.70; 
    }else { 
     shippingRate = 3.80; 

    } 
    if (milesShipped <= 500) { 
     finalPrice = shippingRate; 
    }else if (milesShipped >= 500.0 && milesShipped <= 1000.0) { 
     finalPrice = shippingRate; 
    } 

    ///Display results 

    System.out.println("your shipping charges are calculated to be " + '$'+ finalPrice); 
+0

我的教授说太多,这就是所谓的从别人那里学习进入1500。他完成了大部分工作,只需要一点解释 – sbowde4

+0

您可以将“milesShipped”整数除以500,以计算您需要乘以“shippingRate”以获得“finalPrice”的数字。所以,假设用户为'milesShipped'输入了'1200.5'。整数除以500得出2.乘以你已经计算过的'finalPrice'。 –

+0

@ sbowde4雅基本上我无法弄清楚如何以语言友好的方式应用数学。 – ZombieCobra95

回答

0

删除

if (milesShipped <= 500) { 
     finalPrice = shippingRate;//this never updates for each 500 miles 
    }else if (milesShipped >= 500.0 && milesShipped <= 1000.0) { 
     finalPrice = shippingRate; 
    } 

与下面的代码

while (milesShipped > 0) { 
     finalPrice += shippingRate; 
     milesShipped -= 500;//subtract 500 from the miles till it is less than 0 
    } 
更换

代码将运行至小于0,循环的每次迭代,直到此时将运输成本加到每个500的最终价格上。

比方说,用户对于2磅包

first iteration 
finalPrice = 1.10 
milesShipped-500 = 1000 
second iteration 
finalPrice = 2.20 
milesShipped-500 = 500 
third iteration 
finalPrice = 3.20 
milesShipped-500 = 0 

the loop now terminates since milesShipped is no longer greater than 0. 
+0

哥们非常感谢你,完美的工作!你偶然知道我可以如何改变我的输出显示$ X.XX而不是$ XX,比如4.4和4.40 – ZombieCobra95

+0

你可以使用'System.out.printf(“你的运费计算为%.2f%n” ,finalPrice);''.2.2f'表示浮点数,小数点后2位,'%n'表示换行。 – sbowde4

+0

关于printf的更多文档可以在这里找到https://docs.oracle.com/javase/tutorial/java/data/numberformat.html另外,如果我的答案有帮助,请考虑标记为正确:) – sbowde4

相关问题