java吃货联盟系统

public class Dingdan {
    DingDanxinxi d = new DingDanxinxi();
    Scanner input = new Scanner(System.in);
    //提供菜品信息
    String[] disNames = new String[]{"青椒肉丝", "水煮鱼", "丸子拼盘"};//菜品名称
    double[] prices = new double[]{38.0, 20.0, 10.0};//菜品价格
    int[] praiseNum = new int[3];//点赞数

    public void Caidan() {
        int num = -1;
        boolean a = false;//标识是否退出系统,退出则true
        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 choise = input.nextInt();
        switch (choise) {
            case 1:
                System.out.println("***我要订餐***");
                ding();
                break;
            case 2:
                System.out.println("***查看餐袋***");
                cha();
                break;
            case 3:
                System.out.println("***签收订单***");
                qian();
                break;
            case 4:
                System.out.println("***删除订单***");
                shan();
                break;
            case 5:
                System.out.println("***我要点赞***");
                zan();
                break;
            case 6:
                a = true;
                if (a){
                    System.out.println("谢谢使用");
                }
                break;
        }
            if (!a) {
                System.out.println("输出0返回:");
                num=input.nextInt();
            }else {
                break;
            }
        } while (num == 0);
    }

    private void zan() {
        //显示菜品信息
        System.out.println("序号\t菜名\t单价");
        for (int i = 0; i <disNames.length ; i++) {
            String price=prices[i]+"元";
            String priaiseNum=(praiseNum[i]>0)?praiseNum[i]+"赞":"";
            System.out.println((i+1)+"\t"+disNames[i]+"\t"+price+"\t"+priaiseNum);
        }
        System.out.println("请选择您要点赞的菜品序号:");
        int priaiseNum=input.nextInt();
        praiseNum[priaiseNum-1]++;
        System.out.println("点赞成功!");
    }


    public void cha() {
        System.out.println("序号\t订餐的人\t餐品的信息\t送餐的时间\t送餐的地址\t总的费用\t订单的状态");
        for (int i = 0; i < d.names.length; i++) {
            if (d.names[i]!=null) {//订餐人的名称不等于空时
                String state = (d.states[i] == 0) ?"已预订" : "已完成";
                String date = d.times[i] + "点";
                String sumPrice = d.sumPrice[i] + "元";
                System.out.println((i + 1) + "\t" + d.names[i] + "\t\t" + d.dishMegs[i] + "\t\t" + date + "\t\t" + d.eddresses[i] + "\t\t" + sumPrice + "\t\t" + state);

            }
        }
    }

    public boolean ding() {
        boolean isAdd = false;//判断能否订餐
        for (int i = 0; i < d.names.length; i++) {
            if (d.names[i] == null) {//找到第一个空的位置
                isAdd = true;//可以订餐
                System.out.println("请输入姓名:");
                String name = input.next();
                //显示供的菜品信息
                System.out.println("序号" + "\t" + "菜名" + "\t" + "单价" + "\t" + "点赞数");
                for (int j = 0; j < disNames.length; j++) {
                    String price = prices[j] + "元";
                    String praiseNums = (praiseNum[i] > 0) ? praiseNum[i] + "赞" : "0";
                    System.out.println((j + 1) + "\t" + disNames[j] + "\t" + price + "\t" + praiseNums);
                }
                //用户点餐
                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("订餐成功");
                System.out.println("你定的是:" + dishMeg);
                System.out.println("送餐时间:" + time + "点");
                System.out.println("餐费:" + sumPrice + "元,送餐费" + deliCharge + "元,总计" + (sumPrice + deliCharge) + "元");
                //添加数据
                d.names[i] = name;
                d.dishMegs[i] = dishMeg;
                d.times[i] = time;
                d.eddresses[i] = address;
                d.sumPrice[i] = sumPrice + deliCharge;
                break;
            }
        }
        if (!isAdd){
            System.out.println("对不起,你的餐袋已满");
            return false;
        }else {
            return true;
        }
    }
    public void  qian(){
        boolean isSignFind=false;
        System.out.println("请选择要签收的订单号:");
        int signOrderId=input.nextInt();
        for (int i = 0; i <d.names.length ; i++) {
            //状态已预订,序号为用户输入的订单序号减1;可签收
            //状态已完成,序号为影虎输入的订单序号减1;不可签收
            if (d.names[i]!=null&&d.states[i]==0&&signOrderId==i+1){
                d.states[i]=1;//将状态值置为已完成
                System.out.println("订单签收成功!");
                isSignFind=true;//标记已找到此订单
            }else if (d.names[i]!=null&&d.states[i]==1&&signOrderId==i+1){
                System.out.println("您选择的订单已完成签收,不能再次签收!");
                isSignFind=true;//标记已找到此订单
            }
        }
        //未找到的订单序号:不可签收
        if (!isSignFind){
            System.out.println("您选择的订单不存在!");
        }
    }
    public void shan(){
        boolean isDelFind=false;//标记是否找到要删除的订单
        System.out.println("请输入要删除的订单序号:");
        int delId=input.nextInt();
        for (int i = 0; i <d.names.length ; i++) {
            //状态值为已完成,序号值为用户输入的序号减1:可删除
            //状态值为已预订,序号值为用户输入的序号减1:不可删除
            if (d.names[i]!=null&&d.states[i]==1&&delId==i+1){
                isDelFind=true;//标记已找到此订单
                //执行删除操作:删除位置后的元素依次前移
                for (int j = delId-1; j <d.names.length-1; j++) {
                    d.names[j]=d.names[j+1];
                    d.dishMegs[j]=d.dishMegs[j+1];
                    d.times[j]=d.times[j+1];
                    d.eddresses[j]=d.eddresses[j+1];
                    d.states[j]=d.states[j+1];
                    d.sumPrice[j]=d.sumPrice[j+1];
                }
                //最后一位清空
               int endIndex=d.names.length-1;
                d.names[endIndex]=null;
                d.dishMegs[endIndex]=null;
                d.times[endIndex]=0;
                d.eddresses[endIndex]=null;
                d.states[endIndex]=0;
                d.sumPrice[endIndex]=0;
                System.out.println("删除订单成功!");
                break;
            }else if (d.names[i]!=null&&d.states[i]==0&&delId==i+1){
                System.out.println("您选择的订单未签收,不能删除");
                isDelFind=true;//标记已找到此订单
                break;
            }
        }
        //未找到该序号的订单:不能删除
        if (!isDelFind){
            System.out.println("您要删除的订单不存在!");
        }

    }
}





public class DingDanxinxi {
    //数据主体;一组订单信息
    String[] names=new String[4];//保存订餐人数
    String[] dishMegs=new String[4];//保存所选信息,包括菜名及份数
    int [] times=new int[4];//保存送餐时间
    String[]eddresses=new String[4];//保存送餐地址
    int [] states=new int[4];//保存订单状态;0表示已预订,1表示已完成
    double[] sumPrice=new double[4];//保存订单的总额
    int[] zan=new int[4];

    }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值