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吃货联盟订餐系统内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Java吃货联盟订餐系统代码实例

    本文实例为大家分享了Java订餐系统的具体代码,供大家参考,具体内容如下 package cn.practice1200; import java.util.Scanner; public class Eater_Alliance { /** * 吃货联盟订餐系统 * * @author QCD * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Scanner

  • Java实现简单订餐系统

    本文实例为大家分享了Java实现简单订餐系统的具体代码,供大家参考,具体内容如下 import java.util.Scanner; import java.util.*; public class OrderingMsg { public static void main(String[] args) { // 数据主体:一组订单信息 String[] names = new String[4]; // 订餐人名称 String[] dishMegs = new String[4]; // 所

  • java实现订餐系统

    本文实例为大家分享了java实现订餐系统的具体代码,供大家参考,具体内容如下 import java.util.Scanner; public class versionAlliance { public static void main(String[] args) { Scanner in = new Scanner(System.in); String[] names=new String[5];//客户姓名 String[] dishes= {"红烧带鱼","鱼香肉丝

  • java外卖订餐系统小项目

    本文实例为大家分享了java外卖订餐系统的具体代码,供大家参考,具体内容如下 执行结果: 通过选择功能序号,执行响应的功能: 代码实现: package 外卖订餐系统; /* * 代码优点,使用 循环: * 显示菜单, * 根据用户选择的数字执行相应功能(功能实现:do..while循环.) */ import java.util.Scanner; public class OrderingMsg { public static void main(String[] args) { //数据主题

  • java实现外卖订餐系统

    本文实例为大家分享了java实现外卖订餐系统的具体代码,供大家参考,具体内容如下 一.使用技术 javaSE 二.实现功能 外卖订餐系统 具体要求如下: 使用选择结构,循环结构,数组的知识实现一个外卖订餐系统 三.运行效果图 1.订餐功能 2.查看餐袋 3.签收订单 4.删除订单 5.点赞 6.退出 分析图片信息,可以看出我们需要创建一个菜单类,查看餐带类和点赞菜单类 1.首先我们创建一个菜单类,用来定义菜单的属性,使用到封装,构造方法,和toString方法. public class Foo

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

    一.前言 刚刚学完java基础入门,主要学习Java基本环境搭建,定义变量.选择结构,循环结构.数组等.本阶段结束尝试接触此次吃货联盟订餐系统,第一次敲这么长的代码,后面多见识见识应该就好了,多加努力啊! 吃货联盟订餐系统包含的功能:我要订餐.查看餐袋.签收订单.删除订单.我要点赞.退出系统 二.基本业务分析 我要订餐 1.输入订餐人姓名 2.将所有的菜品进行展示 3.输入要订的菜品序号 4.输入要订的菜品份数 5.输入配送时间 6.输入配送地址 7.显示订餐信息 查看餐袋 1.直接展示所有的订

  • Java从零编写吃货联盟订餐系统全程讲解

    目录 项目需求 项目环境准备 案例覆盖的技能点 难点分析 1.环境搭建和相关配置 2.使用数据库保存Order订单以及Food菜单信息 3.Dao层实现类中的增删改查方法的编写 项目实现思路 1.数据初始化 2.实现菜单切换 3.实现查看餐袋 4.实现我要订餐 5.实现签收订单 6.实现删除订单 7.实现我要点赞 代码展示 1.订单信息-Order类 2.菜品信息-Food类 3.定义FoodDao接口 4.定义FoodDaoImpl实现类 5.定义OrderDao接口 6.定义OrderDao

  • Java 实战项目之家居购物商城系统详解流程

    一.项目简述 功能: Java Web精品项目源码,家居商城分类展示,商品展示, 商品下单,购物车,个人中心,后台管理,用户管理,商品管理,分类管理等等. 二.项目运行 环境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe (IntelliJ IDEA,Eclispe,MyEclispe,Sts 都支持) 项目技术: Jdbc+ Servlert + html+ css + JavaScript + JQuery + Ajax + Fileupload 打开订单列

  • Java 实战项目锤炼之网上商城系统的实现流程

    一.项目简述(+需求文档+PPT) 功能: 主页显示热销商品:所有商品展示,可进行商品搜索:点 击商品进入商品详情页,显示库存,具有立即购买和加入 购物车功能,可增减购买商品数量亦可手动输入(同时验证 库存),热销商品展示.立即购买进入确认订单页面,可选 择已经添加的地址,亦可新增地址.(同时验证库存),可 选择购买哪些商品,可删除不需要的商品.点击结算进入 确认订单页面,确认后提交订单,订单重复提交给予响 应,库存不足或商品下架给予响应.后台管理:(修改密码 等),商品管理(商品批量添加.上下

  • Java 实战交易平台项目之宠物在线商城系统

    该系统分为前台和后台,前台可以自主注册,后台管理员角色,除基础脚手架外,实现的功能有: 后台管理员功能有:商品分类管理.商品管理.套餐管理.新闻分类管理.新闻管理.常见问题.关于我们.团队管理.订单查看和前台用户查看等功能. 前台用户功能有:注册登录.查看商品.购物车.支付订单.评价.照片库.新闻列表.个人中心.购买套餐等功能. 运行环境:windows/Linux均可.jdk1.8.mysql5.7.maven3.5\maven3.6.idea/eclipse均可. 系统控制器代码: /**

  • Java 实战项目之在线点餐系统的实现流程

    一.项目简述 功能包括: 在线点餐,评论,购物车,下单,支付,管理员,店家多 商家管理,后台评论管理,订单管理,商品管理等等. 二.项目运行 环境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe (IntelliJ IDEA,Eclispe,MyEclispe,Sts 都支持) 项目技术: JSP +Spring + SpringMVC + MyBatis + html+ css + JavaScript + JQuery + Ajax + layui+ mave

  • Java 实战项目之诚途旅游系统的实现流程

    采用ssm架构实现的旅游网站系统 包括网站展示和后台管理功能,网站主要是页面浏览以及评论.制定旅游方案.智能推荐功能 后台就是维护网站展示的内容,添加旅游景点.管理用户.查看用户的搜索记录功能 酒店信息控制层: /** * 控制器层 * */ @Controller @CrossOrigin @RequestMapping("/hotel") public class HotelController { @Autowired private HotelService hotelServ

  • Java 实战项目之家政服务平台系统的实现流程

    一.项目简述 功能包括: 家政服务网站系统,用户注册,登录,分为家政人员,普 通用户,以及最高管理员,包括家政分类查询,展示,线 上预约服务,家政申请,评论,留言沟通・,联系家政服 务,家政人员的认证,职业认证,以及后台的维护等等功能. 二.项目运行 环境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe (IntelliJ IDEA,Eclispe,MyEclispe,Sts 都支持) 项目技术: JSP +Spring + SpringMVC + MyBatis

  • Java 实战项目之小说在线阅读系统的实现流程

    一.项目简述 功能包括(管理员和游客角色): 1:用户及主要操作功能 游客可以浏览网站的主页,但是需要注册为会员后部分小 说才能对网络小说进免费行阅读或阅读.用户可以收藏书 架,留言评论,上次阅读,阅读历史,章节选择等等功 能. 2:管理模块 网络小说管理模块包括不同网络小说类别的添加,删除以 及网络小说的上传,删除管理.可以包括武侠小书,都市 言情,穿越小书等各个类等等功能. 二.项目运行 环境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe (IntelliJ

随机推荐