zoukankan      html  css  js  c++  java
  • 吃货联盟订餐系统

    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赞
    选择菜品序号:
  • 相关阅读:
    为什么要提倡"Design Pattern"呢? 开闭原则 系统设计时,注意对扩展开放,对修改闭合。
    面向对象、接口编程的重要性 python 为什么引入接口interface
    ON DUPLICATE KEY UPDATE
    Starting Session of user root.
    DRDS和RDS主要用来存储用户交易信息,MongoDB主要用来存储商品维度信息
    抽象不应该依赖于具体,具体应该依赖于抽象。 要针对接口编程,而不是针对实现编程。
    高层次的模块不应该依赖于低层次的模块
    系统设计的次要目的
    存储方案和底层数据结构的设计获得评审一致通过,并沉淀成为文档
    JVM 的 Xms 和 Xmx 设置一样大小的内存容量
  • 原文地址:https://www.cnblogs.com/celine/p/9304366.html
Copyright © 2011-2022 走看看