package cn.kgc.demo1;

import java.util.Scanner;

/**

  • 吃货联盟订餐管理系统
  • @author rong.zhou

*/
public class OrderingMsg {
public static void main(String[] args) {
// 数据主体:一组订单信息
String[] names = new String[4]; // 订餐人名称
String[] dishMegs = new String[4]; // 所选菜品
int[] times = new int[4]; // 送餐日期
String[] addresses = new String[4]; // 送餐地址
int[] states = new int[4]; // 订单状态: 0:已预定 1:已完成
double[] sumPrices = new double[4]; // 总金额

 //初始化2个订单信息names[0] = "张晴";dishMegs[0] = "红烧带鱼 2份";times[0] = 3;addresses[0] = "天成路207号";sumPrices[0] = 76.0;states[0] = 1;names[1] = "张晴";dishMegs[1] = "鱼香肉丝 2份";times[1] = 10;addresses[1] = "天成路207号";sumPrices[1] = 20.0;// 供选择的菜品信息String[] dishNames = { "红烧带鱼", "鱼香肉丝", "时令鲜蔬" }; // 菜品名称double[] prices = new double[] { 38.0, 20.0, 10.0 }; // 菜品单价int[] praiseNums = new int[3];Scanner input = new Scanner(System.in);int num = -1; // 用户输入0返回主菜单,否则退出系统boolean isExit = false; // 标志用户是否退出系统: true:退出系统System.out.println("\n欢迎使用“吃货联盟订餐系统”");// 循环:显示菜单,根据用户选择的数字执行相应功能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("请选择:");int choose = input.nextInt(); // 记录用户选择的功能编号boolean isAdd = false;  //记录是否可以订餐boolean isSignFind = false;  //找到要签收的订单boolean isDelFind = false;  //找到要删除的订单// 根据用户选择的功能编号执行相应功能switch (choose) {case 1:// 我要订餐System.out.println("***我要订餐***");for (int j = 0; j < names.length; j++) {                   if(names[j] == null){  //找到第一个空位置,可以添加订单信息isAdd = true;  //置标志位,可以订餐System.out.print("请输入订餐人姓名:");String name = input.next(); // 显示供选择的菜品信息System.out.println("序号" + "\t" + "菜名"+"\t"+"单价");for (int i = 0; i < dishNames.length; i++) {String price = prices[i] + "元";String priaiseNum = (praiseNums[i]) > 0 ? praiseNums[i]+ "赞" : "";System.out.println((i + 1) + "\t" + dishNames[i] + "\t"    +price+"\t"+ priaiseNum);}// 用户点菜System.out.print("请选择您要点的菜品编号:");int chooseDish = input.nextInt();System.out.print("请选择您需要的份数:");int number = input.nextInt();String dishMeg =  dishNames[chooseDish - 1]+" "+ number + "份";double sumPrice = prices[chooseDish - 1] * number;//餐费满50元,免送餐费10元double deliCharge = (sumPrice>=50)?0:6;                   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();//无需添加状态,默认是0,即已预定状态。System.out.println("订餐成功!");System.out.println("您订的是:"+dishMeg);System.out.println("送餐时间:"+time+"点");System.out.println("餐费:"+sumPrice+"元,送餐费"+deliCharge+"元,总计:"+(sumPrice+deliCharge)+"元。");//添加数据names[j] = name;dishMegs[j] = dishMeg;times[j] = time;addresses[j] = address;sumPrices[j] = sumPrice+deliCharge;break;                    }}if(!isAdd){System.out.println("对不起,您的餐袋已满!");}break;case 2:// 查看餐袋System.out.println("***查看餐袋***");System.out.println("序号\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 date = times[i]+"日";String sumPrice = sumPrices[i]+"元";System.out.println((i+1)+"\t"+names[i]+"\t"+dishMegs[i]+"\t"+date+"\t"+addresses[i]+"\t"+sumPrice+"\t"+state);}}break;case 3:// 签收定单System.out.println("***签收定单***");System.out.print("请选择要签收的订单序号:");int signOrderId = input.nextInt();for(int i=0;i<names.length;i++){//状态为已预定,序号为用户输入的订单序号:可签收//状态为已完成,序叼为用户输入胡订单序号:不可签收                   if(names[i]!=null && states[i]==0 && signOrderId==i+1){states[i] = 1; //将状态值置为已完成System.out.println("订单签收成功!");isSignFind = true;}else if(names[i]!=null && states[i]==1 && signOrderId==i+1){System.out.println("您选择的订单已完成签收,不能再次签收!");isSignFind = true;}}//未找到的订单序号:不可签收if(!isSignFind){System.out.println("您选择的订单不存在!");}break;case 4:// 删除订单System.out.println("***删除订单***");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];times[j] = times[j+1];addresses[j] = addresses[j+1];states[j] = states[j+1];}//最后一位清空names[names.length-1] = null;dishMegs[names.length-1] = null;times[names.length-1] = 0;addresses[names.length-1] = null;states[names.length-1] = 0;System.out.println("删除订单成功!");break;}else if(names[i]!=null && states[i]==0 && delId==i+1){System.out.println("您选择的订单未签收,不能删除!");isDelFind = true;break;}}//未找到该序号的订单:不能删除if(!isDelFind){System.out.println("您要删除的订单不存在!");}                          break;case 5:// 我要点赞System.out.println("***我要点赞***");// 显示菜品信息System.out.println("序号" + "\t" + "菜名"+"\t"+"单价");for (int i = 0; i < dishNames.length; i++) {String price = prices[i] + "元";String priaiseNum = (praiseNums[i]) > 0 ? praiseNums[i]+ "赞" : "";System.out.println((i + 1) + "\t" + dishNames[i] + "\t"  +price+"\t"+ priaiseNum);}System.out.print("请选择您要点赞的菜品序号:");int priaiseNum = input.nextInt();praiseNums[priaiseNum-1]++;  //赞数加1System.out.println("点赞成功!");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("谢谢使用,欢迎下次光临!");
}

}

