吃貨聯盟訂餐系統


import java.util.Scanner;

public class Ordering {
    public static void main(String[] args) {
        //訂單數據主體
        int[] orderIds = new int[4];
        String[] customers = new String[4];
        String[] dishNames = new String[4];
        int[] times = new int[4];
        String[] adresses = new String[4];
        int[] numbers = new int[4];
        int[] totalPrice = new int[4];
        int[] status = new int[4];
        
        //初始化兩條訂單
        orderIds[0] = 1;
        customers[0] = "張三";
        dishNames[0] = "紅燒帶魚";
        times[0] = 13;
        adresses[0] = "天泰二路9號";
        numbers[0] = 2;
        totalPrice[0] = 60;
        status[0] = 1;
        
        orderIds[1] = 2;
        customers[1] = "李四";
        dishNames[1] = "燒鴨";
        times[1] = 13;
        adresses[1] = "天泰二路9號";
        numbers[1] = 1;
        totalPrice[1] = 42;
        status[1] = 1;
        
        //餐品數據主體
        int[] dishIds = {1,2};
        String[] dishNames1 = {"紅燒帶魚","燒鴨"};
        int[] price = {30,36};
        int[] totalPraises = {30,36};
        
//        int chooseNum = 0;
        int chooseNum;
        boolean isExit = false;        //通過標志位標記,確定是否退出
        Scanner input = new Scanner(System.in);
        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("請輸入功能編號:");
            //每個break僅跳出最內層的循環體,一般用在循環體中符合條件的條件操作最末處
            chooseNum = input.nextInt();
            switch (chooseNum){
                case 1:
                    System.out.println("1.我要訂餐");
                    try{
                        boolean isAddFind = false;
                        int orderIndex = -1;
                        for(int i=0;i<dishNames.length;i++){
                            if(dishNames[i]==null){
                                isAddFind = true;
                                orderIndex = i;
                                //顯示菜品
                                System.out.println("菜品編號\t菜品名稱\t單價\t點贊數");
                                for(int j=0;j<dishNames1.length;j++){
                                    System.out.println(dishIds[j]+"\t"+dishNames1[j]+"\t"+price[j]+"元"+"\t"+totalPraises[j]+"贊");
                                }
                                System.out.print("選擇菜品序號:");
                                chooseNum = input.nextInt();
                                for(int j=0;j<dishNames1.length;j++){
                                    if(chooseNum==dishIds[j]){
                                        System.out.print("請輸入份數:");
                                        int number = input.nextInt();
                                        System.out.print("請輸入訂單人姓名:");
                                        String customer = input.next();
                                        System.out.print("請輸入10~20之間的整數送餐時間:");
                                        int time = input.nextInt();
                                        while(time>20 || time<10){
                                            System.out.print("請重新輸入送餐時間:");
                                            time = input.nextInt();
                                        }
                                        System.out.print("請輸入送餐地址:");
                                        String adresse = input.next();
                                        //顯示訂單信息
                                        int orderId = orderIndex + 1;
                                        String dishName = dishNames1[j];
                                        int dishPrice = price[j]*number;
                                        int song = dishPrice > 50 ? 0:6;
                                        totalPrice[orderIndex] = dishPrice + song;
                                        System.out.println("*****************訂單信息********************");
                                        System.out.println("訂單人姓名:"+customer);
                                        System.out.println("菜品名稱:"+dishName);
                                        System.out.println("份數:"+number);
                                        System.out.println("送餐時間:"+time+"點");
                                        System.out.println("送餐地址:"+adresse);
                                        System.out.println("菜品金額:"+dishPrice);
                                        System.out.println("送餐費:"+song);
                                        System.out.println("總額:"+totalPrice[orderIndex]);
                                        orderIds[orderIndex] = orderId;
                                        customers[orderIndex] = customer;
                                        dishNames[orderIndex] = dishName;
                                        times[orderIndex] = time;
                                        adresses[orderIndex] = adresse;
                                        numbers[orderIndex] = number;
                                        status[orderIndex] = 0;
                                        //遍歷到符合條件的記錄再跳出,for循環首層不宜跳出
                                        break;
                                    }
                                }
                                //遍歷到符合條件的記錄再跳出,for循環首層不宜跳出
                                break;
                            }
                        }
                        if(!isAddFind){
                            System.out.println("對不起,訂單已滿!");
                        }
                    }catch(Exception e){
                        e.printStackTrace();
                    }
                    break;
                case 2:
                    System.out.println("2.查看餐袋");
                    try{
                        System.out.println("訂單編號\t客戶名稱\t菜品名稱\t配送時間\t配送地址\t\t份數\t總金額\t訂單狀態");
                        for(int i=0;i<dishNames.length;i++){
                            if(dishNames[i]!=null){
                                String sta = status[i]==0 ? "已預訂":"已簽收"; 
                                System.out.println(orderIds[i]+"\t"+customers[i]+"\t"+dishNames[i]+"\t"+times[i]+"點"+"\t"+adresses[i]+"\t"+numbers[i]+"份"+"\t"+totalPrice[i]+"元"+"\t"+sta);
                            }
                        }
                    }catch(Exception e){
                        e.printStackTrace();
                    }
                    
                    break;
                case 3:
                    System.out.println("3.刪除訂單");
                    System.out.print("請輸入要刪除的訂單編號:");
                    chooseNum = input.nextInt();
                    boolean isDelFind = false;
                    for(int i=0;i<dishNames.length;i++){
                        System.out.println(status[i]);
                        if(chooseNum==orderIds[i] && status[i]==1){
                            isDelFind = true;
                            for(int j=chooseNum;j<dishNames.length;j++){
                                orderIds[j-1] = orderIds[j];
                                customers[j-1] =customers[j];
                                dishNames[j-1] = dishNames[j];
                                times[j-1] = times[j];
                                adresses[j-1] = adresses[j];
                                numbers[j-1] = numbers[j];
                                totalPrice[j-1] = totalPrice[j];
                                status[j-1] = status[j];
                            }
                            orderIds[dishNames.length-1] = 0;;
                            customers[dishNames.length-1] =null;
                            dishNames[dishNames.length-1] = null;
                            times[dishNames.length-1] = 0;
                            adresses[dishNames.length-1] = null;
                            numbers[dishNames.length-1] = 0;
                            totalPrice[dishNames.length-1] = 0;
                            status[dishNames.length-1] = 0;
                            break;
                        }else if(chooseNum==orderIds[i] && status[i]==0){
                            isDelFind = true;
                            System.out.println("對不起,該訂單還未簽收,不能刪除!");
                            break;
                        }
                    }
                    if(!isDelFind){
                        System.out.println("沒有找打要刪除的訂單!");
                    }
                    break;
                case 4:
                    System.out.println("4.簽收訂單");
                    System.out.print("請輸入要簽收的訂單編號:");
                    chooseNum = input.nextInt();
                    boolean isGetFind = false;
                    for(int i=0;i<dishNames.length;i++){
                        if(chooseNum==orderIds[i] && status[i]==0){
                            isGetFind = true;
                            status[chooseNum-1] = 1;
                            System.out.println("訂單簽收成功!");
                            break;
                        }else if(chooseNum==orderIds[i] && status[i]==1){
                            isGetFind = true;
                            System.out.println("該訂單已簽收過,不能再次簽收!");
                            break;
                        }
                    }
                    if(!isGetFind){
                        System.out.println("對不起,沒有找到要簽收的訂單!");
                    }
                    break;
                case 5:
                    System.out.println("5.我要點贊");
                    boolean isZanFind = false;
                    System.out.println("菜品序號\t菜品名稱\t單價\t點贊數");
                    for(int i=0;i<dishNames1.length;i++){
                        if(dishNames1[i]!=null){
                            System.out.println(dishIds[i]+"\t"+dishNames1[i]+"\t"+price[i]+"元\t"+totalPraises[i]+"贊\t");
                        }
                    }
                    System.out.print("請輸入要點贊的菜品序號:");
                    chooseNum = input.nextInt();
                    for(int i=0;i<dishNames1.length;i++){
                        if(chooseNum == dishIds[i]){
                            isZanFind = true;
                            totalPraises[i]++;
                            break;
                        }
                    }
                    if(!isZanFind){
                        System.out.println("對不起,您要點贊的菜品不存在!");
                    }
                    break;
                case 6:
                    isExit = true;
                    break;
                default:
                    break;
            }
            if(!isExit){
                System.out.print("輸入0返回:");
                chooseNum = input.nextInt();
            }
        }while(chooseNum==0);
        System.out.println("退出系統,歡迎再次惠顧!");
        input.close();
    }
}
    
