吃貨聯盟
阿新 • • 發佈:2017-05-10
light highlight 訂單狀態 div true new string類型 void imp
public class OrderMsg { public static void main(String[] args) throws Exception { /** * 訂餐人姓名、選擇菜品、送餐時間、送餐地址、訂單狀態、總金額 * 01.創建對應的數組 * 02.數組的初始化 * 03.顯示菜單 * 04.根據用戶的選擇進去指定的模塊 */ String[] names = new String[6]; // 訂餐人姓名 String[] dishMsgs = new String[6];// 選擇菜品 int[] numbers = new int[6];// 菜品份數 Date[] dates = new Date[6]; // 送餐時間 String[] times = new String[6]; // 送餐時間對應的String類型的日期 String[] addresses = new String[6];// 送餐地址 int[] states = new int[6];// 訂單狀態 0:已經預定 1:已經完成 double[] sumPrices = new double[6];// 總金額 // 初始化數據 names[0] = "小黑"; dishMsgs[0] = "八仙過海"; numbers[0] = 3; dates[0] = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("hh:mm:ss"); times[0] = sdf.format(dates[0]); addresses[0] = "天堂路1號院"; states[0] = 1; sumPrices[0] = 5000; names[1] = "小白"; dishMsgs[1] = "佛跳墻"; numbers[1] = 5; dates[1] = new Date(); times[1] = sdf.format(dates[1]); addresses[1] = "地域路2號院"; states[1] = 1; sumPrices[1] = 500; // 初始化用戶可以選擇的菜 String[] dishNames = { "八仙過海", "佛跳墻", "松鼠魚", "紅燒帶魚", "時令蔬菜", "辣土豆絲" }; // 定義每個菜的單價 double[] prices = { 88, 78.8, 58.0, 28.5, 50, 80 }; // 定義點贊 的數組 int[] praiseNums = new int[6]; praiseNums[0] = 5; praiseNums[1] = 10; System.out.println("***********歡迎進入《吃貨聯盟》點餐系統***********"); Scanner scanner = new Scanner(System.in); int num = -1; // 如果用戶輸入的是0 默認返回主菜單 boolean isExit = false;// 定義一個標記 來標識 用戶是否退出系統 true:退出 do { // 顯示菜單供用戶選擇 System.out.println("當前系統時間是:" + sdf.format(new Date())); 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 = scanner.nextInt(); // 根據用戶的選擇執行不同的功能 switch (choose) { case 1: System.out.println("************我要訂餐************"); // 定義一個標記判斷餐帶是否已滿 boolean addFlag = false; for (int i = 0; i < names.length; i++) { // 訂餐人的集合 if (names[i] == null) { addFlag = true; System.out.println("請輸入訂餐人的姓名:"); names[i] = scanner.next(); // 獲取訂餐人的姓名 System.out.println("您可以選擇下列的菜品:"); System.out.println("序號\t\t\t菜名\t\t\t單價\t\t\t點贊數"); for (int j = 0; j < dishNames.length; j++) { // 遍歷菜品 String praiseNum = (praiseNums[j] > 0) ? praiseNums[j] + "個贊" : ""; System.out.println(j + 1 + "\t\t\t" + dishNames[j] + "\t\t\t" + prices[j] + "\t\t\t" + praiseNum); } // 用戶開始點菜 System.out.println("請您選擇菜品的編號:"); int chooseDishName = scanner.nextInt(); System.out.println("請您輸入點餐的份數:"); int number = scanner.nextInt(); System.out.println("請您輸入送餐的地址:"); String address = scanner.next(); System.out.println("請您輸入送餐的時間:(時:分:秒)"); String time = scanner.next(); /** * 根據用戶的餐費 判斷是否收取送餐費 大於60免送餐費 * 01.獲取用戶點的菜的單價 * 02.獲取總金額 * 03.判斷 */ double sumPrice = prices[chooseDishName - 1] * number; double price = (sumPrice > 60) ? 0 : 6; System.out.println("恭喜您訂餐成功!"); System.out.println("您定的菜品是:" + dishNames[chooseDishName - 1] + "\t" + number + "份"); System.out.print("餐費:" + sumPrice); System.out.print("\t送餐費:" + price); System.out.println("\t總費用:" + (price + sumPrice)); // 向數組中增加數據 times[i] = sdf.format(sdf.parse(time)); // 時間 addresses[i] = address; // 地址 sumPrices[i] = (sumPrice + price); // 總金額 dishMsgs[i] = dishNames[chooseDishName - 1]; // 定的菜品 states[i] = 0; // 訂餐的狀態 numbers[i] = number; // 份數 break; } } if (!addFlag) {// 餐袋已經滿了 System.out.println("餐袋已經滿了"); } break; case 2: System.out.println("************查看餐袋************"); /** * 顯示 * 編號 訂餐人 菜品(份數) 送餐時間 送餐地址 總金額 狀態 */ System.out .println("編號\t\t訂餐人\t\t菜品(份數)\t\t送餐時間 \t\t送餐地址\t\t總金額\t\t狀態\t\t點贊數量"); for (int i = 0; i < names.length; i++) { if (names[i] != null) { // 有人訂餐 的顯示 String state = (states[i] == 0) ? "已經預定" : "已經完成"; // 獲取狀態 String time = times[i]; // 獲取時間 String sumPrice = sumPrices[i] + "元"; // 總金額 String address = addresses[i]; // 地址 String dishMsg = dishMsgs[i]; // 菜品 int count = numbers[i]; System.out.println(i + 1 + "\t\t" + names[i] + "\t\t" + dishMsg + "(" + count + ")" + "\t\t" + time + " \t\t" + address + "\t\t" + sumPrice + "\t\t" + state + "\t\t" + praiseNums[i]); } } break; case 3: System.out.println("************簽收訂單************"); /** * 01.狀態為已經完成!不需要簽收 * 02.狀態為已經預定!需要簽收 * 03.沒有指定的訂單,不能簽收 */ System.out.println("請您輸入需要簽收的訂單編號:"); int sign = scanner.nextInt(); // 定義一個標記 來判斷訂單是否被簽收 int flag = 0; for (int i = 0; i < names.length; i++) { if (names[i] != null && states[i] == 0) {// 01.有訂單 可以簽收 states[i] = 1;// 改變狀態 flag = 1; break; // 必須退出 否則 後續的都會變成簽收 } else if (names[i] != null && states[i] == 1) {// 02.有訂單 flag = 2; } } if (flag == 1) { System.out.println("訂單已經簽收!"); } else if (flag == 2) { System.out.println("訂單不需要重復簽收!"); } else { System.out.println("沒有指定的訂單!請您核實!"); } break; case 4: System.out.println("************刪除訂單************"); System.out.println("請您輸入需要刪除的訂單編號:"); int delNum = scanner.nextInt(); // 定義一個標記 來判斷訂單是否被簽收以及是否存在 int delFlag = 0; for (int i = 0; i < names.length; i++) { if (names[i] != null && states[delNum - 1] == 1) { // 可以刪除 // 有指定的訂單 // 狀態是已經完成 // 刪除位置 之後的所有元素 依次前移 for (int j = delNum - 1; j < names.length - 1; j++) { names[j] = names[j + 1]; // 訂餐人 dishMsgs[j] = dishMsgs[j + 1];// 菜品 times[j] = times[j + 1];// 時間 addresses[j] = addresses[j + 1];// 地址 states[j] = states[j + 1];// 狀態 numbers[j] = numbers[j + 1];// 份數 } delFlag = 1; break; } else if (names[i] != null && states[i] == 0) { // 訂單還沒有簽收 delFlag = 2; } } if (delFlag == 1) { System.out.println("訂單已經被刪除"); } else if (delFlag == 2) { System.out.println("訂單還沒有簽收 不允許刪除!"); } else { System.out.println("沒有找到指定的訂單!"); } break; case 5: System.out.println("************我要點贊***************"); System.out.println("編號\t\t\t菜名\t\t\t價格"); for (int i = 0; i < dishNames.length; i++) { // 遍歷所有的菜名 String price = prices[i] + "元"; // 獲取價格 String name = dishNames[i]; System.out.println(i + 1 + "\t\t\t" + name + "\t\t\t" + price); } System.out.println("請您輸入點贊的菜品編號:"); int chooseNum = scanner.nextInt(); praiseNums[chooseNum - 1]++;// 點贊數加+1 System.out.println("謝謝參與!點贊成功!"); break; case 6: // 退出系統 isExit = true; break; default: // 退出系統 isExit = true; break; } if (!isExit) { // 默認這是不退出 System.out.println("輸入0返回主菜單!"); num = scanner.nextInt(); } else { break; // 退出系統 } } while (num == 0); System.out.println("謝謝您的光臨!!!!!"); } }
吃貨聯盟