public static void main(String[] args) {
        
        String[] names = new String[4];  //订餐人姓名
        String[] dishMegs = new String[4];  //保存菜品名及份数
        int[] times =new int[4];  //送餐时间
        String[] addresses = new String[4];  //保存送餐地址
        int[] states = new int[4];    //保存订单状态: 0表示已预订,1表示已完成
        double[] sumPrices = new double[4];   //保存订单的总金额
        
        //初识化订单信息
        names[0]="张青";
        dishMegs[0]="红烧带鱼 2份";
        times[0]=12;
        addresses[0]="天成路207号";
        states[0]=1;
        sumPrices[0]=76.0;
        
        names[1]="张青";
        dishMegs[1]="鱼香肉丝 2份";
        times[1]=18;
        addresses[1]="天成路207号";
        states[1]=0;
        sumPrices[1]=45.0;
        
        String[] dishNames ={"红烧带鱼","鱼香肉丝","时冷鲜疏"};  //菜单
        double[] prices ={38.0,20.0,10.0};       //价格 
        int[] praiseNums =new int[]{58,45,50};   //点赞数
        
        Scanner input = new Scanner(System.in);
        int num=-1;      //用户输入0返回菜单,否则退出
        boolean isExit=false;  //标志用户是否退出系统;true 为退出系统
        
        System.out.println("\t欢迎使用“吃货联盟订餐系统”");
        auter:
        do{
            System.out.println("**************************************");
            System.out.println("\t  1、我要订餐");
            System.out.println("\t  2、查看餐袋");
            System.out.println("\t  3、签收订单");
            System.out.println("\t  4、删除订单");
            System.out.println("\t  5、我要点餐");
            System.out.println("\t  6、退出系统");
            System.out.println("**************************************");
            System.out.println("请选择:");
            int choose = input.nextInt();
            switch(choose){
                case 1:
                    System.out.println("***我要订餐***");
                    System.out.println("请输入订餐人姓名:");
                    String name=input.next();
                    
                    boolean isAdd = false; //记录是否可以订餐
                    for (int i = 0; i < names.length; i++) {
                        if(names[i]==null){
                            isAdd = true;
                            System.out.println("序号\t菜品名称\t菜品单价\t点赞数");
                            
                            for (int j = 0; j < dishNames.length; j++) {
                                System.out.println((j+1)+"\t"+dishNames[j]+"\t "+prices[j]+"\t "+praiseNums[j]);
                            }
                            
                            System.out.println("请选择您要点的菜品编号:");
                            int chooseDich = input.nextInt();
                            System.out.println("请选择您需要的份数:");
                            int number = input.nextInt();
                            
                            //得到订餐信息
                            String dishMeg=dishNames[chooseDich-1]+" "+number+"";  
                            //订餐总金额
                            double sumPrice = prices[chooseDich-1] *number;
                            //订餐满50元,免送餐费5元
                            double deliCharge =(sumPrice>=50)? 0:5;
                            
                            System.out.println("请输入送餐时间(送餐时间是10点至20点间整点送餐):");
                            int time = input.nextInt();
                            while(time<10 && time>20){
                                System.out.println("您输入有误,请重新输入10~20间的整数!");
                                time = input.nextInt();
                            }
                            
                            System.out.println("请输入送餐地址:");
                            String address = input.next();
                            //无需添加状态,默认为0
                            System.out.println("订餐成功!");
                            
                            System.out.println("您定的是:"+dishMeg);
                            System.out.println("送餐时间:"+time);
                            System.out.println("餐费:"+sumPrice+"元,送餐费"+deliCharge+"元,总计:"+(sumPrice+deliCharge)+"");
                            System.out.println();
                            //添加数据
                            names[i]=name;
                            dishMegs[i]=dishMeg;
                            times[i]=time;
                            addresses[i]=address;
                            sumPrices[i]=sumPrice+deliCharge;
                            break;
                        }
                    }
                    
                    if(!isAdd){   //
                        System.out.println("对不起,您的餐袋已满!");
                    }
                    break;
                case 2:
                    System.out.println("***查看餐袋***");
                    System.out.println("序号\t订餐人\t订餐信息\t\t送餐时间\t送餐地址\t\t总金额\t订单状态");
                    for (int i = 0; i < names.length; i++) {
                        if(names[i]!=null){
                            String state = (states[i]==0)?"已预订":"已完成";
                                
                            System.out.println((i+1)+"\t"+names[i]+"\t"+dishMegs[i]+"\t"+times[i]+"\t"+addresses[i]+"\t"+sumPrices[i]+"\t"+state);
                        }
                    }
                    
                    break;
                case 3:
                    System.out.println("***签收订单***");
                    System.out.println("签收订单的序号:");
                    int delId=input.nextInt();
                    boolean isSignFind = false;
                    for (int i = 0; i < names.length; i++) {
                        if(names[i]!=null && i ==(delId-1) && states[i]==0){
                            states[i]=1;   //状态改为 1
                            System.out.println("订单签收成功");
                            isSignFind=true;
                            break;
                        }else if(names[i]!=null && i ==(delId-1) && states[i]==1){
                            System.out.println("您选择的订单已完成签收,不能再次签收!");
                            isSignFind=true;
                        }
                    }
                    if(!isSignFind){   
                        System.out.println("您选择的订单不存在!");
                    }
                    break;
                case 4:
                    System.out.println("***删除订单***");
                    System.out.println("输入要删除的订单编号:");
                    int dinId=input.nextInt();
                    boolean isDelFind=false;
                    for (int i = 0; i < names.length; i++) {
                        if(names[i]!=null && states[i]==1 && i==(dinId-1)){
                            isDelFind=true;
                            for (int j = i; j < names.length-1; j++) {
                                names[j]=names[j+1];
                                dishMegs[j]=dishMegs[j+1];
                                times[j]=times[j+1];
                                addresses[j]=addresses[j+1];
                                states[j]=states[j+1];
                                sumPrices[j]=sumPrices[j+1];
                            }
                            
                            //数组最后一位清空
                            int endIndex =names.length-1;
                            names[endIndex]=null;
                            dishMegs[endIndex]=null;
                            times[endIndex]=0;
                            addresses[endIndex]=null;
                            states[endIndex]=0;
                            sumPrices[endIndex]=0;
                            System.out.println("删除订单成功!");
                            break;
                        }else if(names[i]!=null && states[i]==0 && i==(dinId-1)){
                            System.out.println("您选择的订单未签收,不能删除!");
                            isDelFind =true;
                            break;
                        }
                    }
                    
                    if(!isDelFind){
                        System.out.println("您要删除的订单不存在!");
                    }
                    break;
                case 5:
                    System.out.println("***我要点赞*** ");
                    System.out.println("序号\t菜品名称\t菜品单价\t点赞数");
                    
                    for (int j = 0; j < dishNames.length; j++) {
                        System.out.println((j+1)+"\t"+dishNames[j]+"\t "+prices[j]+"\t "+praiseNums[j]);
                    }
                    System.out.println("请输入您要点赞的菜品序号:");
                    int priaiseNum = input.nextInt();
                    praiseNums[priaiseNum-1]+=1;
                    System.out.println("点赞成功!");
                    break;
                case 6:
                    System.out.println("退出系统!");
                    break auter;
                default:
                    isExit=true;
                    break;
            }
            
            if(!isExit){
                System.out.println("输入0返回");
                num=input.nextInt();
            }
            
        }while(num==0);
        System.out.println("欢迎使用订餐系统");
    }

 

 posted on 2017-08-03 21:11  【邵江】  阅读(6989)  评论(1编辑  收藏  举报