博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java10---点餐系统
阅读量:5731 次
发布时间:2019-06-18

本文共 10088 字,大约阅读时间需要 33 分钟。

public class OrderMsg {    public static void main(String[] args) throws Exception {        /**         * 订餐人姓名、选择菜品、送餐时间、送餐地址、订单状态、总金额         * 01.创建对应的数组         * 02.数组的初始化         * 03.显示菜单         * 04.根据用户的选择进去指定的模块         */        String[] names = new String[6]; // 订餐人姓名        String[] dishMsgs = new String[6];// 选择菜品        int[] numbers = new int[6];// 菜品份数        Date[] dates = new Date[6]; // 送餐时间        String[] times = new String[6]; // 送餐时间对应的String类型的日期        String[] addresses = new String[6];// 送餐地址        int[] states = new int[6];// 订单状态 0:已经预定 1:已经完成        double[] sumPrices = new double[6];// 总金额        // 初始化数据        names[0] = "小黑";        dishMsgs[0] = "八仙过海";        numbers[0] = 3;        dates[0] = new Date();        SimpleDateFormat sdf = new SimpleDateFormat("hh:mm:ss");        times[0] = sdf.format(dates[0]);        addresses[0] = "天堂路1号院";        states[0] = 1;        sumPrices[0] = 5000;        names[1] = "小白";        dishMsgs[1] = "佛跳墙";        numbers[1] = 5;        dates[1] = new Date();        times[1] = sdf.format(dates[1]);        addresses[1] = "地域路2号院";        states[1] = 1;        sumPrices[1] = 500;        // 初始化用户可以选择的菜        String[] dishNames = { "八仙过海", "佛跳墙", "松鼠鱼", "红烧带鱼", "时令蔬菜", "辣土豆丝" };        // 定义每个菜的单价        double[] prices = { 88, 78.8, 58.0, 28.5, 50, 80 };        // 定义点赞 的数组        int[] praiseNums = new int[6];        praiseNums[0] = 5;        praiseNums[1] = 10;        System.out.println("***********欢迎进入《吃货联盟》点餐系统***********");        Scanner scanner = new Scanner(System.in);        int num = -1; // 如果用户输入的是0 默认返回主菜单        boolean isExit = false;// 定义一个标记 来标识 用户是否退出系统 true:退出        do {            // 显示菜单供用户选择            System.out.println("当前系统时间是:" + sdf.format(new Date()));            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 choose = scanner.nextInt(); // 根据用户的选择执行不同的功能            switch (choose) {            case 1:                System.out.println("************我要订餐************");                // 定义一个标记判断餐带是否已满                boolean addFlag = false;                for (int i = 0; i < names.length; i++) { // 订餐人的集合                    if (names[i] == null) {                        addFlag = true;                        System.out.println("请输入订餐人的姓名:");                        names[i] = scanner.next(); // 获取订餐人的姓名                        System.out.println("您可以选择下列的菜品:");                        System.out.println("序号\t\t\t菜名\t\t\t单价\t\t\t点赞数");                        for (int j = 0; j < dishNames.length; j++) { // 遍历菜品                            String praiseNum = (praiseNums[j] > 0) ? praiseNums[j]                                    + "个赞"                                    : "";                            System.out.println(j + 1 + "\t\t\t" + dishNames[j]                                    + "\t\t\t" + prices[j] + "\t\t\t"                                    + praiseNum);                        }                        // 用户开始点菜                        System.out.println("请您选择菜品的编号:");                        int chooseDishName = scanner.nextInt();                        System.out.println("请您输入点餐的份数:");                        int number = scanner.nextInt();                        System.out.println("请您输入送餐的地址:");                        String address = scanner.next();                        System.out.println("请您输入送餐的时间:(时:分:秒)");                        String time = scanner.next();                        /**                         * 根据用户的餐费 判断是否收取送餐费   大于60免送餐费                          * 01.获取用户点的菜的单价                         * 02.获取总金额                         * 03.判断                         */                        double sumPrice = prices[chooseDishName - 1] * number;                        double price = (sumPrice > 60) ? 0 : 6;                        System.out.println("恭喜您订餐成功!");                        System.out.println("您定的菜品是:"                                + dishNames[chooseDishName - 1] + "\t" + number                                + "份");                        System.out.print("餐费:" + sumPrice);                        System.out.print("\t送餐费:" + price);                        System.out.println("\t总费用:" + (price + sumPrice));                        // 向数组中增加数据                        times[i] = sdf.format(sdf.parse(time)); // 时间                        addresses[i] = address; // 地址                        sumPrices[i] = (sumPrice + price); // 总金额                        dishMsgs[i] = dishNames[chooseDishName - 1]; // 定的菜品                        states[i] = 0; // 订餐的状态                        numbers[i] = number; // 份数                        break;                    }                }                if (!addFlag) {
// 餐袋已经满了 System.out.println("餐袋已经满了"); } break; case 2: System.out.println("************查看餐袋************"); /** * 显示 * 编号 订餐人 菜品(份数) 送餐时间 送餐地址 总金额 状态 */ System.out .println("编号\t\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 state = (states[i] == 0) ? "已经预定" : "已经完成"; // 获取状态 String time = times[i]; // 获取时间 String sumPrice = sumPrices[i] + "元"; // 总金额 String address = addresses[i]; // 地址 String dishMsg = dishMsgs[i]; // 菜品 int count = numbers[i]; System.out.println(i + 1 + "\t\t" + names[i] + "\t\t" + dishMsg + "(" + count + ")" + "\t\t" + time + " \t\t" + address + "\t\t" + sumPrice + "\t\t" + state + "\t\t" + praiseNums[i]); } } break; case 3: System.out.println("************签收订单************"); /** * 01.状态为已经完成!不需要签收 * 02.状态为已经预定!需要签收 * 03.没有指定的订单,不能签收 */ System.out.println("请您输入需要签收的订单编号:"); int sign = scanner.nextInt(); // 定义一个标记 来判断订单是否被签收 int flag = 0; for (int i = 0; i < names.length; i++) { if (names[i] != null && states[i] == 0) {
// 01.有订单 可以签收 states[i] = 1;// 改变状态 flag = 1; break; // 必须退出 否则 后续的都会变成签收 } else if (names[i] != null && states[i] == 1) {
// 02.有订单 flag = 2; } } if (flag == 1) { System.out.println("订单已经签收!"); } else if (flag == 2) { System.out.println("订单不需要重复签收!"); } else { System.out.println("没有指定的订单!请您核实!"); } break; case 4: System.out.println("************删除订单************"); System.out.println("请您输入需要删除的订单编号:"); int delNum = scanner.nextInt(); // 定义一个标记 来判断订单是否被签收以及是否存在 int delFlag = 0; for (int i = 0; i < names.length; i++) { if (names[i] != null && states[delNum - 1] == 1) { // 可以删除 // 有指定的订单 // 状态是已经完成 // 删除位置 之后的所有元素 依次前移 for (int j = delNum - 1; j < names.length - 1; j++) { names[j] = names[j + 1]; // 订餐人 dishMsgs[j] = dishMsgs[j + 1];// 菜品 times[j] = times[j + 1];// 时间 addresses[j] = addresses[j + 1];// 地址 states[j] = states[j + 1];// 状态 numbers[j] = numbers[j + 1];// 份数 } delFlag = 1; break; } else if (names[i] != null && states[i] == 0) { // 订单还没有签收 delFlag = 2; } } if (delFlag == 1) { System.out.println("订单已经被删除"); } else if (delFlag == 2) { System.out.println("订单还没有签收 不允许删除!"); } else { System.out.println("没有找到指定的订单!"); } break; case 5: System.out.println("************我要点赞***************"); System.out.println("编号\t\t\t菜名\t\t\t价格"); for (int i = 0; i < dishNames.length; i++) { // 遍历所有的菜名 String price = prices[i] + "元"; // 获取价格 String name = dishNames[i]; System.out.println(i + 1 + "\t\t\t" + name + "\t\t\t" + price); } System.out.println("请您输入点赞的菜品编号:"); int chooseNum = scanner.nextInt(); praiseNums[chooseNum - 1]++;// 点赞数加+1 System.out.println("谢谢参与!点赞成功!"); break; case 6: // 退出系统 isExit = true; break; default: // 退出系统 isExit = true; break; } if (!isExit) { // 默认这是不退出 System.out.println("输入0返回主菜单!"); num = scanner.nextInt(); } else { break; // 退出系统 } } while (num == 0); System.out.println("谢谢您的光临!!!!!"); }}

 

转载于:https://www.cnblogs.com/xtdxs/p/7093802.html

你可能感兴趣的文章
LR录制脚本时IE打不开的原因
查看>>
类的基础
查看>>
微博自动化测试
查看>>
Sublime Text 2.0.2,Build 2221注册码
查看>>
js scroll事件
查看>>
day08 文件操作
查看>>
最长递增子序列 动态规划
查看>>
「小程序JAVA实战」微信小程序工程结构了解(五)
查看>>
使用列表
查看>>
Edge browser hosts file
查看>>
原生CSS设置网站主题色—CSS变量赋值
查看>>
概率dp - UVA 11021 Tribles
查看>>
webpack 4.0 中 clean-webpack-plugin 的使用
查看>>
数据库神器:Navicat Premium
查看>>
WPF
查看>>
Best website for Photogrammetry
查看>>
中文词频统计
查看>>
POJ 2236 Wireless Network (并查集)
查看>>
python分类
查看>>
linux 中常见的压缩和解压缩的命令
查看>>