1. 程式人生 > >房上的貓:吃貨聯盟項目

房上的貓:吃貨聯盟項目

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 void
System() {// 首頁 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("謝謝使用,歡迎下次光臨!");
    }

房上的貓:吃貨聯盟項目