外卖点餐管理系统 - Java 代码实现
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;
}
}
}
原文地址: https://www.cveoy.top/t/topic/oWaI 著作权归作者所有。请勿转载和采集!