房上的猫:吃货联盟项目

一.首先先定义部分成员变量:

String[] name = new String[4];// 订餐人
    String[] greens = new String[4];// 储存菜品名称
    String[] green = { "红烧带鱼", "鱼香肉丝", "时令鲜蔬" };// 菜品
    int[] num = new int[4];// 份数
    int[] time = new int[4];// 时间
    String[] site = new String[4];// 地址
    String[] state = new String[] { "预定", "预定", "预定", "预定" };// 订单状态
    double[] money = { 38, 20, 10 };// 单价
    int[] number = new int[3];// 点赞数
    double give;// 送餐费
    double[] moneys = new double[4];// 总金额
    Scanner bdqn = new Scanner(System.in);// 扫描仪
    int back;// 选择返回首页
    int i;// 数组下标
    int sign;// 签收订单
    int have;// 判断已签收订单

二.创建首页方法(为了方便调用,代码清晰):

public void System() {// 首页
        System.out.println("\n欢迎使用“吃货联盟订餐系统”");
        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("**********************************************");
    }

三.编写订餐系统:

public void Order() {// 订餐系统
        int bh = 0;
        for (; i < time.length;) {// 各数组的储存下标
            System.out.print("请输入订餐人姓名:");
            name[i] = bdqn.next();// 记录订餐人
            do {
                System.out.println("序号\t菜名\t单价\t点赞数");
                for (int j = 0; j < 3; j++) {// 循环输出菜单
                    System.out.println((j + 1) + "\t" + green[j] + "\t" + money[j]
                            + "\t" + number[j]);
                }
                System.out.print("请选择您要点的菜品编号:");
                bh = bdqn.nextInt();
                if (bh > 3 || bh < 1) {// 判断选菜
                    System.out.println("无此编号,请重新选择!");
                }
            } while (bh > 3 || bh < 1);// 无选择编号,循环重新选择菜单
            greens[i] = green[bh - 1];// 记录菜品
            System.out.print("请选择您需要的份数:");
            num[i] = bdqn.nextInt();// 记录份数
            System.out.print("请输入送餐时间(10-20之间的整数):");
            do {
                time[i] = bdqn.nextInt();// 记录送餐时间
                if (time[i] < 10 || time[i] > 20) {
                    System.out.print("此时间不营业,请重新输入(10-20之间的整数):");
                }
            } while (time[i] < 10 || time[i] > 20);// 不在送餐时间,则循环重新输入时间
            System.out.print("请输入送餐地址:");
            site[i] = bdqn.next();// 记录送餐地址
            System.out.println("订餐成功!");
            System.out.println("您订的是:" + greens[i] + "" + num[i] + "份");
            System.out.println("送餐时间:" + time[i] + "点");
            moneys[i] = money[bh - 1] * num[i] + give;// 送餐费的判断依据
            if (moneys[i] < 50) {// 判断是否有送餐费
                give = 5;
            }
            System.out.println("餐费:" + (moneys[i] - give) + "元,送餐费:" + give
                    + "元,总计:" + moneys[i] + "元。");
            break;
        }
        if (i >= name.length) {// 餐袋限额为4,装满则输出该语句
            System.out.println("餐袋已满!");
        } else {
            i++;
        }
    }

四.编写餐袋系统:

public void Look() {// 餐袋系统
        for (int j = 0; j < i; j++) {// 循环输出餐袋,i为订餐数,超出i则不输出,防止输出空值
            System.out.println((j + 1) + "\t" + name[j] + "\t" + greens[j]
                    + num[j] + "份\t" + time[j] + "点\t" + site[j] + "\t"
                    + moneys[j] + "\t" + state[j]);
        }
    }

五.编写签收系统:

    public void Sign() {// 签收系统
        System.out.print("请选择要签收的订单序号:");
        sign = bdqn.nextInt();
        if (sign == have) {// 判断,如果签收后,提示该语句
            System.out.println("您选择的订单已完成签收,不能再次签收!");
        } else if (sign <= i) {// 有选择的订单,则赋值“签收”
            have = sign;// 该订单签收后,将签收的序列号储存
            state[sign - 1] = "签收";
            System.out.println("订单签收成功!");
        } else {
            System.out.println("无此订单!");
        }
    }

六.编写删除系统:

public void Delete(int delete) {// 删除系统
        if (delete <= i) {// 判断是否有该订单
            if (state[delete - 1].equals("签收")) {// 判断该订单是否签收过
                for (int t = delete - 1; t < (i - 1); t++) {// 元素前移,条件为删除的订单{(i-1)是为了防止数组溢出}
                    name[t] = name[t + 1];
                    greens[t] = greens[t + 1];
                    num[t] = num[t + 1];
                    time[t] = time[t + 1];
                    site[t] = site[t + 1];
                    moneys[t] = moneys[t + 1];
                    state[t] = state[t + 1];
                }
                System.out.println("删除订单成功!");
                i--;
                have = 0;
            } else {
                System.out.println("您选择的订单未签收,不能删除!");
            }
        } else {
            System.out.println("无此订单!");
        }
    }