數據主體:
                //訂單數據主體
        int[] orderIds = new int[4];
        String[] customers = new String[4];
        String[] dishNames = new String[4];
        int[] times = new int[4];
        String[] adresses = new String[4];
        int[] numbers = new int[4];
        int[] totalPrice = new int[4];
        int[] status = new int[4];   

                //餐品數據主體
        int[] dishIds = {1,2};
        String[] dishNames1 = {"紅燒帶魚","燒鴨"};
        int[] price = {30,36};
        int[] totalPraises = {30,36};     

    
整體框架:
import java.util.Scanner;

public class Ordering {
    public static void main(String[] args) {
        //訂單數據主體
        
        //初始化兩條訂單
        
        //餐品數據主體
        
        int chooseNum;                //獲取鍵盤輸入數字
        boolean isExit = false;        //通過標志位標記,確定是否退出
        Scanner input = new Scanner(System.in);        //創建一個Scanner類型輸入流對象
        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("請輸入功能編號:");
            //每個break僅跳出最內層的循環體,一般用在循環體中符合條件的條件操作最末處
            chooseNum = input.nextInt();
            //通過輸入編號進入不同分支
            switch (chooseNum){
                case 1:
                    System.out.println("1.我要訂餐");
                        boolean isAddFind = false;        //是否找到訂單添加位標志   false:未找到  true:找到
                        int orderIndex = -1;            //插入訂單位置下標
                        //循環查找首個可插入訂單的位置,如果找到則標記為置為true,記錄插入位置下標
                        for(int i=0;i<dishNames.length;i++){
                            if(dishNames[i]==null){
                                isAddFind = true;
                                orderIndex = i;
                                //遍歷到符合條件的記錄再跳出,for循環首層不宜跳出
                                break;
                            }
                        }
                        //未找到提交訂單的位置
                        if(!isAddFind){
                            System.out.println("對不起,訂單已滿!");
                        }
                    break;
                case 2:
                    System.out.println("2.查看餐袋");
                    break;
                case 3:
                    System.out.println("3.刪除訂單");
                    System.out.print("請輸入要刪除的訂單編號:");
                    chooseNum = input.nextInt();    //鍵盤輸入的編號
                    boolean isDelFind = false;        //是否找到刪除訂單的標志    false:未找到   true:找到
                    //循環查找要刪除的訂單
                    for(int i=0;i<dishNames.length;i++){
                        //找到訂單,訂單狀態為已簽收
                        if(chooseNum==orderIds[i] && status[i]==1){
                            isDelFind = true;
                            //將要刪除訂單之后的訂單順序往前移1個位置,最后一位清空
                            for(int j=chooseNum;j<dishNames.length;j++){
                                orderIds[j-1] = orderIds[j];
                                ...
                            }
                            orderIds[dishNames.length-1] = 0;;
                            ...
                            break;
                        }//找到訂單,訂單狀態為已預定,不能刪除
                        else if(chooseNum==orderIds[i] && status[i]==0){
                            isDelFind = true;
                            System.out.println("對不起,該訂單還未簽收,不能刪除!");
                            break;
                        }
                    }
                    //未找到要刪除的訂單
                    if(!isDelFind){
                        System.out.println("沒有找打要刪除的訂單!");
                    }
                    break;
                case 4:
                    System.out.println("4.簽收訂單");
                    System.out.print("請輸入要簽收的訂單編號:");
                    chooseNum = input.nextInt();        //鍵盤輸入的編號
                    boolean isGetFind = false;            //是否找到簽收訂單的標志    false:未找到   true:找到
                    //循環查找要簽收的訂單
                    for(int i=0;i<dishNames.length;i++){
                        //找到訂單,訂單狀態為已預定
                        if(chooseNum==orderIds[i] && status[i]==0){
                            isGetFind = true;
                            //將訂單的狀態改為已簽收
                            status[chooseNum-1] = 1;
                            System.out.println("訂單簽收成功!");
                            break;
                        }//找到訂單,訂單狀態為已簽收,不能再次簽收
                        else if(chooseNum==orderIds[i] && status[i]==1){
                            isGetFind = true;
                            System.out.println("該訂單已簽收過,不能再次簽收!");
                            break;
                        }
                    }
                    //未找到要簽收的訂單
                    if(!isGetFind){
                        System.out.println("對不起,沒有找到要簽收的訂單!");
                    }
                    break;
                case 5:
                    System.out.println("5.我要點贊");
                    boolean isZanFind = false;            //是否找到點贊菜品的標志    false:未找到   true:找到
                    System.out.println("菜品序號\t菜品名稱\t單價\t點贊數");
                    System.out.print("請輸入要點贊的菜品序號:");
                    chooseNum = input.nextInt();        //鍵盤輸入的編號
                    //循環查找要點贊的菜品
                    for(int i=0;i<dishNames1.length;i++){
                        if(chooseNum == dishIds[i]){
                            isZanFind = true;
                            totalPraises[i]++;        //點在數加1
                            break;
                        }
                    }
                    //未找到要點贊的菜品
                    if(!isZanFind){
                        System.out.println("對不起,您要點贊的菜品不存在!");
                    }
                    break;
                case 6:
                    isExit = true;        //將退出系統標記置為true
                    break;
                default:
                    break;
            }
            //如果不退出系統,都提示"輸入0返回:",返回到首頁
            if(!isExit){
                System.out.print("輸入0返回:");
                chooseNum = input.nextInt();
            }
        }while(chooseNum==0);
        System.out.println("退出系統,歡迎再次惠顧!");
        input.close();
    }
}
    

 ====================================================================================================================

