import java.util.*;

public class Main { static HashMap<String, String> users; static String currentUser; static int priority; static Scanner sc; static Menu menu; static OrderList orderlist; static { sc = new Scanner(System.in); users = new HashMap<>(); menu = new Menu(); users.put('root', 'root'); users.put('user1', 'user1'); users.put('user2', 'user2'); menu.addDish(new Dish('酸菜鱼', 100, 20)); menu.addDish(new Dish('西红柿炒蛋', 20, 200)); menu.addDish(new Dish('红烧排骨', 58, 30)); menu.addDish(new Dish('烤红薯', 8, 100)); menu.addDish(new Dish('波士顿龙虾', 998, 2)); orderlist = new OrderList(); }

public static boolean register() {
    System.out.println('请输入用户名');
    String username = sc.nextLine();
    System.out.println('请输入密码');
    String password = sc.nextLine();
    if (users.get(username) != null) {
        System.out.println('注册失败,用户已存在');
        return false;
    } else {
        System.out.println('注册成功');
        users.put(username, password);
    }
    return true;
}

public static boolean login() {
    System.out.println('请输入用户名');
    String username = sc.nextLine();
    System.out.println('请输入密码');
    String password = sc.nextLine();
    if (users.get(username) == null || !users.get(username).equals(password)) {
        System.out.println('登录失败,用户不存在或密码错误');
        return false;
    } else {
        System.out.println('登录成功');
        if (username.equals('root')) {
            priority = 1;
        } else {
            priority = 0;
        }
        currentUser = username;
    }
    return true;
}

public static boolean adminLoop() {
    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.按价格范围查询');
        System.out.println('6.按价格的升序或降序排列显示');
        System.out.println('7.显示所有订单');
        System.out.println('8.按下单的时间顺序查看没有出单的订单');
        System.out.println('9.对订单进行出单操作');
        System.out.println('10.查看已经出单但没有确认收货的订单');
        System.out.println('11.查看已经确认收货的订单');
        System.out.println('输入其余任意键返回');
        String input = sc.nextLine();
        if (input.equals('1')) {
            System.out.println(menu.getDishes());
        } else if (input.equals('2')) {
            System.out.println('请输入菜品名称');
            String name = sc.nextLine();
            System.out.println('请输入菜品价格');
            String price = sc.nextLine();
            System.out.println('请输入菜品数量');
            String quantity = sc.nextLine();
            menu.addDish(new Dish(name, Double.parseDouble(price), Integer.parseInt(quantity)));
            System.out.println('添加成功');
        } else if (input.equals('3')) {
            System.out.println('请输入菜品名称');
            String name = sc.nextLine();
            Dish toBeDeleted = null;
            for (Dish dish : menu.getDishes()) {
                if (dish.getName().equals(name)) {
                    toBeDeleted = dish;
                }
            }
            if (toBeDeleted == null) {
                System.out.println('删除失败,菜品不存在');
            } else {
                menu.removeDish(toBeDeleted);
                System.out.println('删除成功');
            }
        } else if (input.equals('4')) {
            System.out.println('请输入菜品名称');
            String name = sc.nextLine();
            System.out.println(menu.selectByName(name));
        } else if (input.equals('5')) {
            System.out.println('请输入菜品最低价');
            String low = sc.nextLine();
            System.out.println('请输入菜品最高价');
            String high = sc.nextLine();
            System.out.println(menu.selectByPrices(Double.parseDouble(low), Double.parseDouble(high)));
        } else if (input.equals('6')) {
            System.out.println('请输入排序方式 0升序/1降序');
            String type = sc.nextLine();
            if (type.equals('0')) {
                System.out.println(menu.ascendingOrder());
            } else {
                System.out.println(menu.descendingOrder());
            }
        } else if (input.equals('7')) {
            System.out.println(orderlist.getOrders());
        } else if (input.equals('8')) {
            System.out.println(orderlist.selectNotIssuedOrdersByTimeAscending());
        } else if (input.equals('9')) {
            System.out.println('请输入需要出单的id');
            String id = sc.nextLine();
            if (orderlist.issueOrder(Integer.parseInt(id))) {
                System.out.println('出单成功');
            } else {
                System.out.println('出单失败');
            }
        } else if (input.equals('10')) {
            System.out.println(orderlist.selectOrdersWithUnconfirmedReceipt());
        } else if (input.equals('11')) {
            System.out.println(orderlist.selectOrdersWithReceipt());
        } else {
            break;
        }
    }
    return false;
}

