Java 计算几袋咖啡的价格。我很难将这些盒子纳入最终价格

Java 计算几袋咖啡的价格。我很难将这些盒子纳入最终价格,java,Java,您的程序将计算几袋咖啡的价格。您将首先询问用户;他们想要多少袋咖啡。每个包的价格是5.5美元。您的总价还必须包括装运此批货物所需的箱数。有三种尺寸的装运箱可供选择。一个大箱子可以装20个袋子,一个中箱子可以装10个袋子,一个小箱子最多可以装5个袋子。不能装运未装满的大或中型箱子。(但是,小的可以装1-5个袋子)每箱的运费是大的=1.80美元,中的=1.00美元,小的=0.60美元。如果咖啡数量大,你们也会给折扣。使用下表计算咖啡价格的折扣(不包括运费)。 0-24袋-无折扣150-199袋-20

您的程序将计算几袋咖啡的价格。您将首先询问用户;他们想要多少袋咖啡。每个包的价格是5.5美元。您的总价还必须包括装运此批货物所需的箱数。有三种尺寸的装运箱可供选择。一个大箱子可以装20个袋子,一个中箱子可以装10个袋子,一个小箱子最多可以装5个袋子。不能装运未装满的大或中型箱子。(但是,小的可以装1-5个袋子)每箱的运费是大的=1.80美元,中的=1.00美元,小的=0.60美元。如果咖啡数量大,你们也会给折扣。使用下表计算咖啡价格的折扣(不包括运费)。 0-24袋-无折扣150-199袋-20%折扣 25-49包-5%折扣200-299包-25%折扣 50-99包–10%折扣300包及以上–30%折扣 100-149包–15%折扣

折扣不适用于包装箱。使用if语句或switch语句完成此操作

在过去的几天里,我尝试了很多不同的事情,以至于我开始胡思乱想。当我的手术完成后,我总共得到了$0.00。我需要一些关于如何合并不同箱子的指导,如果我需要显示多个不同箱子的总价。以下是我到目前为止的情况:

import java.util.Scanner;//for Scanner
import java.text.DecimalFormat;//for proper decimal places


class Discount {
   public static void main ( String [] args) {


      String message;
      message = "Welcome to my program! Please input the amount of bags you need.";
      System.out.println(message);

      final double COFFEE_BAG_PRICE_PER = 5.50;
      final double LARGE_BOX_PRICE_PER = 1.80;
      final double MEDIUM_BOX_PRICE_PER = 1.00;
      final double SMALL_BOX_PRICE_PER = .60;
      int largebox;
      int mediumbox;
      double discountPercentage;
      double boxes = 0;

      Scanner coffeeBags;
      coffeeBags = new Scanner(System.in);

      System.out.println("Enter the amount of coffee bags you want to purchase: ");

      int bags = coffeeBags.nextInt();// amount of bags

      System.out.println("Your total is: " + ((((discountPercentage)*(bags)) + ((boxes)*(bags)))));

   }
   public static double discount (int bags ) {

      final double COFFEE_BAG_PRICE_PER = 5.50;


      double total = bags * COFFEE_BAG_PRICE_PER;//number of bags times the amount of bags
      double amount = 0;
      if (bags<25){
         amount = total;//no discount on a purchase with less than 25 bags ordered.
      }

      else if (bags<50)

      amount = total - (total*(.05));

      else if (bags<100)

      amount = total - (total*(.10));

      else if (bags<150)

      amount = total - (total*(.15));

      else if (bags<200)

      amount = total - (total*(.20));

      else if (bags<300)

      amount = total - (total*(.25));

      else

      amount = total - (total*(.30));// if ordered 300 or more, overall discount is 30%.

      return amount; //returns value after the discount is applied.
   }

     public static double boxes (int bags) {

      double amount = 0;

      while (bags > 0){

         if (bags >= 20){
            bags -= 20;
            amount += 1.80;//adds 1.80 to cost for a large box
         }

         else if (bags >= 10){
            bags -= 10;
            amount += 1.00;//adds 1 to cost for a medium box
         }

         else if (bags >= 5){
            bags -= 5;
            amount += 0.60;//adds .60 to cost for a small box
         }

         else{
            amount += 0.60;
            bags = 0;
         }

   }

      return amount;

      }
}
import java.util.Scanner//扫描仪
导入java.text.DecimalFormat//保留正确的小数位数
班级折扣{
公共静态void main(字符串[]args){
字符串消息;
message=“欢迎参加我的计划!请输入您需要的行李数量。”;
System.out.println(消息);
最终双人咖啡袋价格=5.50;
最终双大箱价格=1.80;
最终双中盒价格=1.00;
最终双小盒价格=0.60;
大箱子;
int mediumbox;
双倍折扣率;
双框=0;
扫描咖啡袋;
咖啡袋=新扫描仪(系统英寸);
System.out.println(“输入您想要购买的咖啡袋数量:”;
int bags=coffeeBags.nextInt();//袋数
System.out.println(“您的总数是:+(((折扣百分比)*(行李))+((箱子)*(行李‘)’));
}
公共静态双重折扣(整箱){
最终双人咖啡袋价格=5.50;
双倍合计=袋*咖啡袋\价格\每;//袋数乘以袋数
双倍金额=0;

如果(bags如此,则有几个错误:

1) 您没有从主方法调用方法
折扣(int-bags)
,因此甚至没有使用逻辑

2) 这是你的台词:

  System.out.println("Your total is: " + ((((discountPercentage)*(bags)) + ((boxes)*(bags)))));

但是
折扣百分比
未初始化,因此,您现在应该有一个编译错误。并且
初始化为0。

您从未使用过任何静态方法折扣和框: 我没有完成所有步骤,但您似乎需要替换下一行

System.out.println("Your total is: " + ((((discountPercentage)*(bags)) + ((boxes)*(bags)))));
通过这一行:

System.out.println("Your total is: " + (discount(bags) + boxes(bags)));
你不需要这些变量中的任何一个

      final double COFFEE_BAG_PRICE_PER = 5.50;
      final double LARGE_BOX_PRICE_PER = 1.80;
      final double MEDIUM_BOX_PRICE_PER = 1.00;
      final double SMALL_BOX_PRICE_PER = .60;
      int largebox;
      int mediumbox;
      double discountPercentage;
      double boxes = 0;
最后,您需要关闭可变咖啡袋

coffeeBags.close();

程序在我的电脑中运行。

您的呼叫箱和折扣在哪里?您的“常量”例如
SMALL\u BOX\u PRICE\u PER
应该在类级别上使用
private static final double
main
之外声明,以便可以从任何方法访问它们。此外,您还需要使用
BOX(bags)
折扣(bags)实际调用方法
,您从未实际使用过它们。
折扣百分比
从未初始化/设置,并且没有默认值,因为它是局部变量,而不是类字段(类字段有默认值)。如果您试图打印类似于
双值;
,这将是一个兼容问题。我不知道他是如何在没有值的情况下运行它的。@Nexevis
>javac-classpath.:/run_dir/junit-4.12.jar-d.Main.java Main.java:29:错误:变量折扣百分比可能尚未初始化System.out.println(“您的总数是:”+(((折扣百分比)*(行李))+((箱子)*(行李‘‘);^1错误编译器退出状态1
是的,它不工作