吃货联盟订餐系统(用数组写的)

👍 棒棒有言:现在学习Java变得比以前容易多了,除了有大量的视频教程外,还有专业的机构,这都使学习变得更加简单化。如果仅仅学了些皮毛,高手写的程序你是望尘莫及的。在学习的过程中,书籍永远是知识不错的载体,所以要自己不断加大练习,这样才能不断提高自己。

👍 本章简介:Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。

👍  作者:get棒棒本人主页要关注哦 

👍  重要:这是一个项目是用数组写的还有一个是对象和数组一起写的

下面是代码

package com.qn.chihuolianmengtest;

import java.util.Scanner;

public class demo01 {

	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];

		// 一个餐品的信息(点菜信息)
		String[] dishNames = { "红烧带鱼", "鱼香肉丝", "时令蔬菜" };
		double[] prices = { 18.0, 38.0, 10.0 };
		int[] praiseNums = new int[3];
		// 首先初始化两条订单信息
		names[0] = "赵先坡";
		dishMegs[0] = "红烧带鱼 一份";
		times[0] = 12;
		addresses[0] = "故宫皇位";
		states[0] = 0;
		sumPrices[0] = 18.0;

		names[1] = "阮班航";
		dishMegs[1] = "鱼香肉丝 两份";
		times[1] = 11;
		addresses[1] = "美国总统府";
		states[1] = 1;
		sumPrices[1] = 76.0;

		Scanner sc = new Scanner(System.in);

		int num = -1;// 记录用户输入的数字
		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("****************");
			// 输入想要在主菜单做的事
			int choose = sc.nextInt();
			boolean isAdd = false;
			switch (choose) {
			case 1:
				// 我要订餐
				System.out.println("我要订餐");
				for (int i = 0; i < names.length; i++) {
					if (names[i] == null) {
						isAdd = true;
						System.out.println("序号\t餐品名\t单价\t点赞数");
						// 下面的for循环相当于菜单
						for (int j = 0; j < dishNames.length; j++) {
							String price = prices[j] + "元";
							String praise = praiseNums[j] + "赞";
							System.out.println((j + 1) + "\t" + dishNames[j]
									+ "\t" + price + "\t" + praise);
						}
						// 输入所选餐品编号以及份数
						System.out.println("请选择所选餐品序号:");
						int chooseDish = sc.nextInt();
						System.out.println("请选择餐品份数");
						int number = sc.nextInt();
						String dishMeg = dishNames[chooseDish - 1] + " "
								+ number + "份";
						// 请输入订餐人姓名
						System.out.println("请输入订餐人姓名");
						String name = sc.next();

						// 请输入送餐时间
						System.out.println("请输入送餐时间");
						int time = sc.nextInt();
						// 如果输入错误,请重新输入
						while (time < 10 || time > 20) {
							System.out.println("您输入错误,请您重新输入");
							time = sc.nextInt();
						}
						// 输入送餐地址
						System.out.println("请输入送餐地址");
						String address = sc.next();

						// 计算餐费
						double sumPrice = prices[chooseDish - 1] * number;
						// 送餐费,当餐费达到50元时,免六元餐费
						double deliCharge = sumPrice >= 50 ? 0.0 : 6.0;

						// 显示订单信息
						System.out.println("订餐成功!");
						System.out.println("您订的是:" + dishMeg);
						System.out.println("订餐人:" + name);
						System.out.println("送餐时间" + time + "点");
						System.out.println("送餐地址:" + address);
						System.out.println("餐费:" + sumPrice + "送餐费:"
								+ deliCharge + "元");

						// 保存数据
						names[i] = name;
						dishMegs[i] = dishMeg;
						times[i] = time;
						addresses[i] = address;
						sumPrices[i] = sumPrice + deliCharge;
						break;
					}
					
				}
				if (!isAdd) {
					System.out.println("对不起您的餐袋已满");
				}
				break;
			case 2:
				// 查看餐品信息
				System.out.println("*********************");
				System.out.println("序号\t订餐人\t餐品信息\t送餐时间\t送餐地址\t总金额\t状态");
				for(int i=0;i<names.length;i++){
					if(names[i]!=null){
						String time=times[i]+"点";
						String sumPrice=sumPrices[i]+"元";
						String state=states[i]==0?"已预定":"已完成";
						System.out.println((i+1)+"\t"+names[i]+"\t"+dishMegs[i]+"\t"+time+"\t"+addresses[i]+"\t"+sumPrice+"\t"+state);
					}
					
				}
				
				break;
			case 3:
				//  签收订单
				System.out.println("****************");
				System.out.println("签收订单,请输入订单号");
				int hao=sc.nextInt();
				
				for (int i = 0; i < names.length; i++) {
					if(names[i]!=null&&states[i]==1&&hao==i+1){
						System.out.println("对不起,您的订单已经签收了");
						break;
					}else if(names[i]!=null&&states[i]==0&&hao==i+1){
						System.out.println("您的订单还没有签收");
						states[i]=1;
						break;
					}else if(names[i]==null){
						System.out.println("您的订单没有找到");
						break;
					}
					
				}
				
				break;
			case 4:
				System.out.println("*********************");
				System.out.println("删除订单");
				System.out.println("输入一个要删除的订单号");
				boolean del=false;
				int shan=sc.nextInt();
				int delIndex=-1;
				for (int i = 0; i <names.length; i++) {
					if(names[i]!=null&&states[i]==1&&shan==i+1){
						delIndex=i;
						del=true;
						break;
					}else if(names[i]!=null&&states[i]==0&&shan==i+1){
						System.out.println("订单未签收,不能签收");
						del=true;
						break;
					
					}
				}
				if(!del){
					System.out.println("这个订单不存在");
				break;
				}
				//找到了要删除的下标后继续执行操作
				if(delIndex!=-1){
					for(int i=delIndex+1;i<names.length;i++){
						names[i-1]=names[i];
						dishMegs[i-1]=dishMegs[i];
						times[i-1]=times[i];
						addresses[i-1]=addresses[i];
						states[i-1]=states[i];
						
					}
					System.out.println("删除成功");
				}
			
				// 删除订单
				break;
			case 5:
				System.out.println("***********************");
				System.out.println("我要点赞");
				//显示餐品列表
				System.out.println("序号\t餐品名\t价格\t点赞数");
				for(int i=0;i<dishNames.length;i++){
					
						String price=prices[i]+"元";
						String praise=praiseNums[i]+"赞";
						
						System.out.println((i+1)+"\t"+dishNames[i]+"\t"+price+"\t"+praise);
					
					
				}
				System.out.println("请输入要点赞的菜品序号");
				int zan=sc.nextInt();
				praiseNums[zan-1]++;
				System.out.println("点赞成功!");
				System.out.println(dishNames[zan-1]+" "+praiseNums[zan-1]+"赞");
				
				
				// 我要点赞
				break;
			case 6:
				// 退出系统
				break;
			default:
				break;
			}
			if (choose < 1 || choose > 6) {
				break;
			} else {
				System.out.println("输入0返回");
				num = sc.nextInt();
			}

		} while (num == 0);
		System.out.println("谢谢使用,欢迎下次光临");

	}

}

👍 棒棒有言:追逐梦想的过程就像是一个人在走一条黑暗、幽深而又漫长的隧道,多少次跌倒又爬起,经历了多少个暗无天日的黑夜与白天。一路上沉淀着难以计数的汗水与泪水,不断地自我暗示:只要自己坚持,只要勇敢地一向往前走,就必须能找到出口,必须会看到光明。然而,你并不确定,前方迎接你的会是怎样的艰难险阻,有没有危险的机关,你更加不知道自己要走多久。身边了解的人更是寥寥无几,很少有人能看懂你的执着和坚持,他们无法明白你朝思暮想的梦想所承载的好处,他们看不懂你心底的那幅画面,他们不明白你为什么放下安逸舒适不选,放着阳关大道不走,偏要走一条漫长崎岖看不到尽头的路,他们会觉得你疯狂、有病、自讨苦吃。

 

评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

get棒棒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值