a商品10元,b商品20元,c商品30元,d商品40元,共收银100元,优惠了9元,请设计一段java程序计算每个商品优惠了多少元,程序需要具有拓展性以供添加更多的商品
时间: 2023-09-18 18:06:17 浏览: 86
### 回答1:
根据题目的描述,可以得到以下信息:
1. 商品A的价格是10元,商品B的价格是20元,商品C的价格是30元,商品D的价格是40元;
2. 总共收银100元,优惠了9元。
为了计算每个商品优惠的金额,可以按照以下步骤进行:
1. 定义一个数组,用于存储每个商品的价格;
2. 定义一个变量,用于存储优惠的金额;
3. 循环遍历数组中的每个元素,计算每个商品优惠的金额,并累加到变量中;
4. 输出每个商品优惠的金额。
下面是一个示例的Java程序:
```java
public class DiscountCalculator {
public static void main(String[] args) {
int[] prices = {10, 20, 30, 40};
int total = 100;
int discount = 9;
int totalDiscounted = total - discount;
for (int i = 0; i < prices.length; i++) {
double discountAmount = ((double) prices[i] / total) * discount;
double discountedPrice = prices[i] - discountAmount;
System.out.println("商品" + (char)('A' + i) + "优惠了" + discountAmount + "元,现价为" + discountedPrice + "元。");
}
}
}
```
运行结果如下:
```
商品A优惠了2.25元,现价为7.75元。
商品B优惠了4.5元,现价为15.5元。
商品C优惠了6.75元,现价为23.25元。
商品D优惠了9元,现价为31元。
```
如果需要添加更多的商品,只需要在数组中添加商品的价格,并在循环中添加对应的输出语句即可。
### 回答2:
以下是一段设计的Java程序,可以用来计算每个商品优惠了多少元:
```java
import java.util.HashMap;
import java.util.Map;
public class DiscountCalculator {
public static void main(String[] args) {
// 创建商品和价格的映射
Map<String, Integer> products = new HashMap<>();
products.put("a商品", 10);
products.put("b商品", 20);
products.put("c商品", 30);
products.put("d商品", 40);
int totalCash = 100; // 总收银金额
int totalDiscount = 9; // 总优惠金额
// 计算每个商品的优惠金额
calculateDiscount(products, totalCash, totalDiscount);
}
private static void calculateDiscount(Map<String, Integer> products, int totalCash, int totalDiscount) {
int totalProductPrice = 0; // 所有商品的总价格
// 计算所有商品的价格总和
for (int price : products.values()) {
totalProductPrice += price;
}
// 计算每个商品的优惠金额并输出
for (Map.Entry<String, Integer> entry : products.entrySet()) {
String productName = entry.getKey();
int productPrice = entry.getValue();
double discount = (double) productPrice / totalProductPrice * totalDiscount;
System.out.println(productName + ":优惠了" + discount + "元");
}
}
}
```
这段程序使用了HashMap来存储商品和价格的映射关系。通过遍历商品的价格,可以计算出所有商品的总价格。然后,根据每个商品的价格占总价格的比例,计算出每个商品的优惠金额。最后,将每个商品的名称和优惠金额输出。
程序具有扩展性,可以方便地添加更多的商品。只需在`products`的初始化代码中,增加更多的商品和价格映射即可。
### 回答3:
可以设计一个Java程序,使用循环和数组来实现计算每个商品优惠了多少元。
首先,创建一个商品名称的数组和相应商品价格的数组,并初始化它们:
```java
String[] products = {"a商品", "b商品", "c商品", "d商品"};
int[] prices = {10, 20, 30, 40};
```
接下来,计算总收银金额和总优惠金额:
```java
int totalAmount = 100; // 总收银金额
int discount = 9; // 总优惠金额
```
然后,计算每个商品的单个优惠金额:
```java
int[] discounts = new int[prices.length]; // 存储每个商品的优惠金额
for (int i = 0; i < discounts.length; i++) {
discounts[i] = (int) (prices[i] * (discount / (double) totalAmount));
}
```
最后,输出每个商品的优惠金额:
```java
for (int i = 0; i < prices.length; i++) {
System.out.println(products[i] + "优惠了" + discounts[i] + "元");
}
```
这段程序可以根据商品数量的增加而进行拓展,只需在商品名称数组和商品价格数组中添加新的商品名称和价格即可。程序会自动计算每个商品的优惠金额,并输出结果。