原题:
需求说明:
- 循环输入商品编号和购买数量,系统自动计算每种商品的价钱(单价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
参考源代码:
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);
}
}