栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

数组综合练习(A版)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

数组综合练习(A版)

在线点餐系统 学习目标
1、掌握控制台项目开发流程
2、了解项目所需流程
3、熟悉项目需实现功能
4、会使用顺序、选择、循环、跳转语句编写程序
5、会使用数组
6、Arrays简化数组操作
一、简介

使用百里半在线订餐系统,可以在网上进行订餐。

回忆实际生活中的点餐过程:

  1. 选定一家餐厅
  2. 查看菜单
  3. 点餐
  4. 坐等外卖员送餐
  5. 签收
  6. 自愿对订单


二、技术列表
  • Java基础
  • 数组
  • Arrays简化数组
三、功能列表

四、项目实战 4.1 初始化项目的功能菜单项

需求:打印在线点餐系统的功能菜单

分析:使用数组保存项目功能菜单项,好处:不用记忆功能菜单序号,易于项目拓展,提高代码可读性

核心代码:

System.out.println("**************************欢迎使用吃货联盟在线点餐系统**************************");
	String[] menus = { "我要订餐", "查看餐袋", "签收订单", "删除订单", "我要点赞", "退出系统" };
	for (int i = 0; i < menus.length; i++) {
		System.out.print((i + 1) + ". " + menus[i] + "t");
	}

4.2 实现我要订餐 4.2.1、需求:

创建在线订餐需要的菜品列表(包括菜品名称、单价、点赞个数)

//1-1 打印菜单
	String[] dishMenus={"酸辣土豆丝","小炒肉","手撕鸡","红烧肉","青菜烧豆腐","鱼香肉丝","干煸豆角","焖面"};
 	//菜品单价
	double[] prices={18,24,38,45,22,28,25,24};
  	//每个菜对应的点赞个数
	int[] goods=new int[dishMenus.length];
	System.out.println("编号t菜品t单价t点赞个数");
	for (int i = 0; i < dishMenus.length; i++) {				          
  	    System.out.print((i+1)+"t"+dishMenus[i]+"t"+prices[i]+"t"+goods[i]+"n");
	}

4.2.2、提交订单并保存

用户选择菜品、份数、送餐时间并输入个人信息(包括姓名、电话、送餐地址),确认无误之后提交订单,实现订单保存

 	
	private static String[] dishes=new String[10];
	
	private static int[] disheCounts=new int[10];
	
	private static String[] times=new String[10];
	
	private static String[] names=new String[10];
	
	private static String[] phones=new String[10];
	
	private static String[] addresses=new String[10];
	//订单的签收状态

   //1-3 输出用户选择的菜单信息
	System.out.println("您的点餐信息如下:");
	System.out.println("菜品t数量");
	System.out.println(dishMenus[dishMenuId-1]+"t"+count);
	System.out.println("联系人姓名:"+userName+",联系方式:"+phone);
	System.out.println("送餐时间:"+time+",送餐地址:"+address);
	System.out.println("确认下单请输入ok,否则输入其他表示取消下单!");
	String answer = input.nextLine();//保存用户输入的下单信号
	if(answer.equalsIgnoreCase("ok")){//下单,保存订单
		//保存用户输入的所有信息
		dishes[orderId]=dishMenus[dishMenuId-1];
		disheCounts[orderId]=count;
		times[orderId]=time;
		names[orderId]=userName;
		phones[orderId]=phone;
		addresses[orderId]=address;
		System.out.println("订单生成成功!订单编号是"+(orderId+1)+"请保存好订单编号,签收时需要使用该编号!");
		orderId++;//修改标识订单符号的值
		return;
	}

4.3 实现查看餐袋

需求:遍历系统中已有的订单,并逐条显示输出(注:仅遍历订餐人信息不为空的记录)

	System.out.println("****************查看餐袋****************");
	System.out.println("编号t订餐人t餐品信息t送餐日期t送餐地址t联系方式t订单状态t总金额(单位:元)");
	for (int i = 0; i  
4.4 签收订单 

需求:根据订单编号,将对应的状态修改为“已完成”

验证:1.输入订单编号必须存在的 2.客户的姓名不能是Null 3.输入订单编号已经是签收,就不能重复签收

实现步骤:

  1. 输入订单编号
  2. 输入姓名
  3. 拿订单编号去订单数组里面找对应的客户姓名和订单状态,只有订单状态是“未完成”并且客户姓名和输入姓名匹配的情况下,才能执行订单签收。否则签收失败,并提示用户信息。
	if (orderNo < 0 || orderNo > orderSize) {// 订单编号不存在
		System.out.println("您输入的订单编号有误,签收失败!");
	} else {
	System.out.println("请输入您的姓名:");
   	// 2、输入姓名
	String name = input.nextLine();
	// 3、拿订单编号去订单数组里面找对应的客户姓名和订单状态,
	String tempName = names[orderNo - 1];// 订单数组中保存的客户名称
	byte status = orderStatus[orderNo - 1];// 订单状态
	// 只有订单状态是“未完成”并且客户姓名和输入姓名匹配的情况下,才能执行订单签收。否则签收失败,并提示用户信息
	if(tempName!=null){
		if (tempName.equals(name) && status == 0) {
			orderStatus[orderNo - 1] = 1;// 1:已完成
			System.out.println("订单签收成功!请进入查看餐袋查看结果!");
		} else {
			System.out.println("对不起,您的信息有误,签收失败!");
		}
	}else{
		System.out.println("您输入的信息有误,订单编号与姓名不符,签收失败!");
	}
}

4.5 删除订单

需求:按照输入的订单号,判断其状态,删除“已完成”状态的订单

实现思路:

  1. 输入订单编号
  2. 找到订单,判断订单状态是否为“已完成”,如果是“已完成”,执行删除,否则提示用户订单未完成
  3. 为找到订单,提示用户信息
//1、输入订单编号
	System.out.println("请输入要删除的订单编号");
	int orderId=Integer.parseInt(input.nextLine());
	//2、找到订单,判断订单状态是否为“已完成”,如果是已完成,执行删除,否则提示用户
	if(orderId>0 && orderId 
4.6 我要点赞 

需求:显示菜品序号、菜品名、单价、点赞数

​ 提示用户输入要点赞的菜品序号

实现思路:

  1. 打印菜品列表
  2. 选择要点赞的菜品编号
  3. 判断菜品是否存在,存在就在当前菜品的点赞数+1
  4. 菜品不存在,提示用户输入有误
	//1、打印菜品列表
	System.out.println("编号t菜品t单价(单位:元)t点赞个数(单位:个)");
	for (int i = 0; i < dishMenus.length; i++) {
		System.out.print((i + 1) + "t" + dishMenus[i] + "t" + prices[i] + "t" + goods[i] + "n");	}
	// 2-1 点赞菜品编号
	System.out.println("请输入您要选择的菜品编号(比如小炒肉输入2即可):");
	//2-2、选择要点赞的菜品编号
	int goodMenuId = Integer.parseInt(input.nextLine());		
	//3、判断菜品是否存在,存在就在当前菜品的点赞数+~~
	if(goodMenuId>0 && goodMenuId 
4.7 退出系统 
	//退出系统
	flag = true;
	break;

是否存在,存在就在当前菜品的点赞数+~~
if(goodMenuId>0 && goodMenuId goods[goodMenuId-1]+=1;
System.out.println(“点赞成功!当前菜品赞”+goods[goodMenuId-1]+“个”);
}else{
//4、菜品不存在,提示用户输入有误!
System.out.println(“您选择的菜品不存在!点赞失败”);}

### 4.7 退出系统

~~~Java
	//退出系统
	flag = true;
	break;
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/271859.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号