深夜的清秋我在寫吃貨
吃貨訂餐系統的結果圖:
我的吃貨需求:
方案一:用我的對象數組來實現
寫我的類:
菜單類 訂單類 枚舉類
我的菜單類和訂單類一樣:
Menu和Order:
package entity; public class Menu { private Integer id; private String name; private double price; private Integer evaluate; public Integer getId() { return id; } public void setId(Integer id) { this.id = 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; } public Integer getEvaluate() { return evaluate; } public void setEvaluate(Integer evaluate) { this.evaluate = evaluate; } }
package entity; public class Order { private Integer id; private String name; private String info; private Integer date; private String adress; private double price; private OrderState orderState; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getInfo() { return info; } public void setInfo(String info) { this.info = info; } public Integer getDate() { return date; } public void setDate(Integer date) { this.date = date; } public String getAdress() { return adress; } public void setAdress(String adress) { this.adress = adress; } public double getPrice() { return price; } public void setPrice(double price) { this.price = price; } public OrderState getOrderState() { return orderState; } public void setOrderState(OrderState orderState) { this.orderState = orderState; } }
package entity; public enum OrderState { 已預訂,已完成 }
呈現給顧客的頁面:
package mainl; import java.util.Scanner; public class MyTest { public static void main(String[] args) { show(); } public static void show() { InitArray initArray = new InitArray(); Scanner scanner = new Scanner(System.in); System.out.println("歡迎使用吃貨聯盟訂餐系統"); 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("===================="); System.out.println("請選擇"); int num = scanner.nextInt(); switch (num) { case 1: initArray.showMenu(); returnMenu(); break; case 2: initArray.showOrder(); returnMenu(); break; case 3: initArray.writeOrder(); returnMenu(); break; case 4: initArray.deleteOrder(); returnMenu(); break; case 5: initArray.evaluate(); returnMenu(); break; case 6: System.out.println("退出程序"); System.exit(1); break; default: break; } } public static void returnMenu() { Scanner scanner = new Scanner(System.in); System.out.println("返回主菜單(0)"); int fanhui = scanner.nextInt(); if (fanhui == 0) { show(); } else { System.out.println("程序結束!"); } }
}
主頁面switch里
package mainl; import java.util.Scanner; import entity.Menu; import entity.Order; import entity.OrderState; public class InitArray { static Menu[] menu=new Menu[100]; static Order[] order=new Order[100]; Scanner scanner=new Scanner(System.in); static{ menu[0]=new Menu(); menu[0].setId(1); menu[0].setName("紅燒魚1"); menu[0].setPrice(32); menu[0].setEvaluate(0); menu[1] = new Menu(); menu[1].setId(2); menu[1].setName("紅燒魚2"); menu[1].setPrice(32); menu[1].setEvaluate(0); menu[2] = new Menu(); menu[2].setId(3); menu[2].setName("紅燒魚3"); menu[2].setPrice(32); menu[2].setEvaluate(0); } public viod showMenu(){ int num=0; System.out.println("***我要訂餐***"); System.out.println("請輸入訂餐人姓名:"); for(int i=0;i<InitArray.order.length;i++){ if(InitArray.order[i]==null){ InitArray.order[i]=new Order(); InitArray.order[i].setId(i+1); InitArray.order[i].setName(Scanner.next()); num=i; break; } } System.out.println("序號" + "\t" + "菜名" + "\t" + "單價"); for(Menu item:InitArray.menu){ if(item!=null){ system.out.println(item.getId()+"\t"+item.getName() +"\t"+item.getPrice()): } } System.out.println("請輸入你要點的菜品編號"); int id = scanner.nextInt(); String foodName = ""; double price = 0; for(Menu item:menu){ if(item.getId()==id){ foodname=item.getName(); price=item.getPrice(); break; } } System.out.println("請輸入選擇份數:"); Integer sum = scanner.nextInt(); InitArray.order[num].setInfo(foodName + " " + sum + "份"); System.out.println("請輸入送餐時間(送餐時間是從10點到20點整點):"); InitArray.order[num].setDate(scanner.nextInt()); System.out.println("請輸入送餐地址:"); InitArray.order[num].setAdress(scanner.nextLine()); InitArray.order[num].setPrice(sum * price); InitArray.order[num].setOrderState(OrderState.已預訂); System.out.println("訂餐成功"); System.out.println("您訂的是" + InitArray.order[num].getInfo()); System.out.println("送餐時間" + InitArray.order[num].getDate() + "點"); System.out.println("餐費" + InitArray.order[num].getPrice() + ",送餐費0元,總計" + InitArray.order[num].getPrice()); } public void showOrder() { System.out.println("***查看餐袋***"); System.out.println("序號" + "\t" + "訂餐人" + "\t" + "餐品信息" + "\t" + "送餐日期" + "\t" + "送餐地址" + "\t" + "總金額" + "\t" + "完成狀態"); for (Order item : InitArray.order) { if (item != null) { System.out.println(item.getId() + "\t" + item.getName() + "\t" + item.getInfo() + "\t" + item.getDate() + "\t" + item.getAdress() + "\t" + item.getPrice() + "\t" + item.getOrderState()); } } } public void writeOrder() { System.out.println("***簽收訂單***"); System.out.println("請選擇要簽收的訂單號"); Integer id = scanner.nextInt(); for (Order item : InitArray.order) { if (item.getId() == id) { if (item.getOrderState() == OrderState.已完成) { System.out.println("已經簽收不能重復簽收"); } else { item.setOrderState(OrderState.已完成); System.out.println("訂單簽收成功"); break; } } } } public void deleteOrder() { System.out.println("***刪除訂單***"); System.out.println("請選擇要刪除的訂單號"); Integer id = scanner.nextInt(); for (int i = 0; i < InitArray.order.length; i++) { if (InitArray.order[i] != null) { if (InitArray.order[i].getOrderState() == OrderState.已完成) { if (InitArray.order[i] == InitArray.order[id - 1]) { InitArray.order[i] = null; for (int j = i; j < InitArray.order.length; j++) { if (InitArray.order[j] != null) { if (InitArray.order[j + 1] != null) { InitArray.order[j] = InitArray.order[j + 1]; } } } System.out.println("刪除成功!"); } } else { System.out.println("訂單未簽收,不能刪除訂單"); break; } } } } public void evaluate() { System.out.println("***我要點贊***"); System.out.println("序號" + "\t" + "菜名" + "\t" + "單價" + "\t" + "點贊"); for (Menu item : InitArray.menu) { if (item != null) { System.out.println(item.getId() + "\t" + item.getName() + "\t" + item.getPrice() + "\t" + item.getEvaluate()); } } System.out.println("請輸入您要點贊的序號"); Integer id = scanner.nextI } }
方案二:List集合:
在我的entity類:
package cn.canting; public class entil { public String name; public double money; public int id; public int add; public int num; public double sumMoney; public String address; public int time; public int dian=0; public int dingdan; }
顯示給我用戶的頁面:
package cn.canting; import java.io.InputStream; import java.nio.channels.SelectableChannel; import java.util.ArrayList; import java.util.InputMismatchException; import java.util.Iterator; import java.util.List; import java.util.Scanner; import org.omg.CosNaming.NamingContextExtPackage.AddressHelper; public class can { static Scanner input = new Scanner(System.in); static Scanner input1 = new Scanner(System.in); public static List<entil> list = new ArrayList<entil>(); public static List<entil> listNew = new ArrayList<entil>(); public static void main(String[] args) { boolean flag = true; wwd(); } public static void wwd() { add(); Show(); System.out.println("請輸入要使用的功能"); boolean flag = input.hasNextInt(); while (!flag) { input = new Scanner(System.in); System.out.println("請輸入數字"); flag = input.hasNextInt(); } int num = input.nextInt(); num(num); } public static void Show() { 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.退出"); } public static void num(int num) { switch (num) { case 1: boolean flags = true; select(); int num2 = 0; do { System.out.println("請輸入要點的餐"); if (!input.hasNextInt()) { input = new Scanner(System.in); flags = false; } else { num2 = input.nextInt(); flags = true; if (num2 > 3) { boolean f = true; do { System.out.println("請輸入正確的點餐編號"); num2 = input.nextInt(); if (num2 <= 3 && num2 > 0) { f = false; } } while (f == true); System.out.println("請輸入要點餐的數量"); int num3 = input1.nextInt(); System.out.println("請輸入要送餐的地址"); String address = input1.next(); boolean flag = false; int time = 0; do { System.out.println("請輸入要送餐的時間(10點到22點之間)"); time = input1.nextInt(); if (time >= 10 && time <= 22) { flag = false; } else { System.out.println("請重新輸入"); flag = true; } } while (flag == true); for (entil item : list) { if (item.id == num2) { item.dingdan = listNew.size() + 1; item.address = address; item.time = time; item.num = num3; listNew.add(item); item.sumMoney = item.money * num3; } } System.out.println("訂餐成功"); } else { System.out.println("請輸入要點餐的數量"); int num3 = input1.nextInt(); System.out.println("請輸入要送餐的地址"); String address = input1.next(); boolean flag = false; int time = 0; do { System.out.println("請輸入要送餐的時間(10點到22點之間)"); time = input1.nextInt(); if (time >= 10 && time <= 22) { flag = false; } else { System.out.println("請重新輸入"); flag = true; } } while (flag == true); for (entil item : list) { if (item.id == num2) { item.dingdan = listNew.size() + 1; item.address = address; item.time = time; item.num = num3; listNew.add(item); item.sumMoney = item.money * num3; } } System.out.println("訂餐成功"); } } } while (flags == false); System.out.println("按0返回"); int zero = input.nextInt(); if (zero == 0) { Show(); System.out.println("請輸入要使用的功能"); int num5 = input.nextInt(); num(num5); } break; case 2: Showt(); input = new Scanner(System.in); System.out.println("按0返回"); zero = input.nextInt(); if (zero == 0) { Show(); System.out.println("請輸入要使用的功能"); int num5 = input.nextInt(); num(num5); } break; case 3: caozuo(); input = new Scanner(System.in); System.out.println("按0返回"); zero = input.nextInt(); if (zero == 0) { Show(); System.out.println("請輸入要使用的功能"); int num5 = input.nextInt(); num(num5); } break; case 4: input = new Scanner(System.in); delect(); System.out.println("按0返回"); zero = input.nextInt(); if (zero == 0) { Show(); System.out.println("請輸入要使用的功能"); int num5 = input.nextInt(); num(num5); } break; case 5: zan(); input = new Scanner(System.in); System.out.println("按0返回"); zero = input.nextInt(); if (zero == 0) { Show(); System.out.println("請輸入要使用的功能"); int num5 = input.nextInt(); num(num5); } break; case 6: System.out.println("退出成功"); break; default: break; } } public static void add() { entil en = new entil(); en.id = 1; en.name = "紅燒牛肉"; en.money = 25; en.sumMoney = 0; en.add = 0; entil en1 = new entil(); en1.id = 2; en1.name = "紅燒豬蹄"; en1.money = 20; en1.sumMoney = 0; en1.add = 0; entil en2 = new entil(); en2.id = 3; en2.name = "紅燒豬肉"; en2.money = 30; en2.sumMoney = 0; en2.add = 0; list.add(en); list.add(en1); list.add(en2); } public static void select() { System.out.println("本餐廳菜單****************************"); System.out.println("菜品編號\t\t菜品名稱\t\t菜品價格\t\t菜品點贊次數"); for (entil item : list) { System.out.println(item.id + "\t\t" + item.name + "\t\t" + item.money + "\t\t" + item.add); } } public static void Showt() { System.out .println("訂單編號\t\t菜品編號\t\t菜品名稱\t\t菜品價格\t\t送餐地址\t\t點餐數量\t\t總價"); for (entil item : listNew) { if (item.dian == 1) { System.out.println(item.dingdan + "\t\t" + item.id + "\t\t" + item.name + "\t\t" + item.money + "\t\t" + item.address + "\t\t" + item.num + "\t\t" + item.sumMoney); } } } public static void caozuo() { System.out.println("未提交菜單"); System.out .println("訂單編號\t\t菜品編號\t\t菜品名稱\t\t菜品價格\t\t送餐地址\t\t點餐數量\t\t總價"); for (entil item : listNew) { if (item.dian == 0) { System.out.println(item.dingdan + "\t\t" + item.id + "\t\t" + item.name + "\t\t" + item.money + "\t\t" + item.address + "\t\t" + item.num + "\t\t" + item.sumMoney); } } System.out.println("請選擇提交的訂單編號"); int num = input.nextInt(); int num2 = 0; for (entil item : listNew) { if (item.dian == 0) { if (num == item.dingdan) { item.dian = 1; num2 = 1; } } } if (num2 == 0) { System.out.println("無此編號"); } else { System.out.println("提交成功"); } } public static void delect() { for (entil item : listNew) { if (item.dian == 1) { System.out.println(item.dingdan + "\t\t" + item.id + "\t\t" + item.name + "\t\t" + item.money + "\t\t" + item.address + "\t\t" + item.num + "\t\t" + item.sumMoney); } } System.out.println("請選擇刪除的訂單號碼"); int num = input.nextInt(); int num2 = 0; for (entil item : listNew) { if (item.dian == 0) { if (num == item.dingdan) { listNew.remove(item); num2 = 1; } } } if (num2 == 0) { System.out.println("無此編號"); } else { System.out.println("刪除成功"); } } public static void zan() { System.out.println("本餐廳菜單****************************"); System.out.println("菜品編號\t\t菜品名稱\t\t菜品價格\t\t菜品點贊次數"); for (entil item : list) { System.out.println(item.id + "\t\t" + item.name + "\t\t" + item.money + "\t\t" + item.add); } System.out.println("請選擇點贊的商品編號"); int num = input.nextInt(); for (entil item : list) { if (item.id == num) { item.add = item.add + 1; } } System.out.println("點贊成功,是否繼續(0退出,其他任意數字鍵繼續)"); int num2 = input.nextInt(); if (num2 != 0) { zan(); } } }
孩子們不切實際的
燃燒着純粹的心靈