吃货联盟点餐系统

来源:互联网 发布:手机淘宝手机官方版 编辑:程序博客网 时间:2024/04/25 22:45

java点餐系统总结

public static void main(String[] args) {    /**     * 存储六类订单信息     */    String[] names=new String[30];//保存订餐人姓名    String[] dishMegs=new String[30];//保存所选信息,包括菜品以及分数    int[] times=new int[30];//保存送餐时间    String[] addresses=new String[30];//保存送餐地址    int[] states=new int[30];//保存订单状态:0表示已经预定,1表示已经完成    double [] sumPrices=new double[30];//保存订单总金额    /**     * 存储三种菜品名称     */    String[] disNames={"红烧带鱼","鱼香肉丝","小炒肉","时令蔬菜沙拉"};    double[] prices=new double[]{38.0,20.0,35.0,10.0};//菜品数    int[] praiseNums=new int[4];//点赞数    /**     * 初始化订单     */    //第一条订单    names[0]="张晴";    dishMegs[0]="红烧带鱼2份";    times[0]=12;    addresses[0]="天成路207号";    sumPrices[0]=76.0;    states[0]=1;    //第二条订单    names[1]="张晴";    dishMegs[1]="鱼香肉丝2份";    times[1]=18;    addresses[1]="天成路207号";    sumPrices[1]=45.0;    states[1]=0;    /**     * 实现菜单切换      */    System.out.println("欢迎使用'吃货联盟'订餐系统");    Scanner input=new Scanner(System.in);    int num=-1;//声明用户输入参数    boolean isExit=false;//标志用户是否退出系统,true为退出系统    do {        System.out.println("*******************************\n"                          +"1.我要订餐\n"                          +"2.查看餐带\n"                          +"3.签收订单\n"                          +"4.删除订单\n"                          +"5.我要点赞\n"                          +"6.退出系统\n"                          +"*******************************\n");        System.out.println("请选择相应功能的功能编号:");        int choose=input.nextInt();        switch (choose) {        case 1:            //我要订餐            System.out.println("*****我要订餐*****");            boolean isAdd=false;            //循环订单中的名字信息,是否有空位            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<disNames.length;i++){                        String price=prices[i]+"元";                        String priaiseNum=(praiseNums[i])>0 ? praiseNums[i]+"赞" : "0";                        System.out.println((i+1)+"\t"+disNames[i]+"\t"+price+"\t"+priaiseNum);                    }                    //用户点菜                    System.out.println("请选择您要的菜品编号:");                    int chooseDish=input.nextInt();                    System.out.println("请输入您的份数:");                    int number=input.nextInt();                    String dishMeg=disNames[chooseDish-1]+" "+number+"份";                    double sumPrice=prices[chooseDish-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("订餐成功!\n"                            +"您订的是:"+dishMeg+"\n"                            +"送餐时间是:"+time+"点"+"\n"                            +"送餐地址是:"+address+"\n"                            +"餐费:"+sumPrice+"元,送餐费:"+deliCharge+"元,总计:"+(sumPrice+deliCharge)+"元。");                    //添加数据到订单数组中                    names[j]=name;                    dishMegs[j]=dishMeg;                    times[j]=time;                    addresses[j]=address;                    sumPrices[j]=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)?"已预订":"已完成";//三元运算符判断订单状态                    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=true;            System.out.println("请选择要签收的订单序号:");            int signOrderId=input.nextInt();            for(int i=0;i<names.length;i++){                if(names[i]!=null&&states[i]==0&signOrderId==i+1){                    states[i]=1;                    System.out.println("您好,您的订单签收完成");                    isSignFind=false;//赋反值,标记为订单已经签收,防止再次进入订单不存在                }else if(names[i]!=null&&states[i]==1&&signOrderId==i+1){                    System.out.println("您选择的订单已经完成,不能再次签收");                    isSignFind=false;//赋反值,标记为订单已经签收,防止再次进入订单不存在                }            }            if(isSignFind){                System.out.println("您选择的订单不存在");            }            break;        case 4:            //删除订单            System.out.println("*****删除订单*****");            System.out.println("请输入要删除的订单序号");            int deId=input.nextInt();            boolean isDelFind=false;            for(int i=0;i<names.length;i++){                //状态值为1时,序号值为输入的数字-1:可以删除                //状态值为0时,序号值为输入的数字-1:不可以删除                if(names[i]!=null&&states[i]==1&&deId==i+1){                    isDelFind=true;//标记已找到此订单                    //执行删除操作,删除的位置后的元素依次前移                    for(int j=deId-1;j<names.length-1;j++){                        names[j]=names[j+1];                        dishMegs[j]=names[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&&deId==i+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 i=0;i<disNames.length;i++){                String price=prices[i]+"元";                String priaiseNum=(praiseNums[i])>0 ? praiseNums[i]+"赞" : "0";                System.out.println((i+1)+"\t"+disNames[i]+"\t"+price+"\t"+priaiseNum);            }            System.out.println("请选择您要点赞的菜品数:");            int priaiseNum=input.nextInt();            praiseNums[priaiseNum-1]++;            System.out.println("点赞成功!");            break;        case 6:            //退出系统            isExit=true;            break;          default:            //退出系统            isExit=true;            break;        }        if(!isExit){            System.out.println("输入0可返回:");            num=input.nextInt();        }else{            break;        }    } while (num==0);    System.out.println("谢谢您的光临");}
原创粉丝点击