采用面向对象的思想构建“超市购物”并利用Java编写,任务描述如下: 超市的货物包括生活用品和学习用品等,购物者根据货物名能够查找是否有该货物,根据货号能查找该货物的价格,打印购物清单。统计货品销售的数量。
时间: 2024-06-12 07:08:23 浏览: 120
以下是一个简单的超市购物程序的示例:
```java
import java.util.HashMap;
import java.util.Map;
public class Supermarket {
private Map<String, Item> items;
private Map<String, Integer> sales;
public Supermarket() {
items = new HashMap<>();
sales = new HashMap<>();
items.put("001", new Item("001", "牙刷", 2.5));
items.put("002", new Item("002", "牙膏", 5.0));
items.put("003", new Item("003", "洗发水", 10.0));
items.put("004", new Item("004", "毛巾", 3.0));
}
public void addItem(Item item) {
items.put(item.getId(), item);
}
public double getPrice(String id) {
Item item = items.get(id);
if (item != null) {
return item.getPrice();
} else {
return -1;
}
}
public void printShoppingList(Map<String, Integer> cart) {
System.out.println("购物清单:");
double total = 0;
for (String id : cart.keySet()) {
Item item = items.get(id);
int quantity = cart.get(id);
double price = item.getPrice();
total += price * quantity;
System.out.println(item.getName() + " x " + quantity + " = " + price * quantity + "元");
}
System.out.println("总计:" + total + "元");
}
public void recordSales(Map<String, Integer> cart) {
for (String id : cart.keySet()) {
int quantity = cart.get(id);
int salesQuantity = sales.getOrDefault(id, 0);
sales.put(id, salesQuantity + quantity);
}
}
public void printSalesStatistics() {
System.out.println("销售统计:");
for (String id : sales.keySet()) {
Item item = items.get(id);
int quantity = sales.get(id);
System.out.println(item.getName() + " x " + quantity);
}
}
public static void main(String[] args) {
Supermarket market = new Supermarket();
Map<String, Integer> cart = new HashMap<>();
cart.put("001", 2);
cart.put("002", 1);
cart.put("003", 3);
market.printShoppingList(cart);
market.recordSales(cart);
market.printSalesStatistics();
}
}
class Item {
private String id;
private String name;
private double price;
public Item(String id, String name, double price) {
this.id = id;
this.name = name;
this.price = price;
}
public String getId() {
return id;
}
public String getName() {
return name;
}
public double getPrice() {
return price;
}
}
```
在这个程序中,`Supermarket`类是超市的主类,包含了货物的信息、购物车、销售统计等功能。`Item`类表示货物,包含了货号、名称、价格等信息。
在主函数中,我们模拟了一个购物车,其中包含了3种货物,然后打印出购物清单、记录销售统计。运行程序后,输出如下:
```
购物清单:
牙刷 x 2 = 5.0元
牙膏 x 1 = 5.0元
洗发水 x 3 = 30.0元
总计:40.0元
销售统计:
牙刷 x 2
牙膏 x 1
洗发水 x 3
毛巾 x 0
```
可以看到,程序能够根据货号查询价格,打印出购物清单,并统计销售数量。您可以根据实际需求对程序进行修改和扩展。
阅读全文