练习:23

原题:

需求说明:

  • 循环输入商品编号和购买数量,系统自动计算每种商品的价钱(单价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); } }

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据