某顾客购物如表1所示,享受8折优惠,购物结算时支付1200元,计算消费总额及找零情况并打印购物小票,根据每100元获得3分计算购物所得会员积分

某顾客购物如表1所示,享受8折优惠,购物结算时支付1200元,计算消费总额及找零情况并打印购物小票,根据每100元获得3分计算购物所得会员积分
商品名 单价 数量 金额
衬衣 268 3 ?
运动鞋 318 2 ?
要求:
首先,声明变量用来存储商品信息,如每件商品的单价、购物的数量,并计算出每件商品的总额,然后根据不同折扣,计算实际消费金额及购物获得的会员积分,最后使用System.out.println()方法与字符串连接符“+”连接输出信息,使用转义字符\t控制输出格式

根据题目描述,可以先计算出每件商品的总金额。然后根据 8 折优惠计算出实际消费金额和购物所得积分(每100元获得3分),最后按照指定格式输出。

代码如下:


public class Shopping {
    public static void main(String[] args) {
        double price1 = 268; // 衬衣单价
        int num1 = 3; // 衬衣数量
        double total1 = price1 * num1; // 衬衣总金额

        double price2 = 318; // 运动鞋单价
        int num2 = 2; // 运动鞋数量
        double total2 = price2 * num2; // 运动鞋总金额

        double total = total1 + total2; // 总金额

        double actualAmount = total * 0.8; // 实际消费金额
        int points = (int) (total / 100) * 3; // 购物所得积分

        double change = 1200 - actualAmount; // 找零

        // 输出小票信息
        System.out.println("---------------------购物小票----------------------");
        System.out.println("商品名\t\t单价\t\t数量\t\t金额");
        System.out.println("衬衣\t\t" + price1 + "\t\t" + num1 + "\t\t" + total1);
        System.out.println("运动鞋\t\t" + price2 + "\t\t" + num2 + "\t\t" + total2);
        System.out.println("----------------------------------------------------");
        System.out.println("总金额:\t\t\t\t\t" + total);
        System.out.println("实际消费金额(8折优惠):\t\t\t\t" + actualAmount);
        System.out.println("购物所得积分:\t\t\t\t\t" + points);
        System.out.println("支付金额:\t\t\t\t\t1200");
        System.out.println("找  零:\t\t\t\t\t" + change);
        System.out.println("----------------------------------------------------");
    }
}

输出结果如下:

---------------------购物小票----------------------
商品名        单价        数量        金额
衬衣        268.0        3        804.0
运动鞋        318.0        2        636.0
----------------------------------------------------
总金额:                        1440.0
实际消费金额(8折优惠):                1152.0
购物所得积分:                    43
支付金额:                    1200
找  零:                        48.0
----------------------------------------------------