2019-1-5吃货联盟作业

package chihou;

import java.util.Scanner;

public class kauiChang {

    public static void main(String[] args) {
        String[] names = new String[4];//保存订单人姓名
        String[] dishMegs = new String[6];//保存所选择信息,包括菜单名及份数
        int[] times = new int[4];//保存送餐时间
        String[]addresses = new String[4];//保存送餐地址
        int[]states = new int[4];//保存订单状态:0 表示已预订,1表示已完成
        int[]sumPrices = new int[4];//表示订单的总金额
        String[]dishNames ={"红烧鱼","酸辣鸡杂","麻婆豆腐","香辣小龙虾"};
        double[]prices = new double[]{36.0,28.0,15.0,42.0};
        int[]praiseNums = new int[5];
        Scanner input = new Scanner(System.in);
        int num = -1;//用户输入0是反回主菜单,否则退出系统
        boolean isExit = false;//标记用户是否退出系统,trus为退出系统
        System.out.println("欢迎使用'吃货联盟订单系统'");
        //循环显示菜单,根据用户输入执行相应的功能
        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.println("请选择");
            int choose = input.nextInt();//记录用户的选择编号
            boolean isAdd = false;//记录是否可以订餐
            //根据用户的输入执行相应的功能
            switch(choose){
            case 1:
                System.out.println("***我要订餐***");
                for(int j=0;j<names.length;j++){
                    if(names[j]==null){
                        isAdd = true;
                        System.out.println("请输入订餐人姓名");
                        String name = input.next();
                        System.out.println("序号"+"\t" +"菜名"+"\t" +"单价"+"\t" +"点赞数");
                        for(int i=0;i<dishNames.length;i++){
                            String price = prices[i]+"";
                            String praiseNum = (praiseNums[i])>0?praiseNums[i]+"":"0";
                            System.out.println((i+1)+"\t" +dishNames[i]+"\t" +price+"\t" +praiseNum);                                    
                        }
                        //用户点餐
                        System.out.println("请选择您要点的菜的序号:");
                        int chooseDish = input.nextInt();
                        while(chooseDish<1||chooseDish>4){
                            System.out.println("您输入的有误请重新输入1~4的整数");
                            chooseDish = input.nextInt();
                        }
                        System.out.println("请选择您需要的份数:");
                        int number = input.nextInt();
                        String dishMeg = dishNames[chooseDish-1]+""+number+"";
                        double sumPrice = prices[chooseDish-1]*number;
                        double deliCharge = (sumPrice>=50)?0.0:5.0;
                        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();
                        System.out.println("订单成功!");
                        System.out.println("您订的是"+dishMeg);
                        System.out.println("餐费:"+sumPrice+"元,送餐费"+deliCharge+"元,总计:"+(sumPrice+deliCharge)+"元。");
                        names[j]=name;
                        dishMegs[j]=dishMeg;
                        times[j]=time;
                        addresses[j]=address;
                        sumPrices[j]=(int) (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\t总金额\t\t订单状态");
                for(int i=0;i<names.length;i++){
                    if(names[i]!=null){
                        String state = states[i]==0?"已预定":"已完成";
                        String date = times[i]+"";
                        String sumPrice = sumPrices[i]+"";
                        System.out.println((i+1)+"\t"+names[i]+"\t"+dishMegs[i]+"\t"+date+"\t"+addresses[i]+"\t"+sumPrice+"\t"+state);
                    }
                }
                break;

            case 3:
                System.out.println("签收订单");
                boolean isSignFind = false;//找到要签收的订单
                System.out.println("请选择要签收的订单序号:");
                int signOrderId = input.nextInt();
                //状态值为已预定的订单,序号值为用户输入的订单序号-1:可签收
                //状态值为已完成的订单,序号值为用户的输入的订单序号-1:不可签收
                for(int i=0;i<names.length;i++){
                    if(names[i]!=null&& states[i]==1 && signOrderId==i+1){
                        System.out.println("您选择的订单已完成签收,不能再次签收!");
                        isSignFind = true;//标记已找到此订单
                        break;
                    }else if(names[i]!=null && states[i]==0 && signOrderId==i+1){
                        states[i]=1;   //设为已完成
                        System.out.println("订单签收成功!");
                        isSignFind = true;//标记已找到此订单
                        break;
                    }
                }
                //为找到的订单序号不可签收
                if(!isSignFind){
                    System.out.println("您选择的订单不存在!");
                }
                break;
            case 4:
                System.out.println("删除订单");
                boolean isDelFind = false; //  标记是否找到要删除的订单
                System.out.println("请输入要删除的订单序号:");
                int delld  = input.nextInt();
                //状态值为已完成,序号值为用户输入的序号-1:可删除
                //状态值为已预定,序号值为用户输入的序号-1:不可删除
                for(int i=0;i<names.length;i++){
                    if(names[i]!=null&&states[i]==1&&delld==i+1){
                        isDelFind = true;
                        //执行删除操作:删除的位置后的元素依次前移
                        for(int j =delld-1;j<names.length-1;j++){
                            names[j]=names[j+1];
                            dishMegs[j]=dishMegs[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;
                        addresses[endIndex] = null;
                        states[endIndex] = 0;
                        sumPrices[endIndex] = 0;
                        System.out.println("删除订单成功");
                        break;
                    }
                    else if(names[i]!=null && states[i]==0 && delld==i+1){
                        System.out.println("您选择的订单未签收,不能删除!");
                        isDelFind = true;  // 标记已找到此订单
                        break;
                    }
                }
                //未找到该序号的订单:不能删除
                if(!isDelFind){
                    System.out.println("您要删除的订单不存在!");
                }
                break;
            case 5:
                System.out.println("我要点赞");
                System.out.println("序号"+"\t"+"菜名"+"\t"+"单价");
                for(int i=0;i<dishNames.length;i++){
                    String price = prices[i]+"";
                    String praiseNum = (praiseNums[i])>0?praiseNums[i]+"":"";
                    System.out.println((i+1)+"\t"+dishNames[i]+"\t"+price+"\t"+praiseNum);
                }
                System.out.println("请选择您要点赞的菜品序号:");
                int priaiseNum = input.nextInt();
                while(priaiseNum<1||priaiseNum>4){
                    System.out.println("您输入的有误,请重新输入!");
                    priaiseNum = input.nextInt();
                }
                praiseNums[priaiseNum]++;//点赞数加1
                System.out.println("点赞成功!");                
                break;
            case 6:
                isExit = true;
                break;
            }
            if(!isExit){
                System.out.println("输入0反回主菜单");
                num = input.nextInt();
                while(num!=0){
                    System.out.println("输入有误请重新输入");
                    num = input.nextInt();
                }

            }else{
                break;
            }

        }while(num==0);

    }

}

输出结果图;

 

百度网盘代码下载链接:https://pan.baidu.com/s/1TW3CpMGhd3tpKBFB6pomAg
提取码:5g0v

 

posted @ 2019-01-05 12:24  陈xiaolong  阅读(276)  评论(0编辑  收藏  举报