import java.util.Arrays;

public class Order {
    private int[] orderIds = new int[4];
    private String[] customers = new String[4];
    private String[] dishNames = new String[4];
    private int[] times = new int[4];
    private String[] adresses = new String[4];
    private int[] numbers = new int[4];
    private int[] totalPrice = new int[4];
    private int[] status = new int[4];
    
    /**
     * 因為類中的數組變量都是私有的,無法直接訪問,但是在刪除時,需要從刪除位置往前移位
     * @param obj
     * @param start
     */
    public void forwardMove(int[] obj, int start){
        if(start <= 0 || start >= obj.length){
            return;
        }else{
            if(start >= 1 && start  <obj.length){
                for(int i=start;i<obj.length;i++){
                    obj[i-1] = obj[i];
                }
            }
            obj[obj.length-1] = 0;
        }
    }
    
    public void forwardMove(String[] obj, int start){
        if(start < 0 || start >= obj.length){
            return;
        }else{
            if(start >= 1 && start  <obj.length){
                for(int i=start;i<obj.length;i++){
                    obj[i-1] = obj[i];
                }
            }
            obj[obj.length-1] = null;
        }
    }
    
    public int[] getOrderIds() {
        return orderIds;
    }
    /**
     * 靜態數組在添加元素時,需要保持原有數組,所有這里通過提供的Setter方法設置數組指定位置的值
     * 問題:對Setter方法太過復雜,實際應用時考慮是否將類變量由私有改為默認或者公有
     * @param index
     * @param value
     */
    public void setOrderIds(int index, int value) {
        if(index >= 0 && index < orderIds.length){
            if(this.orderIds[index]==0){
                this.orderIds[index] = value;
            }
        }
    }
    public String[] getCustomers() {
        return customers;
    }
    public void setCustomers(int index, String customer) {
        if(index >= 0 && index < customers.length){
            if(this.customers[index] == null){
                this.customers[index] = customer;
            }
        }
    }
    public String[] getDishNames() {
        return dishNames;
    }
    public void setDishNames(Product product, int index, String value) {
        this.dishNames[0] = product.getDishNames()[0];
        this.dishNames[1] = product.getDishNames()[1];
        if(index >= 0 && index < dishNames.length){
            if(this.dishNames[index]==null){
                this.dishNames[index] = value;
            }
        }
    }
    public int[] getTimes() {
        return times;
    }
    public void setTimes(int index, int value) {
        if(index >= 0 && index < times.length){
            if(this.times[index] == 0){
                this.times[index] = value;
            }
        }
    }
    public String[] getAdresses() {
        return adresses;
    }
    public void setAdresses(int index, String adresse) {
        if(index >= 0 && index < adresses.length){
            if(this.adresses[index] == null){
                this.adresses[index] = adresse;
            }
        }
    }
    public int[] getNumbers() {
        return numbers;
    }
    public void setNumbers(int index, int value) {
        if(index >= 0 && index < numbers.length){
            if(this.numbers[index] == 0){
                this.numbers[index] = value;
            }
        }
    }
    public int[] getTotalPrice() {
        return totalPrice;
    }
    public void setTotalPrice(int index, int value) {
        if(index >= 0 && index < totalPrice.length){
            if(this.totalPrice[index] == 0){
                this.totalPrice[index] = value;
            }
        }
    }
    public int[] getStatus() {
        return status;
    }
    public void setStatus(int index, int value) {
        if(index >= 0 && index < status.length){
            if(this.status[index] == 0){
                this.status[index] = value;
            }
        }
        
    }
    @Override
    public String toString() {
        return "Order [orderIds=" + Arrays.toString(orderIds) + ", customers=" + Arrays.toString(customers)
                + ", dishNames=" + Arrays.toString(dishNames) + ", times=" + Arrays.toString(times) + ", adresses="
                + Arrays.toString(adresses) + ", numbers=" + Arrays.toString(numbers) + ", totalPrice="
                + Arrays.toString(totalPrice) + ", status=" + Arrays.toString(status) + "]";
    }
    
}
import java.util.Arrays;

