吃货联盟订餐系统

用 Java 编写一个简单的订餐系统代码 

package foodAlliance;

import java.util.Scanner;

/*
     我想休息
   不,你没有钱!
@ Time : 2023/7/3 9:46    
@Author: Nyg

*/
public class FoodAlliance {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        boolean correct = true;                                 // 循环接收

        String[] dishName = {"红烧茄子", "鱼香肉丝", "时令蔬菜"};   // 菜品名称数组
        String[] foodName = new String[5];                      // 订餐人姓名数组
        String[] dishFood = new String[5];                      // 餐品信息数组
        int[] dishTime = new int[5];                            // 送餐时间数组
        String[] dishAddress = new String[5];                   // 送餐地址数组
        double[] totalAmount = new double[5];                   // 总金额数组
        String[] dishState = new String[5];                     // 订单状态数组
        double[] dishPrice = {38, 20, 10};                      // 菜品单价数组
        int[] dishLike = new int[3];                            // 点赞数数组

        while (correct) {               // 开始循环
            System.out.println("欢迎来到“吃货联盟”");
            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.print("请选择:");
            int select = sc.nextInt();          // 选择将要进行的
            if (select > 6 || select < 1) {     // 如果序号大于6或者小于1
                System.out.println("请选择有效的序号!");
                System.out.println();
            }

            switch (select) {                   // 进入主菜单
                case 1 :
                    System.out.println();
                    for (int j = 0; j < 1; ) {
                        System.out.println("*********我要订餐*********");
                        System.out.println("序号\t\t菜名\t\t单价\t\t点赞数");
                        for (int i = 0; i < dishName.length; i++) {     // 循环菜品信息
                            System.out.println((i + 1) + "\t  " + dishName[i] + "\t" + dishPrice[i] + " 元\t " + dishLike[i]);
                        }
                        System.out.print("请输入订餐人姓名:");
                        String name = sc.next();            // 订餐人姓名
                        System.out.print("请选择菜品序号:");
                        int dishNumber = sc.nextInt();      // 菜品序号
                        for (int i = 0; i < dishTime.length; i++) {
                            if (dishNumber > 3 || dishNumber < 1){      // 如果不是菜品序号
                                System.out.print("没有您想要的菜品,请重新输入菜品序号: ");
                                dishNumber = sc.nextInt();
                            }
                        }
                        System.out.print("请选择您需要的数量:");
                        int number = sc.nextInt();          // 输入餐品数量
                        boolean flag = false;
                        int time = 0;                       // 初始化时间
                        do {                                // 判断时间是否超出送餐范围
                            System.out.print("请输入送餐时间(送餐时间是10点至20点之间整点送餐):");
                            time = sc.nextInt();            // 送餐时间
                            if (time < 10 || time > 20) {   // 如果不在送餐时间
                                System.out.println("您的时间超过了送餐时间!请重新输入");
                                flag = true;
                            } else {
                                flag = false;
                            }
                        } while (flag);
                        System.out.print("请输入送餐地址:");
                        String address = sc.next();         // 送餐地址
                        System.out.println("订餐成功!");
                        String numbers = number + "份";
                        for (int i = 0; i < dishFood.length; i++) {
                            if (dishFood[i] == null) {      // 如果数组是初始化
                                foodName[i] = name;                                       // 送餐人姓名
                                dishTime[i] = time;                                       // 送餐时间
                                dishAddress[i] = address;                                 // 送餐地址
                                dishFood[i] = dishName[dishNumber - 1] +" "+ numbers;     // 餐品信息
                                totalAmount[i] = dishPrice[dishNumber - 1] * number;      // 总金额 = 单价 * 数量
                                dishState[i] = "已预定";                                   // 订餐状态
                                break;
                            }
                        }
                        System.out.println("您订的是: " + dishName[dishNumber - 1] + numbers);
                        System.out.println("送餐时间是:  " + time + " 点");
                        System.out.println("餐费是: " + dishPrice[dishNumber - 1] * number + " 元");
                        System.out.println("送餐费是:" + 0.0 + " 元");
                        System.out.println("总计:" + dishPrice[dishNumber - 1] * number + " 元");
                        System.out.println("输入0返回菜单,输入1继续点餐");
                        int revert = sc.nextInt();
                        if (0 == revert) {
                            j = 1;
                        }
                        if (foodName[4] != null) {      // 如果最后一个索引不是初始化,表示订单已满
                            System.out.println("您的订单已满,请及时处理!");
                            break;
                        }
                    }
                    System.out.println();
                    continue;


                case 2 :
                    System.out.println(" ");
                    System.out.println("*********查看餐袋*********");
                    System.out.println("序号\t 订餐人\t 餐品信息\t送餐时间\t送餐地址\t总金额\t订单状态");
                    for (int i = 0; i < foodName.length; i++) {         // 遍历餐袋
                        if (foodName[i] != null) {              // 如果索引位置不是初始,就遍历
                            System.out.println(" " + (i + 1) + "\t " + foodName[i] + "\t " + dishFood[i] + "\t  "
                                    + dishTime[i] + "\t   " + dishAddress[i] + "\t  " + totalAmount[i] + "\t "
                                    + dishState[i]);
                        }
                    }
                    System.out.println();
                    continue;


                case 3 :
                    System.out.println();
                    for (int i = 0; i < 1; ) {
                        System.out.println("*********签收订单*********");
                        System.out.print("请选择要签收的订单号:");
                        int sign = sc.nextInt();
                        if (sign > dishTime[sign - 1]) {        // 如果订单号大于索引,没有此订单
                            System.out.print("您没有此序号的订单,请重新输入:");
                            System.out.println(" ");
                            break;
                        }
                        for (int j = 0; j < foodName.length; j++) {
                            if (dishState[sign - 1].equals("已签收")) {        // 如果索引位置是已签收
                                System.out.println("您的订单已签收请重新签收其他订单!");
                                continue;
                            }
                            if (foodName != null) {         // 如果订餐人姓名不是空的
                                dishState[sign - 1] = "已签收";
                                System.out.println("订单签收成功!");
                                break;
                            }
                        }
                        System.out.println("输入0返回菜单,输入1继续签收订单");
                        int revert = sc.nextInt();
                        if (0 == revert) {
                            i = 1;
                            break;
                        }
                    }
                    System.out.println();
                    continue;


                case 4 :
                    System.out.println();
                    boolean flags = false;                  // 判断订单是否存在
                    System.out.println("*********删除订单*********");
                    System.out.println("请输入要删除的订单号:");
                    int delete = sc.nextInt();
                    int delete1 = delete - 1;
                    for (int i = 0; i < 1; ) {
                        for (int k = 0; k < foodName.length; k++) {
                            // 0下标不是初始值,并且状态是已签收,i 是0下标
                            if (foodName[k]!=null) {
                                if (delete1==k){
                                    flags = true;           // 标记已找到此订单
                                    break;
                                }
                            }
                        }
                        if (flags){                         // 判断订单存在
                            if (dishState[delete1].equals("已签收")){                 // 如果已签收
                                foodName[delete1] = foodName[delete1 + 1];          // 数组0下标=1下标
                                foodName[delete1+1]=null;                           // 数组1下标初始化
                                dishFood[delete1] = dishFood[delete1 + 1];
                                dishFood[delete1+1]=null;
                                dishTime[delete1] = dishTime[delete1 + 1];
                                dishTime[delete1+1]=0;
                                dishAddress[delete1] = dishAddress[delete1 + 1];
                                dishAddress[delete1+1]=null;
                                totalAmount[delete1] = totalAmount[delete1 + 1];
                                totalAmount[delete1+1]=0;
                                dishState[delete1] = dishState[delete1 + 1];
                                dishState[delete1+1]=null;
                                System.out.println("订单删除成功!");
                            }else {
                                System.out.println("当前订单未签收,不能删除");
                            }
                        }else {
                            System.out.println("订单不存在,请重新输入!");
                        }
                        System.out.print("输入0返回菜单!");
                        int revert = sc.nextInt();
                        System.out.println();
                        if (0 == revert) {
                            i = 1;
                            break;
                        }
                    }
                    continue;


                case 5 :
                    System.out.println();
                    for (int i = 0; i < 1; ) {
                        System.out.println("*********我要点赞*********");
                        System.out.println("序号\t   菜品\t   单价\t   点赞数");
                        for (int j = 0; j < dishPrice.length; j++) {
                            String priceNum = (dishLike[j] > 0 ? dishLike[j] + "赞" : " ");      // 如果数组下标大于0,菜品加1赞
                            System.out.println((j+1)+"\t  "+dishName[j]+"\t"+dishPrice[j] + "元"+"\t "+priceNum);    // 输出菜品信息
                        }
                        System.out.print("请选择要点赞的餐品序号:");
                        int priceNum = sc.nextInt();
                        dishLike[priceNum - 1]++;               // 累加点赞数
                        System.out.println("点赞成功!");
                        System.out.println("输入0返回菜单,输入1继续点赞!");
                        int revert = sc.nextInt();
                        System.out.println();
                        if (0 == revert) {
                            i = 1;
                            break;
                        }
                    }
                    continue;


                case 6 :
                    System.out.println();
                    System.out.println("*******感谢您的使用,再见!*******");
                    correct = false;

            }
        }
    }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值