房上的貓:吃貨聯盟項目
阿新 • • 發佈:2017-08-25
back println bsp -1 調用 之間 要點 public ()
一.首先先定義部分成員變量:
String[] name = new String[4];// 訂餐人 String[] greens = new String[4];// 儲存菜品名稱 String[] green = { "紅燒帶魚", "魚香肉絲", "時令鮮蔬" };// 菜品 int[] num = new int[4];// 份數 int[] time = new int[4];// 時間 String[] site = new String[4];// 地址 String[] state = new String[] { "預定", "預定", "預定", "預定" };//訂單狀態 double[] money = { 38, 20, 10 };// 單價 int[] number = new int[3];// 點贊數 double give;// 送餐費 double[] moneys = new double[4];// 總金額 Scanner bdqn = new Scanner(System.in);// 掃描儀 int back;// 選擇返回首頁 int i;// 數組下標 int sign;// 簽收訂單 int have;// 判斷已簽收訂單
二.創建首頁方法(為了方便調用,代碼清晰):
public voidSystem() {// 首頁 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("**********************************************"); }
三.編寫訂餐系統:
public void Order() {// 訂餐系統 int bh = 0; for (; i < time.length;) {// 各數組的儲存下標 System.out.print("請輸入訂餐人姓名:"); name[i] = bdqn.next();// 記錄訂餐人 do { System.out.println("序號\t菜名\t單價\t點贊數"); for (int j = 0; j < 3; j++) {// 循環輸出菜單 System.out.println((j + 1) + "\t" + green[j] + "\t" + money[j] + "\t" + number[j]); } System.out.print("請選擇您要點的菜品編號:"); bh = bdqn.nextInt(); if (bh > 3 || bh < 1) {// 判斷選菜 System.out.println("無此編號,請重新選擇!"); } } while (bh > 3 || bh < 1);// 無選擇編號,循環重新選擇菜單 greens[i] = green[bh - 1];// 記錄菜品 System.out.print("請選擇您需要的份數:"); num[i] = bdqn.nextInt();// 記錄份數 System.out.print("請輸入送餐時間(10-20之間的整數):"); do { time[i] = bdqn.nextInt();// 記錄送餐時間 if (time[i] < 10 || time[i] > 20) { System.out.print("此時間不營業,請重新輸入(10-20之間的整數):"); } } while (time[i] < 10 || time[i] > 20);// 不在送餐時間,則循環重新輸入時間 System.out.print("請輸入送餐地址:"); site[i] = bdqn.next();// 記錄送餐地址 System.out.println("訂餐成功!"); System.out.println("您訂的是:" + greens[i] + "" + num[i] + "份"); System.out.println("送餐時間:" + time[i] + "點"); moneys[i] = money[bh - 1] * num[i] + give;// 送餐費的判斷依據 if (moneys[i] < 50) {// 判斷是否有送餐費 give = 5; } System.out.println("餐費:" + (moneys[i] - give) + "元,送餐費:" + give + "元,總計:" + moneys[i] + "元。"); break; } if (i >= name.length) {// 餐袋限額為4,裝滿則輸出該語句 System.out.println("餐袋已滿!"); } else { i++; } }
四.編寫餐袋系統:
public void Look() {// 餐袋系統 for (int j = 0; j < i; j++) {// 循環輸出餐袋,i為訂餐數,超出i則不輸出,防止輸出空值 System.out.println((j + 1) + "\t" + name[j] + "\t" + greens[j] + num[j] + "份\t" + time[j] + "點\t" + site[j] + "\t" + moneys[j] + "\t" + state[j]); } }
五.編寫簽收系統:
public void Sign() {// 簽收系統 System.out.print("請選擇要簽收的訂單序號:"); sign = bdqn.nextInt(); if (sign == have) {// 判斷,如果簽收後,提示該語句 System.out.println("您選擇的訂單已完成簽收,不能再次簽收!"); } else if (sign <= i) {// 有選擇的訂單,則賦值“簽收” have = sign;// 該訂單簽收後,將簽收的序列號儲存 state[sign - 1] = "簽收"; System.out.println("訂單簽收成功!"); } else { System.out.println("無此訂單!"); } }
六.編寫刪除系統:
public void Delete(int delete) {// 刪除系統 if (delete <= i) {// 判斷是否有該訂單 if (state[delete - 1].equals("簽收")) {// 判斷該訂單是否簽收過 for (int t = delete - 1; t < (i - 1); t++) {// 元素前移,條件為刪除的訂單{(i-1)是為了防止數組溢出} name[t] = name[t + 1]; greens[t] = greens[t + 1]; num[t] = num[t + 1]; time[t] = time[t + 1]; site[t] = site[t + 1]; moneys[t] = moneys[t + 1]; state[t] = state[t + 1]; } System.out.println("刪除訂單成功!"); i--; have = 0; } else { System.out.println("您選擇的訂單未簽收,不能刪除!"); } } else { System.out.println("無此訂單!"); } }
七.編寫點贊系統:
public void Like(int good) {// 點贊系統 switch (good) {// 每次選擇點贊該商品+1 case 1: number[0]++; System.out.println("點贊成功!"); break; case 2: number[1]++; System.out.println("點贊成功!"); break; case 3: number[2]++; System.out.println("點贊成功!"); break; default: System.out.println("無此商品序號!"); break; } }
八.將各系統嵌套結合:
public void shown() {// 整體框架 do { give = 0; System();// 首頁 System.out.print("請選擇:"); int select = bdqn.nextInt(); if (select == 6) {// 退出 break; } switch (select) {// 選擇功能 case 1:// 訂餐 System.out.println("***我要訂餐***"); Order(); break; case 2:// 餐袋 System.out.println("***查看餐袋***"); System.out.println("序號\t訂餐人\t餐品信息\t送餐時間\t送餐地址\t總金額\t訂單狀態"); Look(); break; case 3:// 簽收 System.out.println("***簽收訂單***"); Sign(); break; case 4:// 刪除 System.out.println("***我要訂餐***"); System.out.print("請輸入要刪除的訂單號:"); int scl = bdqn.nextInt(); Delete(scl); break; case 5:// 點贊 System.out.println("***刪除訂單***"); System.out.print("請選擇您要點贊的菜品序號:"); int good = bdqn.nextInt(); Like(good); break; default: System.out.println("您輸入的數字沒有相符合的系統,請重新選擇:"); break; } System.out.print("輸入0返回:"); back = bdqn.nextInt(); } while (back == 0); }
九.程序入口,main()方法輸出整體框架:
public static void main(String[] args) { Ordering pack = new Ordering(); pack.shown(); System.out.println("謝謝使用,歡迎下次光臨!"); }
房上的貓:吃貨聯盟項目