吃貨聯盟訂餐系統
阿新 • • 發佈:2017-08-21
每次 定義 ole 使用數組 退出 scanner 訂餐 equals class
實現菜單切換:
System.out.println("歡迎使用吃貨聯盟訂單系統"); Scanner input = new Scanner(System.in); int num=-1//用戶輸入0返回主菜單,否則退出系統; bolean isExit=false//標誌用戶是否退出系統; do{ //顯示菜單 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.print("請選擇:"); int choose=input.nextInt(); if(!isExit){ System.out.print("輸入0返回"); num=input.nextInt(); }else{ break; } }while(num==0);
定義一些變量:
String[] cai = { "紅燒帶魚", "魚香肉絲", "時令鮮蔬" };// 菜品 String[] names = new String[4];// 訂餐人 int[] nums = new int[4];// 份數 int[] time = new int[4];// 時間 String[] site = new String[4];// 地址 String[] state = new String[] { "預定", "預定", "預定", "預定" };//訂單狀態 double[] mond = { 38, 20, 10 };// 單價 int a = -1;// 輸入0返回 int cd;// 輸入菜單錯誤,重新選擇 double[] b = new double[4];// 總金額 int[] zan = new int[3];// 點贊 int i = 0; int e = 0; int qian;
選擇1:我要訂餐
case 1: for (; i < names.length;) { System.out.println("****我要訂單****"); System.out.println("請輸入訂單人姓名:");//使用數組記錄訂單人名稱 names[i] = bdqn.next(); do { System.out.println("序號\t" + "菜單\t" + "單價" + "\t點贊"); //利用for循環輸出(序號-菜單-單價-點贊) for (int j = 0; j < cai.length; j++) { System.out.println((j + 1) + "\t" + cai[j] + "\t" + mond[j] + "\t" + zan[j]); } System.out.println("請選擇菜單:"); cd = bdqn.nextInt(); //判斷輸入的菜單數是否溢出菜單數 if (cd > 3 || cd < 1) { System.out.println("沒有此菜品!請重新選擇:"); } } while (cd > 3 || cd < 1); System.out.println("送餐份數:"); nums[i] = bdqn.nextInt(); do { System.out.println("請輸入送餐時間(10至20點):"); time[i] = bdqn.nextInt(); //判斷此時間營不營業 if (time[i] > 20 || time[i] < 10) { System.out.println("此時間不營業!請重新輸入:"); } } while (time[i] > 20 || time[i] < 10); System.out.println("請輸入送餐地址:"); site[i] = bdqn.next(); System.out.println("成功預定!"); System.out.println("您訂的是:" + cai[i] + nums[i]); System.out.println("送餐時間:" + time[i]); //定義一個變量用來儲存送餐費,然後進行判斷 double song = 0; b[i] = mond[i] * nums[i] + song; if (b[i] < 50) { song = 5; } System.out.println("餐費:" + (b[i] - song) + "元,送餐費:" + song + "元,總計:" + b[i]); break; } //判斷餐袋是否已滿,未滿再次執行時,錄入第二次的訂單情況 if (i >= site.length) { System.out.println("餐袋已滿!"); } else { i++; } break;
選擇2:查看菜袋
case 2: System.out.println("****查看餐袋****"); System.out.println("序號\t訂餐人\t餐品信息\t送餐時間\t送餐地址\t總金額\t訂單狀態"); //利用for循環輸出(序號-訂單人-餐品信息-送餐時間-送餐地址-總金額-訂單狀態) for (int j = 0; j < i; j++) { System.out.println((j + 1) + "\t" + names[j] + "\t" + cai[j] + nums[j] + "份\t" + time[j] + "\t" + site[j] + "\t" + b[j] + "\t" + state[j]); } break;
選擇3:簽收訂單
case 3: System.out.println("****簽收訂單****"); do { System.out.println("請輸入您要簽收的訂單:"); qian = bdqn.nextInt(); //輸入要簽收的訂單,判斷訂單是否存在和是否已簽收,若未簽則執行簽收 if (e == qian) { System.out.println("訂單已簽收,不能再次簽收!"); } else if (qian <= i) { System.out.println("簽收成功!"); state[qian - 1] = "簽收"; e = qian; break; } else if (qian > i) { System.out.println("沒有該訂單,請重新輸入您要簽收的訂單:"); } } while (qian > i); break;
選擇4:刪除訂單
case 4: System.out.println("***刪除訂單****"); System.out.println("請輸入您要刪除的訂單:"); int c = bdqn.nextInt(); //輸入要刪除的訂單,並判斷是否簽收(只有簽收成功,才能執行刪除,刪除時所有關於訂餐情況下標-1) if (c <= i) { if (state[c - 1].equals("簽收")) { for (int j = c - 1; j < i; j++) { if (j + 1 > 3) {// 預防數組溢出 break; } names[j] = names[j + 1]; cai[j] = cai[j + 1]; nums[j] = nums[j + 1]; time[j] = time[j + 1]; site[j] = site[j + 1]; b[j] = b[j + 1]; state[j] = state[j + 1]; } System.out.println("刪除成功!"); i--; e = 0; } else { System.out.println("您選擇的訂單,未簽收,不能刪除!"); } } else { System.out.println("沒有此訂單!"); } break;
選擇5:我要點贊
case 5: System.out.println("****我要點贊****"); int l; do { System.out.println("請輸入您要點贊的菜單:"); l = bdqn.nextInt(); switch (l) {// 每次選擇點贊該商品+1 case 1: zan[0]++; System.out.println("點贊成功!"); break; case 2: zan[1]++; System.out.println("點贊成功!"); break; case 3: zan[2]++; System.out.println("點贊成功!"); break; default: System.out.println("無此商品序號!"); break; } } while (l > cai.length); break;
選擇6:系統退出
case 6: System.out.println("退出系統!"); break;
選擇其他時,顯示請重新輸入:
default: System.out.println("您輸入的數字沒有相符合的系統,請重新選擇:"); break;
吃貨聯盟訂餐系統:(整過程)
import java.util.Scanner; public class Foodie { /** * @param args */ public static void main(String[] args) { Scanner bdqn = new Scanner(System.in); String[] cai = { "紅燒帶魚", "魚香肉絲", "時令鮮蔬" };// 菜品 String[] names = new String[4];// 訂餐人 int[] nums = new int[4];// 份數 int[] time = new int[4];// 時間 String[] site = new String[4];// 地址 String[] state = new String[] { "預定", "預定", "預定", "預定" };// 訂單狀態 double[] mond = { 38, 20, 10 };// 單價 int a = -1;// 輸入0返回 int cd;// 輸入菜單錯誤,重新選擇 double[] b = new double[4];// 總金額 int[] zan = new int[3];// 點贊 int i = 0; int e = 0; int qian; do { System.out.println("\n歡迎使用“吃貨聯盟訂餐系統”"); 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 choose = bdqn.nextInt(); switch (choose) { case 1: for (; i < names.length;) { System.out.println("****我要訂單****"); System.out.println("請輸入訂單人姓名:");//使用數組記錄訂單人名稱 names[i] = bdqn.next(); do { System.out.println("序號\t" + "菜單\t" + "單價" + "\t點贊"); //利用for循環輸出(序號-菜單-單價-點贊) for (int j = 0; j < cai.length; j++) { System.out.println((j + 1) + "\t" + cai[j] + "\t" + mond[j] + "\t" + zan[j]); } System.out.println("請選擇菜單:"); cd = bdqn.nextInt(); //判斷輸入的菜單數是否溢出菜單數 if (cd > 3 || cd < 1) { System.out.println("沒有此菜品!請重新選擇:"); } } while (cd > 3 || cd < 1); System.out.println("送餐份數:"); nums[i] = bdqn.nextInt(); do { System.out.println("請輸入送餐時間(10至20點):"); time[i] = bdqn.nextInt(); //判斷此時間營不營業 if (time[i] > 20 || time[i] < 10) { System.out.println("此時間不營業!請重新輸入:"); } } while (time[i] > 20 || time[i] < 10); System.out.println("請輸入送餐地址:"); site[i] = bdqn.next(); System.out.println("成功預定!"); System.out.println("您訂的是:" + cai[i] + nums[i]); System.out.println("送餐時間:" + time[i]); //定義一個變量用來儲存送餐費,然後進行判斷 double song = 0; b[i] = mond[i] * nums[i] + song; if (b[i] < 50) { song = 5; } System.out.println("餐費:" + (b[i] - song) + "元,送餐費:" + song + "元,總計:" + b[i]); break; } //判斷餐袋是否已滿,未滿再次執行時,錄入第二次的訂單情況 if (i >= site.length) { System.out.println("餐袋已滿!"); } else { i++; } break; case 2: System.out.println("****查看餐袋****"); System.out.println("序號\t訂餐人\t餐品信息\t送餐時間\t送餐地址\t總金額\t訂單狀態"); //利用for循環輸出(序號-訂單人-餐品信息-送餐時間-送餐地址-總金額-訂單狀態) for (int j = 0; j < i; j++) { System.out.println((j + 1) + "\t" + names[j] + "\t" + cai[j] + nums[j] + "份\t" + time[j] + "\t" + site[j] + "\t" + b[j] + "\t" + state[j]); } break; case 3: System.out.println("****簽收訂單****"); do { System.out.println("請輸入您要簽收的訂單:"); qian = bdqn.nextInt(); //輸入要簽收的訂單,判斷訂單是否存在和是否已簽收,若未簽則執行簽收 if (e == qian) { System.out.println("訂單已簽收,不能再次簽收!"); } else if (qian <= i) { System.out.println("簽收成功!"); state[qian - 1] = "簽收"; e = qian; break; } else if (qian > i) { System.out.println("沒有該訂單,請重新輸入您要簽收的訂單:"); } } while (qian > i); break; case 4: System.out.println("***刪除訂單****"); System.out.println("請輸入您要刪除的訂單:"); int c = bdqn.nextInt(); //輸入要刪除的訂單,並判斷是否簽收(只有簽收成功,才能執行刪除,刪除時所有關於訂餐情況下標-1) if (c <= i) { if (state[c - 1].equals("簽收")) { for (int j = c - 1; j < i; j++) { if (j + 1 > 3) {// 預防數組溢出 break; } names[j] = names[j + 1]; cai[j] = cai[j + 1]; nums[j] = nums[j + 1]; time[j] = time[j + 1]; site[j] = site[j + 1]; b[j] = b[j + 1]; state[j] = state[j + 1]; } System.out.println("刪除成功!"); i--; e = 0; } else { System.out.println("您選擇的訂單,未簽收,不能刪除!"); } } else { System.out.println("沒有此訂單!"); } break; case 5: System.out.println("****我要點贊****"); int l; do { System.out.println("請輸入您要點贊的菜單:"); l = bdqn.nextInt(); switch (l) {// 每次選擇點贊該商品+1 case 1: zan[0]++; System.out.println("點贊成功!"); break; case 2: zan[1]++; System.out.println("點贊成功!"); break; case 3: zan[2]++; System.out.println("點贊成功!"); break; default: System.out.println("無此商品序號!"); break; } } while (l > cai.length); break; case 6: System.out.println("退出系統!"); break; default: System.out.println("您輸入的數字沒有相符合的系統,請重新選擇:"); break; } if (choose == 6) { break; } System.out.println("輸入0返回:"); a = bdqn.nextInt(); } while (a == 0); } }
吃貨聯盟訂餐系統