public static boolean customerLoop() {
    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.下单');
        System.out.println('6.删除订单');
        System.out.println('7.查看已出单订单');
        System.out.println('8.确认收货');
        String input = sc.nextLine();
        if (input.equals('1')) {
            System.out.println(menu.getDishes());
        } else if (input.equals('2')) {
            System.out.println('请输入菜品名称');
            String name = sc.nextLine();
            System.out.println(menu.selectByName(name));
        } else if (input.equals('3')) {
            System.out.println('请输入菜品最低价');
            String low = sc.nextLine();
            System.out.println('请输入菜品最高价');
            String high = sc.nextLine();
            System.out.println(menu.selectByPrices(Double.parseDouble(low), Double.parseDouble(high)));
        } else if (input.equals('4')) {
            System.out.println('请输入排序方式 0升序/1降序');
            String type = sc.nextLine();
            if (type.equals('0')) {
                System.out.println(menu.ascendingOrder());
            } else {
                System.out.println(menu.descendingOrder());
            }
        } else if (input.equals('5')) {
            int id = 0;
            for (Order order : orderlist.getOrders()) {
                id = Math.max(id, order.getId());
            }
            LinkedList<Dish> dishs = new LinkedList<>();
            System.out.println('请输出你要购买的菜品种类');
            int n = Integer.parseInt(sc.nextLine());
            boolean successful = true;
            for (int i = 0; i < n; ++i) {
                System.out.println('请输出你要购买的第' + (i + 1) + '个菜的名称');
                String name = sc.nextLine();
                System.out.println('请输出你要购买的第' + (i + 1) + '个菜的数量');
                String count = sc.nextLine();
                Dish dish = menu.selectByExactName(name);
                if (dish == null || dish.getQuantity() < Integer.parseInt(count)) {
                    System.out.println('下单失败,菜品名称不存在或菜品数量不足');
                    successful = false;
                    break;
                } else {
                    dishs.add(new Dish(dish.getName(), dish.getPrice(), Integer.parseInt(count)));
                }
            }
            if (successful) {
                orderlist.addOrder(new Order(id + 1, currentUser, dishs));
                System.out.println('下单成功');
            }
        } else if (input.equals('6')) {
            System.out.println('您的当前订单有:');
            System.out.println(orderlist.selectByName(currentUser));
            System.out.println('请输入要删除订单的id');
            String id = sc.nextLine();
            Order order = orderlist.selectById(Integer.parseInt(id));
            if (order != null && order.getCustomerName() == currentUser) {
                orderlist.removeOrder(order);
                System.out.println('删除成功');
            } else {
                System.out.println('删除失败,订单不存在');
            }
        } else if (input.equals('7')) {
            System.out.println(orderlist.selectByNameAndState(currentUser, 1));
        } else if (input.equals('8')) {
            System.out.println('您的当前已出单订单有:');
            System.out.println(orderlist.selectByNameAndState(currentUser, 1));
            System.out.println('请输入要确认收货的订单id');
            String id = sc.nextLine();
            Order order = orderlist.selectById(Integer.parseInt(id));
            if (order != null && order.getCustomerName().equals(currentUser)  && order.getState() == 1) {
                order.setState(2);
                order.confirmReceive();
                System.out.println('确认收货成功');
            } else {
                System.out.println('确认收货失败,订单不存在');
            }
        } else {
            break;
        }
    }
    return false;
}

public static boolean mainLoop() {
    while (true) {
        if (priority == 1) {
            if (!adminLoop()) {
                break;
            }
        } else if (priority == 0) {
            if (!customerLoop()) {
                break;
            }
        } else {
            break;
        }
    }
    return false;
}

public static void main(String[] args) {
    while (true) {
        System.out.println('1.注册');
        System.out.println('2.登录');
        String input = sc.nextLine();
        if (input.equals('1')) {
            register();
        } else if (input.equals('2')) {
            if (!login()) {
                continue;
            }
            if (!mainLoop()) {
                continue;
            }
        } else {
            break;
        }
    }

}
外卖点餐管理系统 - Java 代码实现

原文地址: https://www.cveoy.top/t/topic/oWaI 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录