public class Product {
//    private int[] dishIds = {1,2};
//    private String[] dishNames = {"紅燒帶魚","燒鴨"};
//    private int[] prices = {30,36};
//    private int[] totalPraises = {30,36};
    
    private int[] dishIds = {1,2,3,4};
    private String[] dishNames = {"紅燒帶魚","燒鴨","紅燒帶魚1","燒鴨1"};
    private int[] prices = {30,36,20,26};
    private int[] totalPraises = {30,36,20,26};
    
    public int[] getDishIds() {
        return dishIds;
    }
    public void setDishIds(int[] dishIds) {
        this.dishIds = dishIds;
    }
    public String[] getDishNames() {
        return dishNames;
    }
    public void setDishNames(String[] dishNames) {
        this.dishNames = dishNames;
    }
    public int[] getPrices() {
        return prices;
    }
    public void setPrices(int[] prices) {
        this.prices = prices;
    }
    public int[] getTotalPraises() {
        return totalPraises;
    }
    public void setTotalPraises(int index, int value) {
        if(index >= 0 && index < totalPraises.length){
            this.totalPraises[index] = value;
        }
    }
    @Override
    public String toString() {
        return "Product [dishIds=" + Arrays.toString(dishIds) + ", dishNames=" + Arrays.toString(dishNames)
                + ", prices=" + Arrays.toString(prices) + ", totalPraises=" + Arrays.toString(totalPraises) + "]";
    }
    
}
import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;

