使用Java1、假设小明去超市买了4件商品,商品具体价格如下:商品a 11.02元,商品b 34.29元,商品c 43.89元,商品d 43.01元 ,商品总计 132.21元, 然后做活动优惠了9.02元,实际支付123.19. 请写一段程序计算每个商品的优惠金额,确保程序可以扩展支持更多商品的优惠计算。例如10个,20个等等
时间: 2023-06-04 14:05:11 浏览: 198
这是一道编程题,我可以为您编写一段Java程序来计算每个商品的优惠金额。以下是示例代码:
```java
import java.text.DecimalFormat;
import java.util.HashMap;
import java.util.Map;
public class DiscountCalculator {
public static void main(String[] args) {
//定义商品价格
Map<String, Double> prices = new HashMap<>();
prices.put("a", 11.02);
prices.put("b", 34.29);
prices.put("c", 43.89);
prices.put("d", 43.01);
//定义总计价格和优惠金额
double total = 132.21;
double discount = 9.02;
//计算每个商品的优惠金额
Map<String, Double> discounts = calculateDiscount(prices, total, discount);
//打印每个商品的优惠金额
DecimalFormat df = new DecimalFormat("#0.00");
for (String key : prices.keySet()) {
System.out.println("商品" + key + "的优惠金额为:" + df.format(discounts.get(key)));
}
}
/**
* 计算每个商品的优惠金额
* @param prices 商品价格
* @param total 总计价格
* @param discount 优惠金额
* @return 每个商品的优惠金额
*/
public static Map<String, Double> calculateDiscount(Map<String, Double> prices, double total, double discount) {
Map<String, Double> discounts = new HashMap<>();
//计算折扣率
double rate = discount / total;
//计算每个商品的优惠金额
for (String key : prices.keySet()) {
double price = prices.get(key);
double d = price * rate;
discounts.put(key, d);
}
return discounts;
}
}
```
在这个示例代码中,我使用了一个Map来存储每个商品的价格,通过调用calculateDiscount方法计算出每个商品的优惠金额,最后使用DecimalFormat来格式化输出结果。您可以根据需要调整商品数量和价格,程序会自动计算出每个商品的优惠金额。