1. 程式人生 > >吃貨聯盟訂餐系統

吃貨聯盟訂餐系統

每次 定義 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);
    }
}

吃貨聯盟訂餐系統