练习: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

参考源代码:

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);
    }
}

发表回复

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

*

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