用Java写一个餐饮管理系统
时间: 2024-06-08 11:07:17 浏览: 14
好的,下面是一个简单的餐饮管理系统的Java代码示例。该系统包括菜品管理、订单管理和库存管理三个模块。
```java
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
public class RestaurantManagementSystem {
private static Scanner scanner = new Scanner(System.in);
private static Map<Integer, Dish> dishes = new HashMap<>();
private static List<Order> orders = new ArrayList<>();
private static int orderCounter = 1;
private static int stock = 100;
public static void main(String[] args) {
while (true) {
System.out.println("请选择操作:");
System.out.println("1. 菜品管理");
System.out.println("2. 订单管理");
System.out.println("3. 库存管理");
System.out.println("4. 退出");
int choice = scanner.nextInt();
switch (choice) {
case 1:
dishManagement();
break;
case 2:
orderManagement();
break;
case 3:
stockManagement();
break;
case 4:
System.exit(0);
default:
System.out.println("无效的选择。");
break;
}
}
}
private static void dishManagement() {
while (true) {
System.out.println("请选择操作:");
System.out.println("1. 添加菜品");
System.out.println("2. 修改菜品");
System.out.println("3. 删除菜品");
System.out.println("4. 查看菜品");
System.out.println("5. 返回上级菜单");
int choice = scanner.nextInt();
switch (choice) {
case 1:
addDish();
break;
case 2:
modifyDish();
break;
case 3:
deleteDish();
break;
case 4:
viewDishes();
break;
case 5:
return;
default:
System.out.println("无效的选择。");
break;
}
}
}
private static void addDish() {
System.out.println("请输入菜品名称:");
String name = scanner.next();
System.out.println("请输入菜品价格:");
double price = scanner.nextDouble();
Dish dish = new Dish(name, price);
dishes.put(dish.getId(), dish);
System.out.println("菜品添加成功。");
}
private static void modifyDish() {
System.out.println("请输入要修改的菜品编号:");
int id = scanner.nextInt();
Dish dish = dishes.get(id);
if (dish == null) {
System.out.println("菜品不存在。");
return;
}
System.out.println("请输入新的菜品名称(不修改请按回车):");
String name = scanner.nextLine().trim();
if (!name.isEmpty()) {
dish.setName(name);
}
System.out.println("请输入新的菜品价格(不修改请按回车):");
String priceStr = scanner.nextLine().trim();
if (!priceStr.isEmpty()) {
double price = Double.parseDouble(priceStr);
dish.setPrice(price);
}
System.out.println("菜品修改成功。");
}
private static void deleteDish() {
System.out.println("请输入要删除的菜品编号:");
int id = scanner.nextInt();
Dish dish = dishes.get(id);
if (dish == null) {
System.out.println("菜品不存在。");
return;
}
dishes.remove(id);
System.out.println("菜品删除成功。");
}
private static void viewDishes() {
System.out.println("菜品列表:");
System.out.println("编号\t名称\t价格");
for (Dish dish : dishes.values()) {
System.out.println(dish.getId() + "\t" + dish.getName() + "\t" + dish.getPrice());
}
}
private static void orderManagement() {
while (true) {
System.out.println("请选择操作:");
System.out.println("1. 下单");
System.out.println("2. 查看订单");
System.out.println("3. 返回上级菜单");
int choice = scanner.nextInt();
switch (choice) {
case 1:
placeOrder();
break;
case 2:
viewOrders();
break;
case 3:
return;
default:
System.out.println("无效的选择。");
break;
}
}
}
private static void placeOrder() {
System.out.println("请输入菜品编号和数量(以空格分隔,多个菜品以逗号分隔):");
String input = scanner.next();
String[] dishInputs = input.split(",");
Order order = new Order(orderCounter++);
for (String dishInput : dishInputs) {
String[] parts = dishInput.split(" ");
int id = Integer.parseInt(parts[0]);
int quantity = Integer.parseInt(parts[1]);
Dish dish = dishes.get(id);
if (dish == null) {
System.out.println("菜品不存在。");
return;
}
if (quantity > stock) {
System.out.println("库存不足。");
return;
}
order.addDish(dish, quantity);
stock -= quantity;
}
orders.add(order);
System.out.println("下单成功,订单编号为 " + order.getId() + "。");
}
private static void viewOrders() {
System.out.println("订单列表:");
System.out.println("编号\t总价\t菜品");
for (Order order : orders) {
System.out.print(order.getId() + "\t" + order.getTotalPrice() + "\t");
for (OrderItem item : order.getItems()) {
System.out.print(item.getDish().getName() + "*" + item.getQuantity() + ",");
}
System.out.println();
}
}
private static void stockManagement() {
while (true) {
System.out.println("请选择操作:");
System.out.println("1. 查看库存");
System.out.println("2. 入库");
System.out.println("3. 出库");
System.out.println("4. 返回上级菜单");
int choice = scanner.nextInt();
switch (choice) {
case 1:
viewStock();
break;
case 2:
addStock();
break;
case 3:
reduceStock();
break;
case 4:
return;
default:
System.out.println("无效的选择。");
break;
}
}
}
private static void viewStock() {
System.out.println("当前库存为:" + stock);
}
private static void addStock() {
System.out.println("请输入入库数量:");
int quantity = scanner.nextInt();
stock += quantity;
System.out.println("入库成功,当前库存为:" + stock);
}
private static void reduceStock() {
System.out.println("请输入出库数量:");
int quantity = scanner.nextInt();
if (quantity > stock) {
System.out.println("库存不足。");
return;
}
stock -= quantity;
System.out.println("出库成功,当前库存为:" + stock);
}
}
class Dish {
private static int counter = 1;
private int id;
private String name;
private double price;
public Dish(String name, double price) {
this.id = counter++;
this.name = name;
this.price = price;
}
public int getId() {
return id;
}
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;
}
}
class Order {
private static int counter = 1;
private int id;
private List<OrderItem> items;
public Order(int id) {
this.id = counter++;
this.items = new ArrayList<>();
}
public int getId() {
return id;
}
public void addDish(Dish dish, int quantity) {
OrderItem item = new OrderItem(dish, quantity);
items.add(item);
}
public double getTotalPrice() {
double totalPrice = 0;
for (OrderItem item : items) {
totalPrice += item.getDish().getPrice() * item.getQuantity();
}
return totalPrice;
}
public List<OrderItem> getItems() {
return items;
}
}
class OrderItem {
private Dish dish;
private int quantity;
public OrderItem(Dish dish, int quantity) {
this.dish = dish;
this.quantity = quantity;
}
public Dish getDish() {
return dish;
}
public int getQuantity() {
return quantity;
}
}
```
这个餐饮管理系统具有以下功能:
1. 菜品管理:添加、修改、删除、查看菜品。
2. 订单管理:下单、查看订单。
3. 库存管理:查看库存、入库、出库。
你可以在此基础上进行扩展,添加更多功能。