JAVA基础 结课作业 吃货联盟订餐系统

吃货联盟订餐系统完整代码

package com.hz;

import java.util.Scanner;

public class chlm {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        //定义数组
        String[] names = new String[4];//姓名
        String[] orderMeu = new String[4];//保存选择的菜名
        int[] orderNum = new int[4];//保存选择的份数
        int[] time = new int[4];//送餐时间
        String[] address = new String[4];//送餐地址
        int[] states = new int[4];//订单状态
        float[] totalPrice = new float[4];//总金额

        //初始化菜品、价格、点赞数
        String[] orderName = {"红烧带鱼", "鱼香肉丝", "时令鲜蔬"};
        float[] orderPrice = {38.0f, 20.0f, 10.0f};
        int[] goodtasty = new int[4];

        System.out.println("\n欢迎使用“吃货联盟订餐系统”");
        int num = -1;//用户输入0返回菜单,否则退出系统
        boolean exit = false;//初始化exit是真,true时退出系统
        do {
            //显示菜单
            System.out.println("1、我要订餐\n2、查看餐袋\n3、签收订单\n4、删除订单\n5、我要点赞\n6、退出系统\n");
            System.out.println("请选择:");
            num = input.nextInt();

            //嵌套switch循环,建立选择结构
            switch (num) {
                case 1:
                    System.out.println("***我要订餐***");
                    boolean order = false;//是否要点单
                    for (int i = 0; i < names.length; i++) {//循环查看names数组中的姓名
                        if (names[i] == null) {//判断名字数组中对应下标是否为空,若空则点单
                            order = false;
                            System.out.println("请输入订餐人姓名:");
                            String name = input.next();
                            names[i] = name;//将姓名存储到数组中
                            //接下来输出菜单内容
                            System.out.println("序号\t\t菜名\t\t\t单价\t\t\t点赞数");
                            for (int j = 0; j < orderName.length; j++) {
                                System.out.println((j + 1) + "\t\t" + orderName[j] + "\t\t" + orderPrice[j] + "元" + "\t\t" + goodtasty[j]);
                            }
                            System.out.println("请选择您要点的菜单编号:");
                            int orderCode = input.nextInt();
                            String orderMeus = orderName[orderCode - 1];//通过输入的编号-1得到该菜品在菜单中的下标,存储到数组中
                            orderMeu[i] = orderMeus;

                            System.out.println("请选择您需要的份数:");
                            int Number = input.nextInt();
                            orderNum[i] = Number;

                            System.out.println("请输入送餐时间(送餐时间是10点至20点间整点送餐):");
                            int Time = input.nextInt();
                            while (Time < 10 && Time > 20) {
                                System.out.println("送餐时间是10点至20点间整点送餐,请重新输入");
                                Time = input.nextInt();
                            }
                            time[i] = Time;

                            System.out.println("请输入送餐地址:");
                            String Address = input.next();
                            address[i] = Address;

                            System.out.println("订餐成功");
                            System.out.println("您定的是:" + orderName[i] + Number + "份");
                            System.out.println("送餐时间:" + Time + "点");
                            float sumPrice = orderPrice[orderCode - 1] * Number;
                            float send;
                            if (sumPrice < 40) {
                                send = 5.0f;
                            }else send = 0.0f;
                            totalPrice[i] = sumPrice + send;
                            System.out.println("餐费:" + sumPrice + "元,送餐费" + send + "元,总计" + (sumPrice + send) + "元");
                            System.out.println("您的订单已提交");
                            break;
                        }

                        }
                    if (order){
                        System.out.println("对不起,您的餐袋已满!");

                    }
                    break;//case1 我要订餐功能 结束


                case 2://查看套袋功能
                    System.out.println("***查看套袋***");
                    System.out.println("序号\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) ? "已预定" : "已完成";
                            System.out.println((i + 1) + "\t" + names[i] + "\t\t" + orderName[i] + orderNum[i] + "份\t" + time[i] + "\t\t" + address[i] + "\t\t" + orderPrice[i] + "元\t" + state);

                        }
                    }
                    break;
                case 3:
                    System.out.println("***签收订单***");
                    boolean issign =false;
                    System.out.println("请选择要签收订单的编号:");
                    int sign = input.nextInt();
                    for (int i = 0;i < names.length; i++){
                        if (names[i] != null && states[i]== 0 && sign == i +1){
                            states[i] =1;
                            System.out.println("您的订单已签收");
                            issign =true;
                        } else if (names[i] != null && states[i]== 0 && sign == i +1) {
                            System.out.println("您的订单已签收,不能再次签收");
                            issign = true;
                        }
                    }
                    if (!issign){
                        System.out.println("抱歉,您的订单为找到");
                    }

                    break;


                case 4://删除订单功能
                    System.out.println("***删除订单***");
                    boolean isDelete = false;
                    System.out.println("请选择要删除的订单的编号:");
                    int delete = input.nextInt();
                    for (int i = 0;i < names.length;i++){
                        if (names[i] != null && states[i] == 1 && delete == i + 1){
                            isDelete = true;
                            for (int j = delete - 1;j < names.length - 1; j++){
                                names[j] = names[j+1];
                                orderMeu[j] = orderMeu[j+1];
                                orderNum[j] = orderNum[j+1];
                                time[j] = time[j+1];
                                address[j] =address[j+1];
                                totalPrice[j] = totalPrice[j+1];
                                states[j] = states[j+1];
                            }
                            names[names.length - 1] =null;
                            orderMeu[orderMeu.length - 1] = null;
                            orderNum[orderNum.length - 1] = 0;
                            time[time.length - 1] = 0;
                            address[address.length - 1] = null;
                            totalPrice[totalPrice.length - 1] = 0;
                            states[states.length - 1] = 0;
                            System.out.println("订单信息已删除");

                        }
                        else if (names[i] != null && states[i] == 0 && delete == i + 1){
                            isDelete = true;
                            System.out.println("您的订单为签收,不能删除");
                        }
                    }
                    if (!isDelete){
                        System.out.println("您输入的订单未找到");
                    }
                    break;
                case 5:
                    System.out.println("***我要点赞***");
                    System.out.println("序号\t菜名\t单价\t");
                    for (int i = 0;i < orderName.length;i++){

                        System.out.println((i+1)+"\t"+orderName[i]+"\t"+orderPrice[i]+"元");

                    }
                    System.out.println("请输入你要点赞菜品的编号:");
                    int priseNum = input.nextInt();
                    goodtasty[priseNum - 1]++;
                    System.out.println("点赞成功");
                    for (int i = 0;i < orderName.length;i++){
                        String prisenum = (goodtasty[i] > 0) ? goodtasty[i] + "赞" : "";
                        System.out.println((i+1)+"\t"+orderName[i]+"\t"+orderPrice[i]+"元"+"\t"+prisenum);

                    }


                    break;

                case 6:// 退出系统
                    exit = true;
                    break;
                default:// 退出系统
                    exit = true;
                    break;

            }
            if (!exit) {
                System.out.print("输入0返回:");
                num = input.nextInt();
            } else {
                break;
            }


        }
        while (num == 0);//若num等于0那么进行do操作
        System.out.println("谢谢惠顾,欢迎下次再来");

    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值