原题:
需求说明:
- 循环输入商品编号和购买数量,系统自动计算每种商品的价钱(单价X购买数量),并累加到总金额。
- 当用户输入n时,表示想结账,则退出循环开始结账(假设享受八折优惠)。
- 结账时,根据折扣计算应付金额,输入实付金额,计算找零。
运行结果如下:
************************
请选择购买的商品编号:
1.T恤 2.网球鞋 3.网球拍
************************
请输入商品编号:1
请输入购买数量:2
T恤¥245.0 数量2 合计¥490.0
是否继续(y/n)
y
请输入商品编号:2
请输入购买数量:3
网球鞋$570.0 数量3 合计¥1710.0
是否继续(y/n)n
折扣:0.8
应付金额:1760.0
实付金额:1800
找钱:40
参考源代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | import java.util.*; public class P112_3{ public static void main (String[]args){ Scanner input = new Scanner (System.in); System.out.println("*************************"); System.out.println("请选择购买的商品编号:"); System.out.println("1.T恤\t2.网球鞋\t3.网球拍"); System.out.println("********"); int amount = 0 ;//购买数量 int goodsNo = 0;//商品编号 double num = 0.0 ;//累加商品总额 String name = "" ;//商品名称 double price = 0.0 ;//商品价格 double discount = 0.8 ;//折扣比例 double total = 0.0 ;//商品总价 double pay = 0.0 ; //应付金额 double payment = 0.0;//实付金额 for ( int i = 1 ; i<1000 ; i++ ){ //使用for循环 System.out.println("请输入商品编号:");//键盘录入商品编号 goodsNo = input.nextInt(); System.out.println("请输入购买数量:");//键盘录入购买数量 amount = input.nextInt(); switch ( goodsNo ){ //使用switch结构来编排商品列表 case 1 : name = "T恤"; price = 245.0; break; case 2 : name = "网球鞋"; price = 570.0; break; case 3 : name = "网球拍"; price = 320.0; break; } total = price * amount ;//总额等于数量乘以单价 num = num + total; //累加 System.out.println(name+"¥"+price+"\t"+"数量:"+amount+"\t合计:"+total); System.out.println("是否继续?(y/n)"); String yes = input.next();//键盘录入是否继续 if ( "n".equals(yes) ){ //若输入为n,则结束循环. break; } } pay = num * discount; // 应付金额等于总额乘以折扣 System.out.println("折扣:"+discount); System.out.println("应付金额:"+pay); System.out.println("请输入实付金额:"); payment = input.nextDouble(); double zhaoqian = payment-pay;//找钱等于实付金额减去应付金额 System.out.println("找钱:"+zhaoqian); } } |