如果有一天,能做到让程序自学习就好了;发呆发呆(`・ω・´);这个小项目我写了5个小时;
优化了好多天;希望大家珍惜;谢谢 by 阿飞~ ~

 

package com.opp.opp.bookone.ordering;

public class EattingHappyMain {    public static void main(String[] args) {

        EattingHappy eh = new EattingHappy();        eh.initial();       //初始化2例        eh.startMenu();     //主菜单先调用        eh.add();           //增        eh.delete();        //删        eh.display();       //查        eh.sign();          //签        eh.prices();        //赞    }}

 

package com.opp.opp.bookone.ordering;

import java.util.Scanner;

public class EattingHappy {

    /*     * 订餐人姓名、选择菜品、送餐时间、送餐地址、订单状态、需支付金额     * 1.创建对应的数组     * 2.数组的初始化     * 3.显示菜单     * 4.根据用户的选择进去指定的模块     */    Scanner scanner = new Scanner(System.in);    //         初始化用户可以选择的菜    String[] menuNames = {"兰花熊掌", "八仙过海", "红扒熊掌", "八宝熊掌", "龙虾霸王"};

    //               菜的单价    double[] prices = {300.5, 500.8, 200.0, 400.5, 880.8};

    //               点赞数

    //实例化对象    EattingHappySet ehs = new EattingHappySet();

    public void initial() {

        //        初始化2个订单        ehs.names[0] = "淅凤";        ehs.menus[0] = "兰花熊掌";        ehs.numbers[0] = 1;        ehs.times[0] = 8;        ehs.addresses[0] = "暂安处北大青鸟楼";        ehs.states[0] = 1;        ehs.money[0] = 50;        ehs.pNums[0] = 66;

        ehs.names[1] = "艾迪";        ehs.menus[1] = "八仙过海";        ehs.numbers[1] = 10;        ehs.times[1] = 12;        ehs.addresses[1] = "暂安处2号楼";        ehs.states[1] = 1;        ehs.money[1] = 500;        ehs.pNums[1] = 188;

    }

    //          一级主菜单    public void startMenu() {        System.out.println("*****************欢迎使用吃货联盟订餐系统*****************");        //        如果用户输入的是0,默认返回主餐单        int number;        boolean isExit = false;        do {            //            显示菜单供用户选择            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("*****************我要订餐*****************");                    add();                    break;                case 2:                    System.out.println("*****************查看订单*****************");                    display();                    break;                case 3:                    System.out.println("*****************签收订单*****************");                    sign();                    break;                case 4:                    System.out.println("*****************删除订单*****************");                    delete();                    break;                case 5:                    System.out.println("*****************我要点赞*****************");                    prices();                    break;                default:                    //                退出系统                    System.out.println("谢谢惠顾,欢迎下次光临!");                    isExit = true;                    break;            }            if (!isExit) {                System.out.println("输入0返回菜单");                number = scanner.nextInt();            } else {                break;            }        } while (number == 0);    }

    //    添加订单    public boolean add() {        boolean flag = false;

        //        遍历订餐人        for (int i = 0; i < ehs.names.length; i++) {            if (ehs.names[i] == null) {                //未达到上限                flag = true;                System.out.println("请输入您的姓名:");                //          订餐人姓名                ehs.names[i] = scanner.next();                System.out.println("请选择您想订购的美食:");                System.out.println("编号\t\t\t餐名\t\t\t\t单价\t\t\t点赞数");                //          遍历                for (int j = 0; j < menuNames.length; j++) {                    String n = ehs.pNums[j] > 0 ? ehs.pNums[j]                            + "个赞"                            : "";                    System.out.println(j + 1 + "\t\t\t" + menuNames[j]                            + "\t\t\t" + prices[j] + "\t\t\t" + n);                }

//                            用户开始点餐                System.out.println("请您点餐:(选择菜单号)");                int chooseMenuName = scanner.nextInt();                System.out.println("请您输入点餐的份数:");                int Number = scanner.nextInt();                System.out.println("请输入您的地址:");                String address = scanner.next();                System.out.println("请输入您需要的送餐时间:(请输入整点,小时)");                int time = scanner.nextInt();

//                          判断订单的金额是否满50元,如果不满足,则送餐费5元,满足则免运费                double sumPrice = prices[chooseMenuName - 1] * Number;                double price = (sumPrice > 50) ? 0 : 5;                System.out.print("订餐成功,");                System.out.println("您的订单为:" + menuNames[chooseMenuName - 1]                        + "\t" + Number + "份");                System.out.println("您的费用为:" + sumPrice);                System.out.println("您的运费为:" + price);                System.out.println("您的订单费用为:" + (price + sumPrice));

//                            将数据带入数组                ehs.times[i] = time;                ehs.addresses[i] = address;                ehs.money[i] = (sumPrice + price);                ehs.menus[i] = menuNames[chooseMenuName - 1];                ehs.states[i] = 0;                ehs.numbers[i] = Number;                break;            }        }        if (!flag) {            System.out.println("购物车已经满了");            return false;        }        return true;    }

    //      查看购物篮    public void display() {        //     查看购物     显示 序号 订餐人 餐品信息 送餐时间 送餐地址 总金额 订单状态        System.out.println("编号\t\t\t订餐人\t\t菜品(份数)\t\t\t送餐时间 " +                "\t\t\t送餐地址\t\t\t总金额\t\t\t状态\t\t\t点赞数量");        for (                int i = 0;                i < ehs.names.length; i++) {            if (ehs.names[i] != null) {                String state = (ehs.states[i] == 0) ? "正在配送" : "已经送达";                int time = ehs.times[i];                String sumPrice = ehs.money[i] + "元";                String address = ehs.addresses[i];                String menu = ehs.menus[i];                int count = ehs.numbers[i];                System.out.println(i + 1 + "\t\t\t" + ehs.names[i] + "\t\t\t" + menu + "\t"                        + count + "\t\t\t" + time + "\t\t\t" + address                        + "\t\t\t" + sumPrice + "\t\t\t" + state + "\t\t\t" + ehs.pNums[i]);            }        }    }

    public void sign() {        boolean flagA = false;        //       三种状态 1 已经签收的 不需要重复签收 2 在配送中 即将达到 可以签收 3 已经送达签收完毕 不能重复签收        System.out.println("请您输入需要签收的订单编号:");        int chooseNum = scanner.nextInt();        for (int i = 0; i < ehs.names.length; i++) {            if (ehs.names[i] != null && ehs.states[i] == 1 && i == chooseNum - 1) {                //      状态值设定为已完成                ehs.states[i] = 1;                System.out.println("订单签收成功");                flagA = true;//找到                break;            } else if (ehs.names[i] != null && ehs.states[i] == 1 && i == chooseNum - 1) {                System.out.println("您的订单已经完成签收,无法再次签收");                flagA = true;//找到            }        }        if (!flagA) {//未找到            System.out.println("您选择的订单不存在");        }    }

    public void delete() {        //          定标记 判断是否被签 是否存在        boolean flagB = false;        System.out.println("请您输入订单的编号");        int chooseNum = scanner.nextInt();        for (int i = 0; i < ehs.names.length; i++) {            if (ehs.names[i] != null && ehs.states[i] == 1 && i == chooseNum - 1) {

//                删除后,数组元素依次移位                for (int j = i; j < ehs.names.length - 1; j++) {

                    ehs.names[j] = ehs.names[j + 1];                    ehs.menus[j] = ehs.menus[j + 1];                    ehs.times[j] = ehs.times[j + 1];                    ehs.addresses[j] = ehs.addresses[j + 1];                    ehs.states[j] = ehs.states[j + 1];                    ehs.numbers[j] = ehs.numbers[j + 1];                    ehs.money[j] = ehs.money[j + 1];                    ehs.pNums[j] = ehs.pNums[j + 1];                }                int endChooseNum = ehs.names.length - 1;                ehs.names[endChooseNum] = null;                ehs.menus[endChooseNum] = null;                ehs.times[endChooseNum] = 0;                ehs.addresses[endChooseNum] = null;                ehs.states[endChooseNum] = 0;                ehs.money[endChooseNum] = 0;                ehs.pNums[endChooseNum] = 0;                System.out.println("删除订单成功");                flagB = true;                break;            } else if (ehs.names[i] != null && ehs.states[i] == 0 && i == chooseNum - 1) {                System.out.println("订单未签收,无法删除");                flagB = true;//找到                break;            }        }        if (!flagB) {            System.out.println("订单不存在");        }    }

    public void prices() {        //              显示菜品信息        System.out.println("序号\t\t\t餐名\t\t\t价格");        for (int i = 0; i < menuNames.length; i++) {            String price = prices[i] + "元";            String priaiseNum = (ehs.pNums[i] > 0 ? ehs.pNums[i] + "赞" : " ");            System.out.println((i + 1) + "\t" + menuNames[i] + "\t" + prices[i]);        }        System.out.println("请您输入点赞菜的序号:");        int pNum = scanner.nextInt();        ehs.pNums[pNum - 1]++;        System.out.println("点赞成功");    }}

 

package com.opp.opp.bookone.ordering;

public class EattingHappySet {    //        订餐人姓名    String[] names = new String[5];    //        菜品    String[] menus = new String[5];    //        份数    int[] numbers = new int[5];    //          送餐日期    int[] times = new int[5];    //        送餐地址    String[] addresses = new String[5];    //        送餐状态 true已完成订单 false 订单配送中    int[] states = new int[5];    //        支付金额    double[] money = new double[5];    //          点赞数    int[] pNums = new int[5];    //          签单    int[] signs = new int[5];

}

 

转载于:https://www.cnblogs.com/yunfeioliver/p/9074186.html

第一本书 第九章 使用对象吃货联盟相关推荐

  1. 第一个简单的程序——吃货联盟系统

    在写这篇文章的时候,我也不清楚自己能不能写好,但是想了想还是写一下吧,就当是为前面所学的东西做一下总结. 首先我们要清楚这个程序所需要的东西,第一件就是先定义数组,为数组定义一些元素,从而来实现数组中 ...

  2. Java程序编写 • 【第9章 程序:用定义类实现,吃货联盟订餐系统,新增商家和评论功能】

    本章节总结 返回作业目录 <吃货联盟订餐系统> 功能展示1:订餐 功能展示2:查看订单 功能展示3:签收订单 功能展示4:删除订单 功能展示5:商家评论 代码足有500多行,我会拆分开,进 ...

  3. JAVA 吃货联盟-北大青鸟--第十七章--

    存储数据 public class Demo3 {/*** 名字*/String[] name=new String[4]; /*** 订菜单*/String[] information=new St ...

  4. 学习jav的第十六天,吃货联盟订餐系统

    一.前言 诶,不知不觉就两天过去了,昨天没有发布是因为一直在做这个系统,说实话,自己的基础水平还是不够稳定,既然花了两天时间才能写出来,期间也遇到了不少难题,但是都是通过百度的方法解决了! 聊一下这个 ...

  5. Java吃货联盟订餐系统1.3-面向对象+I/O流

    吃货联盟订餐系统 author:luckyboy! version:1.3 知识储备:变量.数据类型.选择结构.循环结构.数组.面向对象.集合和I/O流 吃货联盟订餐系统概述 现在的互联网时代,足不出 ...

  6. 北大青鸟,Java基础练习,S1结业项目:“吃货联盟点餐系统”

    关于java的基础练习,可以更有效的来找到自己的不足之处,也可以锻炼自己的编程思想,这个吃货联盟系统包含了基础概念,变量.数据类型,也练习了顺序,选择,循环,跳转语句的编写编程的能力,最后还要求你会使 ...

  7. 吃货联盟订餐系统1.1-面向对象+数组

    吃货联盟订餐系统 author:luckyboy! version:1.1 知识储备:变量.数据类型.选择结构.循环结构.数组和面向对象 吃货联盟订餐系统概述 现在的互联网时代,足不出户只需要动动手指 ...

  8. java吃货联盟app讲解_吃货联盟订餐系统——JAVA实现

    package com.chihuo; import java.util.Scanner; public class OrderingMgr { public static void main(Str ...

  9. java吃货联盟系统源码_小项目,吃货联盟,java初级小项目,源代码

    小项目,吃货联盟,java初级小项目,源代码 1importjava.util.Scanner;23/**4* 吃货联盟订餐管理系统5*6*/7publicclassOrderingMsg {8pub ...

最新文章

  1. Hibernate 所有缓存机制详解
  2. python软件是免费的吗-python软件都是免费的吗
  3. mysql数据转储方法_Mysql数据库各种导出导入数据方式的区别(我的理解错误还望指正)...
  4. oracle 11gogg,【OGG】Oracle GoldenGate 11g (二) GoldenGate 11g 单向同步配置 上
  5. Python 内置模块之 asyncio(异步iO)
  6. android中保存Bitmap图片到指定文件夹中的方法
  7. 提高开发效率,eclipse的常用快捷键、旁门左道、系统错误小贴士
  8. ken沈oracle,甲骨文宣布推出Oracle商务软件
  9. codesys编程_明晚20:00,CODESYS教您制作可编程控制器
  10. hdu1251统计难题
  11. 使用 Design Pattern Toolkit 进行模型驱动的开发入门
  12. Android开机动画的基本流程
  13. 氚云无代码搭建学习记录
  14. 机器人行业毕业相关小结
  15. 嵌入式软件开发笔试面试知识点总结-操作系统部分
  16. 搞Java的年薪 40W 是什么水平? 1
  17. Unity3D之协程(Coroutines Yield )
  18. 飞行员态势感知的机理研究
  19. 使用HTML表单和表格完成静态QQ登陆界面
  20. 学习ios(必看经典)牛人40天精通iOS开发的学习方法

热门文章

  1. 造血干细胞最新进展(2021年1月版)
  2. Linux知识点求职应聘必备
  3. Blender 制作柱体骨架
  4. 0110 - 给 iPhone 6 换了电池
  5. 华硕Prime B250M-K+英特尔i3 7100 3.9GHz+HD 630黑苹果EFI引导文件
  6. JavaScript 类的三部曲(二)
  7. 报错:cannot match operand(s)in the condition to the corresponding edges in the enclosing event control
  8. IOST节点竞选计划公布,欢迎广大开发者参与成为节点!
  9. 野火STM32资源免费下载(视频,资料、手册、书籍等免费下载),知识传递
  10. 限速限流 算法 工具