吃货联盟订餐管理系统相关推荐

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

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

  2. 吃货联盟订餐系统(用对象和数组来写的)

    目录 一.自我介绍 2.吃货联盟订餐系统 1.首先创建一个订单类 2.创建一个餐品类 3.创建一个操作类(作用是添加订单 ,删除订单等操作) 三.未来的发展规划 四.图书管理系统(用数组写的) 一.自 ...

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

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

  4. 吃货联盟订餐系统项目

    吃货联盟订餐系统项目 ​ 代码思路: 第一阶段:分析数据主题 第二阶段:分析并完成整体框架 第三阶段:分析并完成退出功能 第四阶段:分析并完成订餐功能 第五阶段:分析并完成查看餐袋功能 第六阶段:分析 ...

  5. java吃货联盟app讲解_java吃货联盟订餐系统

    ackage cn.practice1200; import java.util.Scanner; public class Eater_Alliance { /** * 吃货联盟订餐系统 * * @ ...

  6. 代码:吃货联盟订餐系统

    package Temporary.cn.kgc;import java.util.Scanner;public class Eater_Alliance {public static void ma ...

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

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

  8. java订餐系统_Java——吃货联盟订餐系统

    public static voidmain(String[] args) { String[] names= new String[4]; //订餐人姓名 String[] dishMegs = n ...

  9. java基础项目案例:吃货联盟订餐系统

    package org;import java.util.Scanner;public class OrderingUtil {Scanner input = new Scanner(System.i ...

  10. 吃货联盟订餐系统 java

    package com.chi; import java.util.Scanner; public class OrderingUtil { Scanner input = new Scanner(S ...

最新文章

  1. c语言中仅分号,问什么C程序里总是提示缺少分号;,而明明有分号?
  2. 2021年黑龙江高考成绩查询,黑龙江省招生考试信息港:2021年黑龙江高考成绩查询入口、查分系统...
  3. 别让腾讯“科技向善”太孤独!
  4. JSpider(3):JSpider的结构
  5. 使用正当时!用扩展全面武装Firefox
  6. Struts2 回顾总结
  7. 离散傅里叶变换MATLAB实现
  8. 学习操作系统心得体会
  9. c语言递归算法简单例子加讲解,递归算法经典例子C语言实现递归算法
  10. 容安馆札记 606-610则 笺疏
  11. (非常小白)浏览器输入阿里云外网ip无法访问
  12. xshell不能通过账户密码连接虚拟机
  13. 5G课程笔记--华为ICT课堂(初学)(二)
  14. 主动触控笔_如何自定义表面笔触控笔
  15. SzNOI语法百题之1-10
  16. javascript字符串匹配正则表达式方法
  17. 小程序轮播图_厉害!对准不认识的野生菌拍个图,云大学生设计的这个小程序就能自动识别…...
  18. 【组合逻辑电路】——显示译码器
  19. [教程] 米4终极救黑砖教程 有用
  20. android app根目录下cache,Android 手机存储目录详解

热门文章

  1. 【樽海鞘算法】基于樽海鞘算法求解多目标问题附matlab代码
  2. 求模板啊,求软著说明书模板啊
  3. Java Web项目开发项目经验总结
  4. Multistage GAN for Fabric Defect Detection 用于织物检测的多级GAN
  5. 用excel做logistic回归分析_利用SPSS进行Logistic回归分析
  6. 元进Python(3)---如何实现IP子网掩码计算器功能?
  7. cvs数据格式 gps_全站仪和GPS数据格式的转化方法
  8. 设计窗freqz函数matlab,freqz函数
  9. 4K视频质量分析 白皮书
  10. CAS单点登录原理分析(一)