package day06; import java.util.*; public class Demo1 { public static void main(String[] args) { String[] dishNames = {"红烧带鱼","鱼香肉丝","时令蔬菜"};//菜品名称 double[] prices = new double[] {38.0,20.0,10.0};//菜品价格 int[] praiseNums = new int[3];//点赞数 //存储订单信息 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[] sumPrieces = new double[4];//保存订单的总金额 Scanner input = new Scanner(System.in); int num = -1;//用户输入9时返回主菜单,否则退出系统 boolean isExit = false;//标志用户是否退出系统;true为退出系统 System.out.println(" 欢迎使用“吃货联盟订餐系统”"); //循环,现实菜单,根据用户选择的数字执行相应功能 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();//记录用户选择的功能 //根据用户输入的功能,执行相应的命令 switch (choose){ case 1: //我要订餐 System.out.println("***我要订餐***"); Boolean isAdd = false; for(int j =0;j<names.length;j++){ if(names[j]==null){ isAdd =true; System.out.print("请输入订单人姓名:"); String name =input.next(); //显示可以提供选择的菜单 System.out.println("序号"+" "+"菜名"+" "+"单价"+" "+"点赞数"); for(int i =0;i<dishNames.length;i++){ String price = prices[i] +"元"; String priaiseNum = (praiseNums[i] > 0? praiseNums[i]+"赞":"0"); System.out.println((i+1)+" " +dishNames[i]+" " +price+ " " +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元,免送餐费5元 double deliCharge = (sumPrice>=50)?0:5; 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; sumPrieces[j] = sumPrice; break; } } if(!isAdd){ System.out.println("对不起,您的餐袋已经满了!"); } break; case 2: //查看菜单 System.out.println("***查看菜单***"); System.out.println("序号 订单人 餐品信息 送餐时间 送餐地址 总金额 订单状态"); for(int i=0;i<names.length;i++){ if(names[i]!=null){ String state = (states[i]==0?"已经预定":"已经完成"); String date = times[i]+"点"; String sumPrice = sumPrieces[i]+"元"; System.out.println((i+1)+" "+names[i]+" " + dishMegs[i]+" " +date+" " +addresses[i]+"" + " " +sumPrice+" " +state); } } break; case 3: //签收订单 System.out.println("***签收订单***"); boolean isSignFind = false;//找到要签收的订单 System.out.print("请选择要签收的订单序号:"); int signOrderId = input.nextInt(); for(int i = 0;i<names.length;i++){ //订单状态为预订,序号为用户输入的订单号减1,可签收 //订单状态为完成,序号为用户输入的订单号减1,不可签收 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("***删除订单***"); boolean isDelFind = false; System.out.print("请输入要删除的订单序号:"); int delId = input.nextInt(); for(int i =0;i<names.length;i++){ //状态值为已完成,序号值为用户输入的序号减1,可删除 //状态值为已经预定,序号值为用户输入的序号减1,不可删除 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]; sumPrieces[j] = sumPrieces[j+1]; } //最后一位清空 int endIndex = names.length-1; names[endIndex] = null; dishMegs[endIndex] = null; times[endIndex] = 0; addresses[endIndex] = null; states[endIndex] = 0; sumPrieces[endIndex] = 0; System.out.println("删除订单成功!"); break; } } //未找到订单序号,不能删除! if(!isDelFind){ System.out.println("您要删除的订单不存在!"); } break; case 5: //我要点赞 System.out.println("***我要点赞***"); //显示菜单名 System.out.println("序号"+" "+"菜名"+" "+"单价"); for(int i =0;i<dishNames.length;i++){ String price = prices[i] + "元"; String priaiseNum = (praiseNums[i])>0?praiseNums[i] +"赞":""; System.out.println((i+1)+" " + dishNames[i]+" " +price+" " +priaiseNum); } System.out.print("请选择您要点赞的菜品序号:"); int priaiseNum = input.nextInt(); praiseNums[priaiseNum-1]++;//点赞数加1 System.out.println("点赞成功!"); break; case 6: //退出系统 isExit =true;
System.out.println("欢迎下次再使用!!!祝你贪吃不胖!!!"); break; default: isExit=true; break; } if(!isExit){ System.out.print("输入0返回:"); num =input.nextInt(); }else { break; } }while (num == 0); } }