吃货联盟订餐系统

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

吃货联盟订餐系统包含的功能:我要订餐、查看餐袋、签收订单、删除订单、我要点赞、退出系统

基本业务分析

我要订餐

1.输入订餐人姓名

2.将所有的菜品进行展示

3.输入要订的菜品序号

4.输入要订的菜品份数

5.输入配送时间

6.输入配送地址

7.显示订餐信息

查看餐袋
1.直接展示所有的订单信息

我要签收
1.展示所有的订单信息

2.输入要签收的订单序号

3.如果已经完成不允许重复签收

4.如果未完成则可以进行签收

5.展示签收成功

删除订单
1.展示所有的订单信息

2.输入要删除的订单序号

3.如果未完成(已预订)则不允许删除

4.如果已完成可以进行订单删除

5.展示删除成功

我要点赞
1.展示所有的菜品信息

2.输入点赞的菜品序号

3.提示点赞成功

退出系统
1.提示结束语

2.执行程序退出

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("谢谢使用,欢迎下次光临!");}}

附:有关eclipse的快捷键

  • 1.补全代码的声明:alt + /
  • 2.快速修复: ctrl + 1
  • 3.批量导包:ctrl + shift + o
  • 4.使用单行注释:ctrl + /
  • 5.使用多行注释: ctrl + shift + /
  • 6.取消多行注释:ctrl + shift + \
  • 7.复制指定行的代码:ctrl + alt + down 或 ctrl + alt + up
  • 8.删除指定行的代码:ctrl + d
  • 9.上下移动代码:alt + up 或 alt + down
  • 10.切换到下一行代码空位:shift + enter
  • 11.切换到上一行代码空位:ctrl + shift + enter
  • 12.如何查看源码:ctrl + 选中指定的结构 或 ctrl + shift + t
  • 13.退回到前一个编辑的页面:alt + left
  • 14.进入到下一个编辑的页面(针对于上面那条来说的):alt + right
  • 15.光标选中指定的类,查看继承树结构:ctrl + t
  • 16.复制代码: ctrl + c
  • 17.撤销: ctrl + z
  • 18.反撤销: ctrl + y
  • 19.剪切:ctrl + x
  • 20.粘贴:ctrl + v
  • 21.保存: ctrl + s
  • 22.全选:ctrl + a
  • 23.格式化代码: ctrl + shift + f
  • 24.选中数行,整体往后移动:tab
  • 25.选中数行,整体往前移动:shift + tab
  • 26.在当前类中,显示类结构,并支持搜索指定的方法、属性等:ctrl + o
  • 27.批量修改指定的变量名、方法名、类名等:alt + shift + r
  • 28.选中的结构的大小写的切换:变成大写: ctrl + shift + x
  • 29.选中的结构的大小写的切换:变成小写:ctrl + shift + y
  • 30.调出生成 getter/setter/构造器等结构: alt + shift + s
  • 31.显示当前选择资源(工程 or 文件)的属性:alt + enter
  • 32.快速查找:参照选中的 Word 快速定位到下一个 :ctrl + k
  • 33.关闭当前窗口:ctrl + w
  • 34.关闭所有的窗口:ctrl + shift + w
  • 35.查看指定的结构使用过的地方:ctrl + alt + g
  • 36.查找与替换:ctrl + f
  • 37.最大化当前的 View:ctrl + m
  • 38.直接定位到当前行的首位:home
  • 39.直接定位到当前行的末位:end

Java基础——吃货联盟订餐系统相关推荐

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

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

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

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

  3. Java实现吃货联盟订餐系统

    系统概述 "只要动动手指,就能送餐上门",网上定餐深受现代人青睐,现开发一个网上订餐系统,功能如下 l我要订餐 l查看餐袋 l签收订单 l删除订单 l我要点赞 l退出系统 pack ...

  4. java编程 吃货联盟订餐系统

    最近呢,奥密克绒出现了,疫情防控严格起来了,我的线下Java程序课程暂时改成了线上了,这两天上了面向对象,对于零基础的我来说还是比较难的,唉 只能说这个进程的速度我来不及消化,趁着周五复习一下也是很老 ...

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

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

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

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

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

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

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

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

  9. 吃货联盟订餐系统Java代码

    吃货联盟java代码 思路 七步骤 第一步:数据初始化 第二步:实现菜单显示与切换 第三步:实现订餐功能 第四步:实现查看餐袋功能 第五步:实现订餐签收功能 第六步:实现删除订餐功能 第七步:实现点赞 ...

最新文章

  1. Python yield 用法
  2. 青岛智能物联网产才融合中心成立,山东大学携手百度飞桨海尔海纳云等共育AI人才
  3. 中心极限定理_High Dimensional Probability(1) 中心极限定理
  4. 如何快速查找下载java项目所需jar包
  5. oracle查询访问记录,[原创]Oracle Spatial新驱动的查询记录实例
  6. 利用 Python 进行数据分析(Python 数据分析)· 第 2 版
  7. html 正方形代码,SVG rect
  8. python神经网络库识别验证码_基于TensorFlow 使用卷积神经网络识别字符型图片验证码...
  9. SQL结构化数据查询语言培训讲义
  10. 模型压缩_模型压缩:
  11. 核方法概述----正定核以及核技巧(Gram矩阵推导正定核)
  12. 恶意代码检测理论(静态与动态分析基础)
  13. DB2新建用户及数据库过程
  14. MOTO me525 DEFY 2.2 刷机全程详细指导
  15. 杂货机器人翻车实录:会被路人“吓”到,还会跟错主人!3千美元怕是买了个寂寞?
  16. 厦门大学计算机英语考试,【图片】一战厦大计算机上岸,经验帖。慢更【考研吧】_百度贴吧...
  17. 【传感器大赏】3轴磁场传感器
  18. SVN 第一次上传项目和问题的解决方法
  19. 集合框架(一)——概述
  20. 布袋除尘器过滤风速多少_布袋除尘器-布袋除尘器过滤风速是指的什么?-宏大除尘设备...

热门文章

  1. zblog网站副标题去掉短线 - 桃源侠
  2. 精品:AG 1.3.8 for mac 百度网盘不限速下载软件
  3. 大型医院电子病历系统源码(带编辑器源码)
  4. css hack解决IE5 IE5.5 IE6 Firefox浏览器兼容性
  5. 四大游览器兼容问题综合实例
  6. Web渗透实例复现(一)(通达OA11.2)
  7. 万能查询,总有你想要的!
  8. qq群活动引流php网站源码,QQ群自动私聊引流群发信息器源码
  9. BIEB六人行:网友给出小李的数据库查询慢的可能问题
  10. MongoDB利用$elemMatch对内嵌文档进行多条件查询