外卖订餐管理系统

实验五 外卖订餐管理系统

实验目的

1.理解程序的基本概念------程序、变量、数据结构;

2.学会使用顺序、选择、循环、跳转语句编写程序;

3.学会使用数据和方法。

实验内容

开发一个外卖订餐系统,需要实现"我要订餐"、"查看餐袋"、"签收订单"、"删除订单"、"我要点赞"和"退出系统"六个功能。项目运行结果如图1所示。

图1 外卖订餐系统

三、 程序代码及分步功能解析

java 复制代码
package Q;

import java.util.Scanner;

public class OrderingMgr {
    String[] names= new String[10];
    String[] dishMegs= new String[10];
    int[] times= new int[10];
    String[] addresses= new String[10];
    int[] states= new int[10];
    double[] sumPrices= new double[10];

    String[] dishNames= {"红烧肉","烤鱼","麻辣香锅"};
    double[] Prices= {5,25,15};
    int[] praiseNums=new int[dishNames.length];

    public static void main(String[] args) {
        OrderingMgr order = new OrderingMgr();
        while(true) {
            order.showMainMenu();
            Scanner input = new Scanner(System.in);
            int choice = input.nextInt();
            switch (choice) {
                case 1:
                    System.out.println("***我要订餐***");
                    order.placeOrder();
                    break;
                case 2:
                    System.out.println("***查看餐袋***");
                    break;
                case 3:
                    System.out.println("***签收订单***");
                    break;
                case 4:
                    System.out.println("***删除订单***");
                    break;
                case 5:
                    System.out.println("***我要点赞***");
                    break;
                case 6:
                    System.out.println("感谢使用外卖订餐系统,再见!");
                    System.exit(0);
                    System.exit(0);
                    break;
                default:
                    System.out.println("输入错误,请选择1-6之间的数字!");
                    break;
            }
        }
    }
    public void showMainMenu(){
        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.println("请选择:");
    }
    public void placeOrder(){
        boolean flag = false;
        for (int j = 0; j < names.length; j++) {
            if (names[j] == null) {
                // 找到第一个空位置,可以添加订单信息
                flag = true; // 置标志位,可以订餐
                //输入订餐人的姓名
                System.out.print("请输入订餐人姓名:");
                Scanner input = new Scanner(System.in);
                String name=input.next();

                //选择的菜品和份数
                System.out.println("序号" + "\t" + "菜名" + "\t" + "单价");
                for (int i = 0; i < dishNames.length; i++) {
                    String price = Prices[i] + "元";
                    String praiseNum = (praiseNums[i] > 0) ? praiseNums[i] + "赞" : "";
                    System.out.println((i + 1) + "\t" + dishNames[i] + "\t" + price + "\t" + praiseNum);
                }

                // 用户点菜
                System.out.print("请选择您要点的菜品编号:");
                int chooseDish = input.nextInt();
                System.out.print("请选择您需要的份数:");
                int number = input.nextInt();
                String dishMeg = dishNames[chooseDish - 1] + " " + number + "份";
                //餐费计算
                double sumPrice = Prices[chooseDish - 1] * number;
                // 餐费满50元,免送餐费,否则5元
                double deliCharge = (sumPrice >= 50) ? 0 : 5;
                //输出订单时间
                System.out.print("请输入送餐时间(送餐时间是10点至20点间整点送餐):");
                int time = input.nextInt();
                while (time < 10 || time > 20) {
                    System.out.print("您的输入有误,请输入10~20间的整数!");
                    time = input.nextInt();
                }
                System.out.print("请输入送餐地址:");
                String address = input.next();

                System.out.println("订餐成功!");
                System.out.println("您订的是:" + dishMeg);
                System.out.println("送餐时间:" + time + "点");
                System.out.println("餐费:" + sumPrice + "元, 送餐费" + deliCharge + "元, 总计:" + (sumPrice + deliCharge) + "元。");
                // 添加数据
                names[j] = name;
                dishMegs[j] = dishMeg;
                times[j] = time;
                addresses[j] = address;
                sumPrices[j] = sumPrice + deliCharge;
                break;
            }
            
        }

    }
}

四、程序调试结果(要求截取详细步骤)

五、实验总结

本次实验开发了外卖订餐系统,实现了订餐、查看订单、签收、删除、点赞和退出六个功能。实验中,我用变量存储订单信息,数组管理订单列表,学会了顺序、选择、循环语句的使用,比如用循环遍历订单,用选择判断订单状态。同时,我还把不同功能写成了单独的方法,让代码更清晰。通过这次实验,我掌握了程序基础概念和基本语法,理解了数据和方法的使用,但在处理订单状态时还有些不熟练,后续会多练习,让代码更完善。

相关推荐
程序员清风26 分钟前
程序员兼职必看:靠谱软件外包平台挑选指南与避坑清单!
java·后端·面试
皮皮林5512 小时前
利用闲置 Mac 从零部署 OpenClaw 教程 !
java
颜酱2 小时前
单调栈:从模板到实战
javascript·后端·算法
CoovallyAIHub6 小时前
仿生学突破:SILD模型如何让无人机在电力线迷宫中发现“隐形威胁”
深度学习·算法·计算机视觉
CoovallyAIHub6 小时前
从春晚机器人到零样本革命:YOLO26-Pose姿态估计实战指南
深度学习·算法·计算机视觉
CoovallyAIHub6 小时前
Le-DETR:省80%预训练数据,这个实时检测Transformer刷新SOTA|Georgia Tech & 北交大
深度学习·算法·计算机视觉
CoovallyAIHub6 小时前
强化学习凭什么比监督学习更聪明?RL的“聪明”并非来自算法,而是因为它学会了“挑食”
深度学习·算法·计算机视觉
CoovallyAIHub6 小时前
YOLO-IOD深度解析:打破实时增量目标检测的三重知识冲突
深度学习·算法·计算机视觉
华仔啊7 小时前
挖到了 1 个 Java 小特性:var,用完就回不去了
java·后端
武子康7 小时前
大数据-236 离线数仓 - 会员指标验证、DataX 导出与广告业务 ODS/DWD/ADS 全流程
大数据·后端·apache hive