public class Client {
    //成員變量一般只聲明,不初始化,因為有時初始化調用的對象不存在或者還沒生成
    private Order order ;
    private Product product ;
    Scanner input = new Scanner(System.in);
    private int chooseNum;
    
    private int orderLength;
    private int productLength;
    
    public Client(){
        this.order = new Order() ;
        this.product = new Product();
        //創建Order、Product對象后,才能調用對象所在類的方法
        orderLength = order.getDishNames().length;
        productLength = product.getDishNames().length;
    }
    
    private void init(){
        this.order.setOrderIds(0,1);
        this.order.setCustomers(0,"張三");
        this.order.setDishNames(product,1,"紅燒帶魚");
        this.order.setTimes(0,13);
        this.order.setAdresses(0,"天泰二路9號");
        this.order.setNumbers(0,2);
        this.order.setTotalPrice(0,60);
        this.order.setStatus(0,1);
        
        this.order.setOrderIds(1,2);
        this.order.setCustomers(1,"李四");
        this.order.setDishNames(product,1,"燒鴨");
        this.order.setTimes(1,13);
        this.order.setAdresses(1,"天泰二路9號");
        this.order.setNumbers(1,1);
        this.order.setTotalPrice(1,42);
        this.order.setStatus(1,1);
    }
    /**
     * 功能菜單
     */
    public void menu(){
        init();
        boolean 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("請輸入功能編號:");
            chooseNum = input.nextInt();
            switch(chooseNum){
            case 1:
                System.out.println("1.我要訂餐");
                add();
                break;
            case 2:
                System.out.println("2.查看餐袋");
                display();
                break;
            case 3:
                System.out.println("3.刪除訂單");
                delete();
                break;
            case 4:
                System.out.println("4.簽收訂單");
                get();
                break;
            case 5:
                System.out.println("5.我要點贊");
                good();
                break;
            case 6:
                System.out.println("6.退出系統");
                isExit = true;
                break;
            default:
                break;
            }
            if(!isExit){
                System.out.print("輸入0返回:");
                chooseNum = input.nextInt();
            }
        }while(chooseNum==0);
        System.out.println("已退出系統,歡迎再次惠顧!");
        input.close();
        System.exit(1);
    }
    /**
     * 菜品點贊
     */
    
    private void good() {
        boolean isZanFind = false;
        displayProduct();
        System.out.print("請輸入要點贊的菜品序號:");
        chooseNum = input.nextInt();
        for(int i=0;i<productLength;i++){
            if(chooseNum == product.getDishIds()[i]){
                isZanFind = true;
                product.setTotalPraises(chooseNum-1, product.getTotalPraises()[chooseNum-1]+1);
                //查找到符合條件的對象后,跳出循環
                break;
            }
        }
        //沒有找到菜品
        if(!isZanFind){
            System.out.println("對不起,您要點贊的菜品不存在!");
        }
    }

    /**
     * 刪除訂單
     */

    private void delete() {
        display();
        System.out.print("請輸入要刪除的訂單編號:");
        chooseNum = input.nextInt();
        boolean isDelFind = false;
        for(int i=0;i<orderLength;i++){
            if(chooseNum==order.getOrderIds()[i] && order.getStatus()[i]==1){
                isDelFind = true;
                //不能將chooseNum的值傳給forwardMove,因為chooseNum前面的訂單被刪除了就不可以最為數據移位的參考了
                order.forwardMove(order.getOrderIds(), i+1);
                order.forwardMove(order.getCustomers(), i+1);
                order.forwardMove(order.getDishNames(), i+1);
                order.forwardMove(order.getTimes(), i+1);
                order.forwardMove(order.getAdresses(), i+1);
                order.forwardMove(order.getNumbers(), i+1);
                order.forwardMove(order.getTotalPrice(), i+1);
                order.forwardMove(order.getStatus(), i+1);
                //查找到符合條件的對象后,跳出循環
                System.out.println("訂單刪除成功!");
                break;
            }else if(chooseNum==order.getOrderIds()[i] && order.getStatus()[i]==0){
                isDelFind = true;
                System.out.println("對不起,該訂單還未簽收,不能刪除!");
                //跳出循環
                break;
            }
        }
        //沒有找到訂單
        if(!isDelFind){
            System.out.println("沒有找打要刪除的訂單!");
        }
    }
    /**
     * 展示訂單
     */

    private void display() {
        System.out.println("訂單編號\t客戶名稱\t菜品名稱\t配送時間\t配送地址\t\t份數\t總金額\t訂單狀態");
        for(int i=0;i<orderLength;i++){
            if(order.getDishNames()[i]!=null){
                String sta = order.getStatus()[i]==0 ? "已預訂":"已簽收"; 
                System.out.println(order.getOrderIds()[i]+"\t"+order.getCustomers()[i]+"\t"+
                order.getDishNames()[i]+"\t"+order.getTimes()[i]+"點"+"\t"+order.getAdresses()[i]+"\t"+
                order.getNumbers()[i]+"份"+"\t"+order.getTotalPrice()[i]+"元"+"\t"+sta);
            }
        }
    }
    /**
     * 簽收訂單
     */
    private void get() {
        display();
        System.out.print("請輸入要簽收的訂單編號:");
        chooseNum = input.nextInt();
        boolean isGetFind = false;
        for(int i=0;i<orderLength;i++){
            if(chooseNum==order.getOrderIds()[i] && order.getStatus()[i]==0){
                isGetFind = true;
                order.setStatus(i, 1);
                System.out.println("訂單簽收成功!");
                //查找到符合條件的對象后,跳出循環
                break;
            }else if(chooseNum==order.getOrderIds()[i] && order.getStatus()[i]==1){
                isGetFind = true;
                System.out.println("該訂單已簽收過,不能再次簽收!");
                //跳出循環
                break;
            }
        }
        //沒有找到訂單
        if(!isGetFind){
            System.out.println("對不起,沒有找到要簽收的訂單!");
        }
    }
    /**
     * 添加訂單
     */
    private void add(){
        boolean isAddFind = false;
        boolean isProductFind = false;
        int orderIndex = -1;
        for(int i=0;i<orderLength;i++){
            if(order.getDishNames()[i]==null){
                isAddFind = true;
                orderIndex = i;
                //顯示菜品
                displayProduct();
                System.out.print("選擇菜品序號:");
                chooseNum = input.nextInt();
                for(int j=0;j<productLength;j++){
                    if(chooseNum==product.getDishIds()[j]){
                        isProductFind = true;
                        System.out.print("請輸入份數:");
                        int number = input.nextInt();
                        System.out.print("請輸入訂單人姓名:");
                        String customer = input.next();
                        System.out.print("請輸入10~20之間的整數送餐時間:");
                        int time = input.nextInt();
                        while(time>20 || time<10){
                            System.out.print("請重新輸入送餐時間:");
                            time = input.nextInt();
                        }
                        System.out.print("請輸入送餐地址:");
                        String adresse = input.next();
                        //顯示訂單信息,再將訂單信息存入數組中
                        int orderId = orderIndex + 1;
                        String dishName = product.getDishNames()[j];
                        int dishPrice = (product.getPrices()[j])*number;
                        int song = dishPrice > 50 ? 0:6;
                        order.setTotalPrice(orderIndex, dishPrice + song);
                        System.out.println("*****************訂單信息********************");
                        System.out.println("訂單人姓名:"+customer);
                        System.out.println("菜品名稱:"+dishName);
                        System.out.println("份數:"+number);
                        System.out.println("送餐時間:"+time+"點");
                        System.out.println("送餐地址:"+adresse);
                        System.out.println("菜品金額:"+dishPrice);
                        System.out.println("送餐費:"+song);
                        System.out.println("總額:"+order.getTotalPrice()[orderIndex]);
                        order.setOrderIds(orderIndex, orderId);
                        order.setCustomers(orderIndex, customer);
                        order.setDishNames(product, orderIndex, dishName);
                        order.setTimes(orderIndex, time);
                        order.setAdresses(orderIndex, adresse);
                        order.setNumbers(orderIndex, number);
                        order.setStatus(orderIndex, 0);
                        //遍歷到符合條件的記錄再跳出,for循環首層不宜跳出
                        break;
                    }        //菜品不存在
                }
                //遍歷到符合條件的記錄再跳出,for循環首層不宜跳出
                if(!isProductFind){
                    System.out.println("對不起,你要點的菜品不存在");        //菜品不存在
                }
                //遍歷到符合條件的記錄再跳出,for循環首層不宜跳出
                break;
            }
        }
        //沒有找到插入訂單的位置
        if(!isAddFind){
            System.out.println("對不起,訂單已滿!");
        }
    }
    /**
     * 展示菜品列表
     */
    private void displayProduct(){
        System.out.println("菜品編號\t菜品名稱\t單價\t點贊數");
        for(int j=0;j<productLength;j++){
            System.out.println(product.getDishIds()[j]+"\t"+product.getDishNames()[j]+
                    "\t"+product.getPrices()[j]+"元"+"\t"+product.getTotalPraises()[j]+"贊");
        }
    }
}
public class ClientTest {

    public static void main(String[] args) {
        Client client = new Client();
        client.menu();
    }

}


運行結果:
************************歡迎進入吃貨聯盟訂餐系統************************
1.我要訂餐
2.查看餐袋
3.刪除訂單
4.簽收訂單
5.我要點贊
6.退出系統
******************************************************************
請輸入功能編號:1
1.我要訂餐
菜品編號    菜品名稱    單價    點贊數
1    紅燒帶魚    30元    30贊
2    燒鴨    36元    36贊
3    紅燒帶魚1    20元    20贊
4    燒鴨1    26元    26贊
選擇菜品序號:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM