第一本书 第九章 使用对象吃货联盟
如果有一天,能做到让程序自学习就好了;发呆发呆(`・ω・´);这个小项目我写了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
第一本书 第九章 使用对象吃货联盟相关推荐
- 第一个简单的程序——吃货联盟系统
在写这篇文章的时候,我也不清楚自己能不能写好,但是想了想还是写一下吧,就当是为前面所学的东西做一下总结. 首先我们要清楚这个程序所需要的东西,第一件就是先定义数组,为数组定义一些元素,从而来实现数组中 ...
- Java程序编写 • 【第9章 程序:用定义类实现,吃货联盟订餐系统,新增商家和评论功能】
本章节总结 返回作业目录 <吃货联盟订餐系统> 功能展示1:订餐 功能展示2:查看订单 功能展示3:签收订单 功能展示4:删除订单 功能展示5:商家评论 代码足有500多行,我会拆分开,进 ...
- JAVA 吃货联盟-北大青鸟--第十七章--
存储数据 public class Demo3 {/*** 名字*/String[] name=new String[4]; /*** 订菜单*/String[] information=new St ...
- 学习jav的第十六天,吃货联盟订餐系统
一.前言 诶,不知不觉就两天过去了,昨天没有发布是因为一直在做这个系统,说实话,自己的基础水平还是不够稳定,既然花了两天时间才能写出来,期间也遇到了不少难题,但是都是通过百度的方法解决了! 聊一下这个 ...
- Java吃货联盟订餐系统1.3-面向对象+I/O流
吃货联盟订餐系统 author:luckyboy! version:1.3 知识储备:变量.数据类型.选择结构.循环结构.数组.面向对象.集合和I/O流 吃货联盟订餐系统概述 现在的互联网时代,足不出 ...
- 北大青鸟,Java基础练习,S1结业项目:“吃货联盟点餐系统”
关于java的基础练习,可以更有效的来找到自己的不足之处,也可以锻炼自己的编程思想,这个吃货联盟系统包含了基础概念,变量.数据类型,也练习了顺序,选择,循环,跳转语句的编写编程的能力,最后还要求你会使 ...
- 吃货联盟订餐系统1.1-面向对象+数组
吃货联盟订餐系统 author:luckyboy! version:1.1 知识储备:变量.数据类型.选择结构.循环结构.数组和面向对象 吃货联盟订餐系统概述 现在的互联网时代,足不出户只需要动动手指 ...
- java吃货联盟app讲解_吃货联盟订餐系统——JAVA实现
package com.chihuo; import java.util.Scanner; public class OrderingMgr { public static void main(Str ...
- java吃货联盟系统源码_小项目,吃货联盟,java初级小项目,源代码
小项目,吃货联盟,java初级小项目,源代码 1importjava.util.Scanner;23/**4* 吃货联盟订餐管理系统5*6*/7publicclassOrderingMsg {8pub ...
最新文章
- Hibernate 所有缓存机制详解
- python软件是免费的吗-python软件都是免费的吗
- mysql数据转储方法_Mysql数据库各种导出导入数据方式的区别(我的理解错误还望指正)...
- oracle 11gogg,【OGG】Oracle GoldenGate 11g (二) GoldenGate 11g 单向同步配置 上
- Python 内置模块之 asyncio(异步iO)
- android中保存Bitmap图片到指定文件夹中的方法
- 提高开发效率,eclipse的常用快捷键、旁门左道、系统错误小贴士
- ken沈oracle,甲骨文宣布推出Oracle商务软件
- codesys编程_明晚20:00,CODESYS教您制作可编程控制器
- hdu1251统计难题
- 使用 Design Pattern Toolkit 进行模型驱动的开发入门
- Android开机动画的基本流程
- 氚云无代码搭建学习记录
- 机器人行业毕业相关小结
- 嵌入式软件开发笔试面试知识点总结-操作系统部分
- 搞Java的年薪 40W 是什么水平? 1
- Unity3D之协程(Coroutines Yield )
- 飞行员态势感知的机理研究
- 使用HTML表单和表格完成静态QQ登陆界面
- 学习ios(必看经典)牛人40天精通iOS开发的学习方法
热门文章
- 造血干细胞最新进展(2021年1月版)
- Linux知识点求职应聘必备
- Blender 制作柱体骨架
- 0110 - 给 iPhone 6 换了电池
- 华硕Prime B250M-K+英特尔i3 7100 3.9GHz+HD 630黑苹果EFI引导文件
- JavaScript 类的三部曲(二)
- 报错:cannot match operand(s)in the condition to the corresponding edges in the enclosing event control
- IOST节点竞选计划公布,欢迎广大开发者参与成为节点!
- 野火STM32资源免费下载(视频,资料、手册、书籍等免费下载),知识传递
- 限速限流 算法 工具