package org;import java.util.Scanner;public class OrderingUtil {Scanner input = new Scanner(System.in);String[] names = new String[5];// 保存订餐人姓名String[] dishMegs = new String[5];// 保存所选菜品名int[] dishNums = new int[5];// 保存所选菜品份数int[] times = new int[5];// 保存送餐时间String[] addresses = new String[5];// 保存送餐地址int[] states = new int[5];// 保存订单状态:0表示已预订,1表示已完成double[] sumPrices = new double[5];// 保存订单的总金额int[] praiseNums = new int[5];String[] dishNames = { "大盘鸡", "干锅鸭", "水煮鱼", "麻婆豆腐", "油焖大虾" };double[] prices = { 20.0, 25.0, 10.0, 30.0, 20.0 };public void init() {// 初始化3条订单信息// 第1条names[0] = "张三";dishMegs[0] = "大盘鸡";dishNums[0] = 3;times[0] = 12;addresses[0] = "北京路";states[0] = 0;sumPrices[0] = 60.0;// 第2条names[1] = "李四";dishMegs[1] = "麻婆豆腐";dishNums[1] = 2;times[1] = 19;addresses[1] = "南京路";states[1] = 1;sumPrices[1] = 60.0;// 第3条names[2] = "王五";dishMegs[2] = "水煮鱼";dishNums[2] = 1;times[2] = 19;addresses[2] = "天津路";states[2] = 1;sumPrices[2] = 15.0;}public void display() {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) ? "已预订" : "已完成";System.out.println((i + 1) + "\t\t" + names[i] + "\t\t"+ dishMegs[i] + "\t\t" + dishNums[i] + "份" + "\t\t"+ times[i] + "\t\t" + addresses[i] + "\t\t"+ sumPrices[i] + "元" + "\t\t" + state);}}}public void add() {System.out.println("***我要订餐***");boolean isAdd = false;// 记录是否可以点餐for (int i = 0; i < names.length; i++) {if (names[i] == null) {isAdd = false;System.out.print("请输入订餐人姓名:");String name = input.next();System.out.println("序号" + "\t\t" + "菜名" + "\t\t" + "单价"+ "\t\t" + "点赞数");for (int j = 0; j < dishNames.length; j++) {System.out.println((j + 1) + "\t\t" + dishNames[j] + "\t\t"+ prices[j] + "元" + "\t\t" + praiseNums[j]);}System.out.print("请选择您要点的菜品编号:");int chooseDish = input.nextInt();String dishMeg = dishNames[chooseDish - 1];System.out.print("请选择您需要的份数:");int number = input.nextInt();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("您定的是:" + dishNames[chooseDish - 1] + number+ "份");System.out.println("送餐时间:" + time + "点");double sumPrice = prices[chooseDish - 1] * number;// 计算餐费double sendMoney = (sumPrice >= 50) ? 0 : 5;// 计算送餐费System.out.println("餐费:" + sumPrice + "元," + "送餐费" + sendMoney+ "元," + "总计:" + (sumPrice + sendMoney) + "元。");// 添加数据names[i] = name;dishMegs[i] = dishMeg;times[i] = time;dishNums[i] = number;addresses[i] = address;sumPrices[i] = sumPrice + sendMoney;break;}if (isAdd) {System.out.println("对不起,您的餐袋已满!");}}}public void delete() {System.out.println("***删除订单***");boolean isDelFind = false;System.out.print("请输入要删除的订单序号:");int delID = input.nextInt();for (int i = 0; i < names.length; i++) {// 根据状态值判断能不能删除,只有已完成的才能删除if (names[i] != null && states[i] == 1 && delID == i + 1) {isDelFind = true;for (int j = delID - 1; j < names.length - 1; j++) {names[j] = names[j + 1];dishMegs[j] = dishMegs[j + 1];dishNums[j] = dishNums[j + 1];times[j] = times[j + 1];addresses[j] = addresses[j + 1];states[j] = states[j + 1];sumPrices[j] = sumPrices[j + 1];}// 将最后一位清空names[names.length - 1] = null;dishMegs[names.length - 1] = null;dishNums[names.length - 1] = 0;times[names.length - 1] = 0;addresses[names.length - 1] = null;states[names.length - 1] = 0;sumPrices[names.length - 1] = 0;System.out.println("删除订单成功!");break;} else if (names[i] != null && states[i] == 0 && delID == i + 1) {isDelFind = true;System.out.println("您选择的订单未签收,不能删除!");break;}} // 未找到的订单不能删除if (!isDelFind) {System.out.println("您要删除的订单不存在!");}}public void sign() {System.out.println("***签收订单***");boolean isSignFind = false;System.out.print("请选择要签收的订单序号:");int sign = input.nextInt();for (int i = 0; i < names.length; i++) {if (names[i] != null && states[i] == 0 && sign == i + 1) {states[i] = 1;System.out.println("订单签收成功!");isSignFind = true;// 标记已找到的订单} else if (names[i] != null && states[i] == 1 && sign == i + 1) {System.out.println("您选择的订单已完成签收,不能再次签收!");isSignFind = true;// 标记已找到的订单}}if (!isSignFind) {System.out.println("您选择的订单不存在!");}}public void praise() {System.out.println("***我要点赞***");// 显示菜品信息System.out.println("序号\t菜名\t单价");for (int i = 0; i < dishNames.length; i++) {String priaiseNum = (praiseNums[i] > 0) ? praiseNums[i] + "赞" : "";System.out.println((i + 1) + "\t" + dishNames[i] + "\t" + prices[i]+ "元" + priaiseNum);}System.out.print("请选择您要点赞的菜品序号:");int number = input.nextInt();praiseNums[number - 1]++;System.out.println("点赞成功");}public void startMenu() {init();/* 实现菜单切换 */System.out.println("欢迎使用“吃货联盟订餐系统”");int num = 1;// 用户输入0返回主菜单否则退出系统boolean isExit = false;// 标记用户是否退出系统,true为退出// 循环控制用户输入选择并执行do {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.print("请选择:");num = input.nextInt();// 用户输入所要选择进行的操作/* 使用switch结构来建立选择内容 */switch (num) {case 1:// 我要订餐add();break;case 2:// 查看订单display();break;case 3:// 我要签收sign();break;case 4:// 删除订单delete();break;case 5:// 我要点赞praise();break;case 6:// 退出isExit = true;break;default:// 输入不合法,直接退出isExit = true;break;}// 返回主界面if (!isExit) {System.out.print("输入0返回:");num = input.nextInt();} else {break;}} while (num == 0);System.out.println("谢谢惠顾,欢迎您再次使用!");input.close();}}
package org;
public class OrderingMgr {public static void main(String[] args) {OrderingUtil od = new OrderingUtil();od.startMenu();}
}

java基础项目案例:吃货联盟订餐系统相关推荐

  1. 大数据学习——Java项目实战-吃货联盟订餐系统

    吃货联盟订餐系统 项目需求 项目环境准备 项目覆盖技能点 阶段划分 难点分析 使用数组对象保存订单信息 访问订单信息 删除订单信息 计算订单的总金额 项目实现思路 数据初始化 实现菜单切换 实现查看餐 ...

  2. 小实战项目之——吃货联盟订餐系统

    系统概述: 我要订餐 查看餐袋 签收订单 删除订单 我要点赞 退出系统 下面是实例代码: import java.util.Scanner;public class OrderFoodSys {pub ...

  3. Java面向对象 --- 吃货联盟订餐系统(完整版)

    文章目录 为什么使用面向对象 划分类 代码编写 为什么使用面向对象 Java面向对象版本的吃货联盟订餐系统: 因为基础版本都在一个类中实现的功能,太过于麻烦,不清楚 ,所以说我们利用面向对象制作吃货联 ...

  4. 10、Java——吃货联盟订餐系统(基础知识)

    目录 项目需求 项目环境准备 案例覆盖的技能点 难点分析 1. 使用数组对象保存订单信息 2.访问订单信息 3. 删除订单信息 4. 计算订单的总金额 项目实现思路 1. 数据初始化 2. 实现菜单切 ...

  5. Java基础之吃货联盟订餐系统Version1.0

    注意:此项目为刚学完Java基础至数组的入门程序. 吃货联盟订餐系统Version1.0是在数组的基础上完成的一个小项目,由于只是运用数组实现了一些简单的功能, 所以我管它叫Version1.0,即1 ...

  6. Java——吃货联盟订餐系统(基础知识)

    项目需求     (1)现今已经进入网络时代,人们的日常生活已经离不开网络,如网上购物.看新闻.交友等.     (2)"只要点点手指,就能送餐上门",网上订餐越来越受到都市年轻人 ...

  7. Java基础 吃货联盟订餐系统

    Java基础 吃货联盟订餐系统 需求分析 系统概述 搭建框架 编写功能 项目总结 需求分析 系统概述 "只要动动手指,就能送餐上门",网上订餐深受现代人青睐,现开发一个网上订餐系统 ...

  8. java案例之吃货联盟订餐系统

    java案例之吃货联盟订餐系统 今天是本博主第一次发博客记录的学习之旅,如有错误欢迎大家指出在下的失误呀, 废话不多说上案例!! 吃货联盟具体的功能如图6个功能所示 整体的开发思路如下 订单类主要有六 ...

  9. Java基础——吃货联盟订餐系统

    吃货联盟订餐系统 刚刚学完java基础入门,主要学习Java基本环境搭建,定义变量.选择结构,循环结构.数组等.本阶段结束尝试接触此次吃货联盟订餐系统,第一次敲这么长的代码,后面多见识见识应该就好了, ...

最新文章

  1. 在pycharm中无法引入同一目录下的python文件
  2. 系统架构师设计师2009-2016真题与模拟题汇总免费下载
  3. sqoop 1.4.4-cdh5.1.2快速入门
  4. Sublime Text插件列表
  5. 做嵌入式的必须学Android吗
  6. 基于区块链技术的数据资产管理机制研究
  7. Opencv--copyTo()函数的使用方法
  8. 查看linux可用磁盘空间_如何在Linux中检查可用磁盘空间
  9. mysql当执行delete语句时备份_mysql中,执行delete语句时出现Lock wait timeout exceeded问题...
  10. 编译器各个步骤的介绍
  11. python程序下载腾讯企业邮箱附件_python批量下载邮件附件
  12. Mount is denied because the NTFS volume is already exclusively opened.
  13. PS学习之动态表情制作
  14. 计算机应用基础(专)【7】
  15. 解析mac苹果电脑与Windows电脑的区别。他们各自有什么优势?
  16. win7 svchost.exe占用内存和CPU很高,电脑很卡的解决方法
  17. Origin色卡(oth、pal格式)
  18. 10分钟,学会从上帝视角看产品数据
  19. adb install 安装APK Failure INSTALL_FAILED_ALREADY_EXISTS Attempt to re-install without first
  20. 6、从键盘接收一百分制成绩(0~100),要求输出其对应的成绩等级A~E。其中,90分以上为‘A‘,80~89分为‘B‘,70~79分为‘C‘,60~69分为‘D‘,60分以下为‘E‘。

热门文章

  1. 天津电子计算机职专什么时候开学,2020年开学时间表
  2. spark 的第一个程序 WordCount(详细注释版)
  3. Picture-In-Picture 画中画模式
  4. [转]李战大师-悟透delphi-第二章 DELPHI与WIN32时空
  5. 生产环境 遭遇 fastJson1.2.78 巨坑
  6. bootstrap实现手风琴功能(树形列表)
  7. win7 系统增加自定义分辨率_【文献转载】GT5000便携式多参数土壤呼吸测量系统用于棉花田间土壤二氧化碳释放量的测量...
  8. QQ五笔,正式公测版,与众Q友分享,附件
  9. es6 javascript的字符串对象新增团员方法
  10. Encoder-Decoder自动生成对联,要试试么?