2012-12-01 41 views
0

你能帮我在Java中做到这一点吗?Java中的销售点

一个命令行销售点系统,可以计算折扣和总计。该系统应该是卖书的,它应该包含以下产品:如果您购买的两份

1.相距作者1人,定价在$ 20
2.秘境由author2,定价在$ 40

一本书,你会得到8%的折扣。如果您购买三份或更多,您可以享受所有优惠20%的折扣。

系统接受指定项目数量和书本ID的输入,然后按Enter键。完成后,键入“结束”并按Enter键。

示例输入:

输出示例:一个人的
5份分开:$ 80.00秘境的
1复制:$ 40.00
总价格:$ 120.00

示例输入2:
结束

输出示例2:一个人的
2份分开:$ 36.80
总价格:$ 36.80

package pos; 

import java.util.Scanner; 


public class Pos { 


    public static void main(String[] args) { 
     System.out.print("Please enter the quantity along with a book book code (1,2, etc) " 
       + "from the list.Please space you entry.\n "); 
     System.out.print("1.A man apart by author1 - Price: $ 20\n " 
       + "2.Uncharted by author2 - Price: $ 40\n Quantity and Book Code:\n"); 

      int bkprice1 = 20; 
      int bkprice2 = 40; 

      String book1 = "Hunger Games"; 
      String book2 = "Clean Code by Robert C. Martin"; 
      float Totalbk1 = 0; 
      float Totalbk2 = 0; 
      float Totalbk1L1 = 0; 
      float Totalbk2L1 = 0; 
      float Totalbk2L2 = 0; 
      float Totalbk3 = 0; 
      float Total; 
      float Disc; 

     try (Scanner in = new Scanner(System.in)) { 

      int qty = in.nextInt(); 
      int code = in.nextInt(); 
      int qty2 = in.nextInt(); 
      int code2 = in.nextInt(); 
      String tt = in.next(); 
      int qty3; 



      if (qty == 2 && code == 1) { 
       Disc = (float) ((float) (qty*bkprice1)*(0.08)); 
       Totalbk1 = (float) (qty*bkprice1) - Disc; 
       System.out.println(qty+" copies of "+book1+": GHC "+Totalbk1); 
       Totalbk1L1 = Totalbk1; 

      } else if (qty > 2 && code == 1) { 
       Disc = (float) ((float) (qty*bkprice1)*(0.2)); 
       Totalbk1 = (float) (qty*bkprice1) - Disc; 
       System.out.println(qty+" copies of "+book1+": GHC "+Totalbk1); 
       Totalbk1L1 = Totalbk1; 

      } else if (qty <= 1 && code == 1) { 
       Totalbk1 = (float) (qty*bkprice1); 
       System.out.println(qty+" copy of "+book1+": GHC "+Totalbk1); 
       Totalbk1L1 = Totalbk1; 

      } 

      if (qty2 == 2 && code2 == 1) { 
       Disc = (float) ((float) (qty2*bkprice1)*(0.08)); 
       Totalbk1 = (float) (qty2*bkprice1) - Disc; 
       System.out.println(qty2+" copies of "+book1+": GHC "+Totalbk1); 
       Total = Totalbk1L1 + Totalbk1; 
       System.out.println("Total price: "+Total); 
      } else if (qty2 > 2 && code2 == 1) { 
       Disc = (float) ((float) (qty2*bkprice1)*(0.2)); 
       Totalbk1 = (float) (qty2*bkprice1) - Disc; 
       System.out.println(qty2+" copies of "+book1+": GHC "+Totalbk1); 
       Total = Totalbk1L1 + Totalbk1; 
       System.out.println("Total price: "+Total); 
      } else if (qty2 <= 1 && code2 == 1) { 
       Totalbk1 = (float) (qty2*bkprice1); 
       System.out.println(qty2+" copy of "+book1+": GHC "+Totalbk1); 
       Total = Totalbk1L1 + Totalbk1; 
       System.out.println("Total price: "+Total); 
      } 




      if (qty == 2 && code == 2) { 
       Disc = (float) ((float) (qty*bkprice2)*(0.08)); 
       Totalbk2 = (float) (qty*bkprice2) - Disc; 
       System.out.println(qty+" copies of "+book2+": GHC "+Totalbk2); 
       Totalbk2L1 = Totalbk2; 

      } else if (qty > 2 && code == 2) { 
       Disc = (float) ((float) (qty*bkprice2)*(0.2)); 
       Totalbk2 = (float) (qty*bkprice2) - Disc; 
       System.out.println(qty+" copies of "+book2+": GHC "+Totalbk2); 
       Totalbk2L1 = Totalbk2; 

      } else if (qty <= 1 && code == 2) { 
       Totalbk2 = (float) (qty*bkprice2); 
       System.out.println(qty+" copy of "+book2+": GHC "+Totalbk2); 
       Totalbk2L1 = Totalbk2; 

      } 


      if (qty2 == 2 && code2 == 2) { 
       Disc = (float) ((float) (qty2*bkprice2)*(0.08)); 
       Totalbk2 = (float) (qty2*bkprice2) - Disc; 
       System.out.println(qty2+" copies of "+book2+": GHC "+Totalbk2); 
       Total = Totalbk2L1 + Totalbk2; 
       System.out.println("Total price: "+Total); 
      } else if (qty2 > 2 && code2 == 2) { 
       Disc = (float) ((float) (qty2*bkprice2)*(0.2)); 
       Totalbk2 = (float) (qty2*bkprice2) - Disc; 
       System.out.println(qty2+" copies of "+book2+": GHC "+Totalbk2); 
       Total = Totalbk2L1 + Totalbk2; 
       System.out.println("Total price: "+Total); 
      } else if (qty2 <= 1 && code2 == 2) { 
       Totalbk2 = (float) (qty2*bkprice2); 
       System.out.println(qty2+" copy of "+book2+": GHC "+Totalbk2); 
       Total = Totalbk2L1 + Totalbk2; 
       System.out.println("Total price: "+Total); 
      } 



      if (qty == 2 && code == 1) { 
       Disc = (float) ((float) (qty*bkprice1)*(0.08)); 
       Totalbk1 = (float) (qty*bkprice1) - Disc; 
       System.out.println(qty+" copies of "+book1+": GHC "+Totalbk1); 
       Totalbk1L1 = Totalbk1; 

      } else if (qty > 2 && code == 1) { 
       Disc = (float) ((float) (qty*bkprice1)*(0.2)); 
       Totalbk1 = (float) (qty*bkprice1) - Disc; 
       System.out.println(qty+" copies of "+book1+": GHC "+Totalbk1); 
       Totalbk1L1 = Totalbk1; 

      } else if (qty <= 1 && code == 1) { 
       Totalbk1 = (float) (qty*bkprice1); 
       System.out.println(qty+" copy of "+book1+": GHC "+Totalbk1); 
       Totalbk1L1 = Totalbk1; 

      } 


      if (qty2 == 2 && code2 == 2) { 
       Disc = (float) ((float) (qty2*bkprice2)*(0.08)); 
       Totalbk2 = (float) (qty2*bkprice2) - Disc; 
       System.out.println(qty2+" copies of "+book2+": GHC "+Totalbk2); 
       Total = Totalbk2L1 + Totalbk2; 
       System.out.println("Total price: "+Total); 
      } else if (qty2 > 2 && code2 == 2) { 
       Disc = (float) ((float) (qty2*bkprice2)*(0.2)); 
       Totalbk2 = (float) (qty2*bkprice2) - Disc; 
       System.out.println(qty2+" copies of "+book2+": GHC "+Totalbk2); 
       Total = Totalbk2L1 + Totalbk2; 
       System.out.println("Total price: "+Total); 
      } else if (qty2 <= 1 && code2 == 2) { 
       Totalbk2 = (float) (qty2*bkprice2); 
       System.out.println(qty2+" copy of "+book2+": GHC "+Totalbk2); 
       Total = Totalbk2L1 + Totalbk2; 
       System.out.println("Total price: "+Total); 
      } 



     } 
    } 
} 

请让我知道,如果我的逻辑是正确的。我希望我的代码尽可能简洁。

+0

作为提醒,java约定是字段名称应该以小写字母开头 – luiges90

+1

您要求实现,但已经提供了可能的解决方案。那么你的问题到底是什么? – home

+0

你好,谢谢你的评论。当你运行这段代码时,它不会生成期望的输出。这是因为我必须为用户输入的所有可能性创建if语句。这会使代码太多。我的问题是, 有一个更好的方法吗? –

回答

0

你需要学会使用,而不是试图把一切都在独立的变量

有书一类的类,有标题和价格

有一类订单

使用集合类保持订单

这应该让你开始列表...

+2

由于某种原因,我们不再喜欢homework标签:-) http://stackoverflow.com/tags/homework/info – home

0

尝试使用地图的书的d价格,因此if-else的数量会减少。

+0

您好,请解释一下在这种情况下“地图”是什么。谢谢 –