吃货联盟订餐系统(数组+变量)

package 吃货联盟订餐系统;

import java.util.Scanner;

public class FoodAlliance {
    public static void main(String[] args) {
        //定义数组用来存储数据
        String[] names=new String[5];//订餐人
        String[] dishMegs = new String[5];//can
        int[] times =new int[5];//送餐时间
        String[] addresses=new String[5];//送餐地址
        int[] states=new int[5];//订单状态 0 已预定 1已完成
        double[] sumPrices=new  double[5];//总净额

        //初始化两条订单信息
        names[0]="王小明";
        dishMegs[0]="鱼香肉丝 1份";
        times[0]=12;
        addresses[0]="合掌路-228号";
        states[0] =1;
        sumPrices[0] = 18.0;

        names[1]="陈大壮";
        dishMegs[1]="红烧带鱼 2份";
        times[1]=10;
        addresses[1]="明光大道-556";
        states[1] =0;
        sumPrices[1] = 76.0;
        //一堆餐品信息
        String[] dishNames = {"凉拌鸡丝","红烧带鱼","鱼香肉丝"};
        double[] prices ={11.0,38.0,18.0};//价格
        int[] praiseNums =new int[3];//点赞数
        Scanner sc=new Scanner(System.in);
        int num= 1;
        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("请选择(1-6)");
            int comy= sc.nextInt();
            boolean addding=false;//定义一个信号值用来判断 餐盘是否满了 或者是否可以插入
            if (comy>=0&&comy<=6) {
                switch (comy) {
                    case 1:
                        //我要订餐
                        //a。找查可以插入 为null的地方
                        for (int i = 0; i < names.length; i++) {
                            //找到了这个索引值可以插入数据了
                            if (names[i]==null){
                            //addding为true可以插入
                                addding=true;
                                System.out.println("序号\t  菜单\t    价格\t       点赞数");
                                for (int j = 0; j < dishNames.length; j++) {
                                    String price=prices[j]+"元";
                                    String praise=praiseNums[j]+"赞";
                                    System.out.println(" "+(j+1)+"\t"+" "+dishNames[j]+"\t"+price+"  \t"+praise+"  \t");
                                }
                                //输入 编号 份数
                                System.out.println("请选择你需要那份菜的序号");
                                int xuhao = sc.nextInt();
                                while (xuhao<1||xuhao>3){
                                    System.out.println("对不起您的输入有误,请输入10-20的整数");
                                    xuhao= sc.nextInt();
                                }
                                System.out.println("请选择你要选择几份");
                                int number= sc.nextInt();
                                //汇总
                                String disMeg= dishNames[xuhao-1]+" "+number;
                                dishMegs[i]=disMeg;
                                //输入订餐人的姓名
                                System.out.println("请输入您的姓名:");
                                 names[i] = sc.next();
                                 //送餐时间
                                System.out.println("请选择你要送餐的时间10-20点送餐");
                                int time= sc.nextInt();
                                while (time<10 || time>20){
                                    System.out.println("对不起您的输入有误,请输入10-20的整数");
                                    time= sc.nextInt();
                                }
                                times[i]=time;
                                //输入送餐地址
                                System.out.println("请输入你的送餐地址");
                                addresses[i]= sc.next();

                                //总金额
                                double sumPrice = prices[xuhao-1] *number;
                                sumPrices[i]=sumPrice;
                                //送餐费 当餐费到达50元 面餐费
                                double deliCharge =sumPrice>=50?0.0:6.0;

                                //显示订单信息
                                System.out.println("订餐成功:");
                                System.out.println("您的订单是:"+disMeg);
                                System.out.println("订餐人:"+names[i]);
                                System.out.println("送餐时间:"+time);
                                System.out.println("送餐地址:"+addresses[i]);
                                System.out.println("餐费:"+sumPrice+",送餐费: "+deliCharge+"元");
                                System.out.println("总金额:"+(sumPrice+deliCharge)+"元");

                                break;
                            }
                        }
                        if (!addding) {
                            System.out.println("对不起餐袋已满 非常抱歉~");
                        }
                        break;
                    case 2:
                        //查看餐袋
                        printArray(names,dishMegs,times,addresses,states,sumPrices);
                        break;
                    case 3:
                        //签收订单
                        printArray(names,dishMegs,times,addresses,states,sumPrices);
                        System.out.println("请输入你要签收的订单编号:");
                        int xuhao= sc.nextInt();
                        boolean flag =false;//做一个标识符用来判断是否找到了
                        for (int i = 0; i < names.length; i++) {
                            if (names[i]!=null && states[i]==1 && xuhao==i+1){
                                System.out.println("订单已签收!不能再次签收");
                                flag=true;
                                break;
                            } else if (names[i]!=null && states[i]==0 && xuhao==i+1) {
                                states[i]=1;//已预定的情况 改成已完成
                                flag=true;
                                System.out.println("订单签收完成!!");
                                break;
                            }
                        }
                        if (!flag){
                            System.out.println("你输入的订单不存在!");
                        }
                    case 4:
                        //删除订单
                        printArray(names,dishNames,times,addresses,states,sumPrices);
                        System.out.println("请选择你要删除的订单序号:");
                        int deletexuhao =sc.nextInt();
                        int index=-1;
                        boolean flag1 =false;//做一个标识符用来判断是否找到了
                        for (int i = 0; i < names.length; i++) {
                            if (names[i]!=null && states[i]==1 && deletexuhao==i+1){
                                index=i;
                                flag1=true;
                                break;
                            } else if (names[i]!=null && states[i]==0 && deletexuhao==i+1) {
                                flag1=true;
                                System.out.println("订单没有签收不能删除!!");
                                break;
                            }
                        }
                        if (!flag1){
                            System.out.println("你输入的订单不存在!");
                        }
                        if (index!=-1) {
                            for (int i = deletexuhao ; i <= names.length-1; i++) {
                                names[i - 1] = names[i];
                                dishMegs[i - 1] = dishMegs[i];
                                times[i - 1] = times[i];
                                addresses[i - 1] = addresses[i];
                                states[i - 1] = states[i];
                                sumPrices[i - 1] = sumPrices[i];
                            }
                            //清空
                            names[names.length - 1] = null;
                            dishMegs[names.length - 1] = null;
                            times[names.length - 1] = 0;
                            addresses[names.length - 1] = null;
                            states[names.length - 1] = 0;
                            sumPrices[names.length - 1] = 0;
                            System.out.println("删除成功!");
                            break;
                        }
                    case 5:
                        //我要点赞
                        //1.显示菜单
                        System.out.println("序号\t  菜单\t    价格\t       点赞数");
                        for (int j = 0; j < dishNames.length; j++) {
                            String price=prices[j]+"元";
                            String praise=praiseNums[j]+"赞";
                            System.out.println(" "+(j+1)+"\t"+" "+dishNames[j]+"\t"+price+"  \t"+praise+"  \t");
                        }
                        //输入要点赞谁
                        System.out.println("请输入你要点赞的商品序号");
                        int disnumber=sc.nextInt();
                        praiseNums[disnumber-1]++;
                        System.out.println("点赞成功!");

                        break;
                    case 6:
                        //退出系统
                        System.out.println("感谢使用!欢迎下次光临!");
                        return;
                }
            }else {
                System.out.println("输入错误!!请重新输入");
            }
            System.out.print("输入0返回:");
           num= sc.nextInt();
        }while (num==0);
    }

    private static void printArray(String[] names, String[] dishMegs,int[] times,String[] addresses,int[] states,double[] sumPrices) {
        System.out.println("------------------------------------------餐袋余额-----------------------------------");
        System.out.println("序号"+"\t\t姓名" + "\t\t菜单 份数" + " \t\t送餐时间    " + "\t\t送餐地址" + "\t\t\t总金额"+"\t\t状态");
        for (int i = 0; i < names.length; i++) {
            if (names[i]!=null) {
                String time=times[i]+"点";
                String sumprice=sumPrices[i]+"元";
                String state=states[i]==0?"未完成":"已完成";
                System.out.print(" "+(i+1)+"\t");
                System.out.print("  "+names[i] + "\t\t");
                System.out.print(dishMegs[i] + "\t\t");
                System.out.print(time + "\t\t");
                System.out.print(addresses[i] + "2\t\t");
                System.out.print(sumprice + "\t\t");
                System.out.println(state + "\t\t");
            }
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值