用JAVA帮我写一个超市收费系统
时间: 2023-12-09 20:05:57 浏览: 149
好的,超市收费系统可以分为以下几个模块:
1. 商品信息管理:包括商品编号、名称、价格等信息的维护
2. 销售记录管理:记录每次销售的商品信息、数量、价格等信息
3. 收银功能:根据输入的商品编号和数量,计算出应付金额,并输出收据
4. 库存管理:根据销售记录,减少对应商品的库存数量
下面是一个简单的超市收费系统的 Java 代码实现:
```java
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class SupermarketBillingSystem {
// 商品信息
private Map<String, Product> products;
// 销售记录
private Map<String, Integer> sales;
public SupermarketBillingSystem() {
products = new HashMap<>();
sales = new HashMap<>();
}
// 添加商品
public void addProduct(String id, String name, double price, int stock) {
products.put(id, new Product(name, price, stock));
}
// 记录销售
public void recordSales(String id, int quantity) {
if (!products.containsKey(id)) {
System.out.println("商品不存在!");
return;
}
Product product = products.get(id);
if (product.getStock() < quantity) {
System.out.println("库存不足!");
return;
}
product.setStock(product.getStock() - quantity);
sales.put(id, sales.getOrDefault(id, 0) + quantity);
}
// 结算
public void checkOut() {
Scanner scanner = new Scanner(System.in);
double total = 0.0;
System.out.println("请输入要购买的商品编号和数量(每次输入一条,输入-1结束):");
while (true) {
String input = scanner.nextLine();
if (input.equals("-1")) {
break;
}
String[] inputs = input.split(" ");
String id = inputs[0];
int quantity = Integer.parseInt(inputs[1]);
if (!products.containsKey(id)) {
System.out.println("商品不存在!");
continue;
}
Product product = products.get(id);
if (product.getStock() < quantity) {
System.out.println("库存不足!");
continue;
}
total += product.getPrice() * quantity;
recordSales(id, quantity);
}
System.out.println("应付金额:" + total + " 元");
}
// 查看销售记录
public void viewSales() {
System.out.println("销售记录:");
for (String id : sales.keySet()) {
Product product = products.get(id);
int quantity = sales.get(id);
System.out.println(product.getName() + " x " + quantity + ",单价:" + product.getPrice() + " 元,总价:" + product.getPrice() * quantity + " 元");
}
}
// 商品类
private static class Product {
private String name;
private double price;
private int stock;
public Product(String name, double price, int stock) {
this.name = name;
this.price = price;
this.stock = stock;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public int getStock() {
return stock;
}
public void setStock(int stock) {
this.stock = stock;
}
}
// 测试
public static void main(String[] args) {
SupermarketBillingSystem system = new SupermarketBillingSystem();
system.addProduct("001", "可乐", 2.5, 100);
system.addProduct("002", "薯片", 3.0, 50);
system.addProduct("003", "饼干", 4.0, 80);
system.checkOut();
system.viewSales();
}
}
```
其中,`Product` 类保存了商品的信息,`addProduct` 方法用于添加商品,`recordSales` 方法用于记录销售,`checkOut` 方法用于结算,`viewSales` 方法用于查看销售记录。在 `main` 方法中,我们简单地添加了几个商品,并进行了一次结算和销售记录查看。
阅读全文