你能帮我在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);
}
}
}
}
请让我知道,如果我的逻辑是正确的。我希望我的代码尽可能简洁。
作为提醒,java约定是字段名称应该以小写字母开头 – luiges90
您要求实现,但已经提供了可能的解决方案。那么你的问题到底是什么? – home
你好,谢谢你的评论。当你运行这段代码时,它不会生成期望的输出。这是因为我必须为用户输入的所有可能性创建if语句。这会使代码太多。我的问题是, 有一个更好的方法吗? –