吃货联盟订餐系统

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("菜品编号	菜品名称	单价	点赞数");
                                for(int j=0;j<dishNames1.length;j++){
                                    System.out.println(dishIds[j]+"	"+dishNames1[j]+"	"+price[j]+"元"+"	"+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("订单编号	客户名称	菜品名称	配送时间	配送地址		份数	总金额	订单状态");
                        for(int i=0;i<dishNames.length;i++){
                            if(dishNames[i]!=null){
                                String sta = status[i]==0 ? "已预订":"已签收"; 
                                System.out.println(orderIds[i]+"	"+customers[i]+"	"+dishNames[i]+"	"+times[i]+"点"+"	"+adresses[i]+"	"+numbers[i]+"份"+"	"+totalPrice[i]+"元"+"	"+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("菜品序号	菜品名称	单价	点赞数");
                    for(int i=0;i<dishNames1.length;i++){
                        if(dishNames1[i]!=null){
                            System.out.println(dishIds[i]+"	"+dishNames1[i]+"	"+price[i]+"元	"+totalPraises[i]+"赞	");
                        }
                    }
                    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("菜品序号	菜品名称	单价	点赞数");
                    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("订单编号	客户名称	菜品名称	配送时间	配送地址		份数	总金额	订单状态");
        for(int i=0;i<orderLength;i++){
            if(order.getDishNames()[i]!=null){
                String sta = order.getStatus()[i]==0 ? "已预订":"已签收"; 
                System.out.println(order.getOrderIds()[i]+"	"+order.getCustomers()[i]+"	"+
                order.getDishNames()[i]+"	"+order.getTimes()[i]+"点"+"	"+order.getAdresses()[i]+"	"+
                order.getNumbers()[i]+"份"+"	"+order.getTotalPrice()[i]+"元"+"	"+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("菜品编号	菜品名称	单价	点赞数");
        for(int j=0;j<productLength;j++){
            System.out.println(product.getDishIds()[j]+"	"+product.getDishNames()[j]+
                    "	"+product.getPrices()[j]+"元"+"	"+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赞
选择菜品序号:
原文地址:https://www.cnblogs.com/celine/p/9304366.html