iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Java实战之吃货联盟订餐系统
  • 558
分享到

Java实战之吃货联盟订餐系统

2024-04-02 19:04:59 558人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

目录一、前言二、基本业务分析三、完整代码四、有关eclipse的快捷键一、前言 刚刚学完Java基础入门,主要学习Java基本环境搭建,定义变量、选择结构,循环结构、数组等。本阶段结

一、前言

刚刚学完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];     //总金额
		
		//初始化两个订单信息
		names[0] = "盖伦";
		dishMegs[0] = "红烧带鱼 2份";
		times[0] = 3;
		addresses[0] = "德玛西亚";
		sumPrices[0] = 76.0;
		states[0] = 1;
		
		names[1] = "拉克丝";
		dishMegs[1] = "红烧带鱼 1份";
		times[1] = 10;
		addresses[1] = "德玛西亚";
		sumPrices[0] = 20;
		
		//供选择的菜品信息
		String[] dishNames = {"红烧带鱼","鱼香肉丝","时令蔬菜"};
		//菜品单价
		double[] prices = new double[] {38.0,20.0,10};
		int[] praiseNums = new int[3];
		Scanner input = new Scanner(System.in);
		//用户输入0返回主菜单,否则退出系统
		int num = -1;
		//标记用户是否提出系统 true:退出系统
		boolean isExit = false;
		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.println("请选择:");
			//记录客户选择功能的编号
		    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.println("请输入订餐人的姓名:");
						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.println("请选择您要点的菜品编号:");
						int chooseDish = input.nextInt();
						System.out.println("请选择您需要的份数:");
						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.println("请输入送餐时间(送餐时间是10点至20点间整点送餐:)");
					 int time = input.nextInt();
					 while (time<10||time>20) {
						 System.out.println("您输入有误,请输入10~20间的整数!");
						 time = input.nextInt();
					 }
					 System.out.println("请输入送餐地址:");
					 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订单状态");
				for (int i = 0; i < names.length; i++) {
					//查看餐袋中的内容,如果是空就跳出,不在查看
					if (names[i]==null) {
						String state = (states[i]==0)?"已预定":"已完成";
						String data = times[i]+"日";
						String sumPrice = sumPrices[i]+"元";
						System.out.println((i+1)+"\t"+names[i]+"\t"+dishMegs[i]+"\t"+addresses[i]+"\t"+sumPrice+"\t"+state);
					}
				}
		    	break;
		    case 3:
		    	//签收订单
		    	System.out.println("*********签收订单**********");
		    	System.out.println("请选择要签收的订单序号:");
		    	int signOrder = input.nextInt();
		    	for (int i = 0; i < names.length; i++) {
					//状态为已预定,序号为用户输入的订单序号:可签收
		    		//状态为已完成,序号为用户输入订单序号:不可签收
		    		if (names[i]!=null&&states[i]==1&&signOrder==i+1) {
						System.out.println("您选择的订单已完成签收,不能再次签收");
						isSignFind = true;
					}
				}
		    	//未找到的订单序号:不可签收
		    	if (!isSignFind) {
					System.out.println("您选择的订单不存在!");
				}
		    	break;
		    case 4:
		    	//删除订单
		    	System.out.println("*********删除订单**********");
		    	System.out.println("请输入要删除的订单序号:");
		    	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[dishMegs.length-1] = null;
						times[names.length] = 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 praiseNum = (praiseNums[i])>0?praiseNums[i]+"赞":"";
					System.out.println((i+1)+"\t"+dishNames[i]+"\t"+price+"\t"+praiseNum);
				}
		    	System.out.println("请选择您要点赞的菜品序号:");
		    	int praiseNum = input.nextInt();
		    	praiseNums[praiseNum-1]++;   //点赞数+1
		    	System.out.println("点赞成功");
		    	break;
		    case 6:
		    	//退出系统
		    	isExit = true;
		    	break;
		    	default:
		    		//退出系统
		    		isExit = true;
		    	    break;
		    	    
	}
		    if (isExit) {
				System.out.println("返回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实战之吃货联盟订餐系统的文章就介绍到这了,更多相关Java吃货联盟订餐系统内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Java实战之吃货联盟订餐系统

本文链接: https://www.lsjlt.com/news/124840.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java实战之吃货联盟订餐系统
    目录一、前言二、基本业务分析三、完整代码四、有关eclipse的快捷键一、前言 刚刚学完java基础入门,主要学习Java基本环境搭建,定义变量、选择结构,循环结构、数组等。本阶段结...
    99+
    2024-04-02
  • 使用Java模拟一个吃货联盟订餐系统
    本篇文章给大家分享的是有关使用Java模拟一个吃货联盟订餐系统,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。java基本数据类型有哪些Java的基本数据类型分为:1、整数类型,...
    99+
    2023-06-14
  • Java实战之校园外卖点餐系统的实现
    目录一、项目简述二、效果图展示三、核心代码管理员controller控制层管理员角色controler控制层后台登录控制层订单模块controller控制层一、项目简述 环境配置: ...
    99+
    2024-04-02
  • java实现简易外卖订餐系统
    用java实现简易外卖订餐系统,供大家参考,具体内容如下 一、使用技术 javaSE 二、实现功能 外卖订餐系统 具体要求如下: 使用选择结构,循环结构,数组的知识实现一个外卖订餐系...
    99+
    2024-04-02
  • Java实战之火车票预订系统的实现
    目录 一、项目运行二、效果图三、核心代码个人中心Controller管理员和员工登陆控制用户管理操作 一、项目运行 环境配置: Jdk1.8 + Tomcat8....
    99+
    2024-04-02
  • Java实战项目之在线点餐系统的实现流程
    一、项目简述 功能包括: 前台实现:用户浏览菜单、菜品分类筛选、查看菜单详 情、添加购物车、购物车结算、会员券、个人订单查询等 等。 后台实现:餐系管理、菜品管理、订单管理、系统管理...
    99+
    2024-04-02
  • Java 实战项目之在线点餐系统的实现流程
    一、项目简述 功能包括: 在线点餐,评论,购物车,下单,支付,管理员,店家多 商家管理,后台评论管理,订单管理,商品管理等等。 二、项目运行 环境配置: Jdk1.8 + Tomca...
    99+
    2024-04-02
  • Javaweb实战之实现蛋糕订购系统
    目录视频展示1实验的目的及要求2需求分析2.1问题陈述2.2功能需求分析3总体设计3.1功能结构图设计3.2模块简介4详细设计4.1主模块详细设计4.2子模块详细设计5编码和测试5....
    99+
    2024-04-02
  • JavaSE实战之酒店订房系统的实现
    酒店管理系统 为某个酒店编写程序:酒店管理系统,模拟订房,退房,打印所有房间状态等功能 1、该系统的用户是酒店的前台 2、酒店当中所有的房间使用一个二维数组来模拟 3、酒店当中的每一...
    99+
    2024-04-02
  • Java毕业设计实战之教室预订管理系统的实现
    一、项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Ecli...
    99+
    2024-04-02
  • Java实战之兼职平台系统的实现
    目录一、项目运行二、效果图三、核心代码登录控制层管理员登录控制层提交个人简介控制层一、项目运行 环境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe(...
    99+
    2024-04-02
  • Java实战之药品管理系统的实现
    目录项目介绍环境需要技术栈使用说明效果图展示实现核心代码用户相关的controller控制层药品相关的controller供应商相关的controller项目介绍 本项目属于前后端分...
    99+
    2024-04-02
  • Java实战之实现OA办公管理系统
    目录介绍效果图核心代码用户管理控制层部门管理控制层角色管理控制层会议室管理控制层介绍 环境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe(Intel...
    99+
    2024-04-02
  • Java实战之在线租房系统的实现
    目录介绍效果图核心代码用户控制器管理员控制层个人中心控制器介绍 该系统有三个角色,分别是:普通用户、房屋中介、管理员。普通用户的功能:浏览房屋信息、预约看房、和中介聊天、申请成为中介...
    99+
    2024-04-02
  • Java实战之图书管理系统的实现
    目录一、项目运行二、效果图三、核心代码登录控制层图书管理控制层读者管理控制层一、项目运行 环境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe(Int...
    99+
    2024-04-02
  • Java实战之鲜花商城系统的实现
    目录项目介绍环境需要技术栈使用说明效果图展示核心代码商品管理控制层订单管理控制层用户管理控制层项目介绍 该项目为前后台项目,分为普通用户与管理员两种角色,前台普通用户登录,后台管理员...
    99+
    2024-04-02
  • Java实战之晚会抽奖系统的实现
    目录一、项目运行二、效果图三、核心代码管理员登陆控制层抽奖控制层一二三等奖设置抢答控制层一、项目运行 环境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclis...
    99+
    2024-04-02
  • Java实战之医院管理系统的实现
    目录项目介绍环境需要技术栈使用说明效果图展示核心代码用户管理控制层医生管理控制层病房管理控制层项目介绍 医院管理系统,分为管理员、医生、病人三种角色; 管理员主要功能包括: 首页、系...
    99+
    2024-04-02
  • Java实战之客户信息管理系统
    目录一、软件设计结构二、MVC设计模式三、Customer四、CustomerList五、CustomerView六、CMUtility一、软件设计结构 对于初学者来说,弄...
    99+
    2024-04-02
  • Java实战之仿天猫商城系统的实现
    目录一、项目介绍二、项目运行三、效果图四、核心代码权限基础控制层用户信息操作控制层用户订单控制层后台管理员品类控制层后台管理-产品页控制层一、项目介绍 迷你天猫商城是一个基于SSM框...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作