七.编写点赞系统:

public void Like(int good) {// 点赞系统
        switch (good) {// 每次选择点赞该商品+1
        case 1:
            number[0]++;
            System.out.println("点赞成功!");
            break;
        case 2:
            number[1]++;
            System.out.println("点赞成功!");
            break;
        case 3:
            number[2]++;
            System.out.println("点赞成功!");
            break;
        default:
            System.out.println("无此商品序号!");
            break;
        }
    }

八.将各系统嵌套结合:

public void shown() {// 整体框架
        do {
            give = 0;
            System();// 首页
            System.out.print("请选择:");
            int select = bdqn.nextInt();
            if (select == 6) {// 退出
                break;
            }
            switch (select) {// 选择功能
            case 1:// 订餐
                System.out.println("***我要订餐***");
                Order();
                break;
            case 2:// 餐袋
                System.out.println("***查看餐袋***");
                System.out.println("序号\t订餐人\t餐品信息\t送餐时间\t送餐地址\t总金额\t订单状态");
                Look();
                break;
            case 3:// 签收
                System.out.println("***签收订单***");
                Sign();
                break;
            case 4:// 删除
                System.out.println("***我要订餐***");
                System.out.print("请输入要删除的订单号:");
                int scl = bdqn.nextInt();
                Delete(scl);
                break;
            case 5:// 点赞
                System.out.println("***删除订单***");
                System.out.print("请选择您要点赞的菜品序号:");
                int good = bdqn.nextInt();
                Like(good);
                break;
            default:
                System.out.println("您输入的数字没有相符合的系统,请重新选择:");
                break;
            }
            System.out.print("输入0返回:");
            back = bdqn.nextInt();
        } while (back == 0);
    }

九.程序入口,main()方法输出整体框架:

public static void main(String[] args) {
        Ordering pack = new Ordering();
        pack.shown();
        System.out.println("谢谢使用,欢迎下次光临!");
    }

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏牛肉圆粉不加葱

【源码剖析】- Spark 新旧内存管理方案(上)

Spark 作为一个以擅长内存计算为优势的计算引擎,内存管理方案是其非常重要的模块。作为使用者的我们,搞清楚 Spark 是如何管理内存的,对我们编码、调试及优...

771
来自专栏JavaQ

Java研发方向如何准备BAT技术面试答案(上)

最近因为忙于工作,没时间整理,本篇是下班后晚上抽空整理的,文中部分答案本来是想自己好好整理一份的,但是时间真的很紧,所以就整理了一下网络上的文章链接,挑了写的不...

3345
来自专栏圣杰的专栏

ABP入门系列(8)——Json格式化

讲完了分页功能,这一节我们先不急着实现新的功能。来简要介绍下Abp中Json的用法。为什么要在这一节讲呢?当然是做铺垫啊,后面的系列文章会经常和Json这个东...

2249
来自专栏好好学java的技术栈

各大公司Java后端开发面试题总结

Java虚拟机规范中将Java运行时数据分为六种。 1.程序计数器:是一个数据结构,用于保存当前正常执行的程序的内存地址。Java虚拟机的多线程就是通过线程轮流...

1085
来自专栏微信公众号:Java团长

Java中高级面试题

1)集合类:List和Set比较,各自的子类比较(ArrayList,Vector,LinkedList;HashSet,TreeSet);

644
来自专栏AhDung

【SQL】CLR聚合函数什么鬼

之前写过一个合并字符串的CLR聚合函数,基本是照抄MS的示例,外加了一些处理,已经投入使用很长时间,没什么问题也就没怎么研究,近日想改造一下,遇到一些问题,遂捣...

872
来自专栏Java3y

JSON就是这么简单

什么是JSON JSON:JavaScript Object Notation 【JavaScript 对象表示法】 JSON 是存储和交换文本信息的语法。类似...

2565
来自专栏Java大联盟

SpringMVC笔记(8):表单标签库

我们为什么要使用Spring MVC表单标签库?一句话,使用它是为了简化代码的开发,提高我们的效率,其实我们使用任何一款框架或者工具都是出于这个目的,实现快速开...

622
来自专栏java一日一条

2015年Java开发岗位面试题归类

3. 说说你知道的几个Java集合类:list、set、queue、map实现类咯。。。

551
来自专栏Java技术栈

跟我学 Java 8 新特性之 Stream 流(二)关键知识点

我们的第一篇文章,主要是通过一个Demo,让大家体验了一下使用流API的那种酣畅淋漓的感觉。如果你没有实践,我还是再次呼吁你动手敲一敲,自己实实在跑一遍上一篇的...

1064

扫码关注云+社区