某顾客购物如表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
----------------------------------------------------