package 吃货联盟订餐系统; import java.util.Scanner; public class FoodAlliance { public static void main(String[] args) { //定义数组用来存储数据 String[] names=new String[5];//订餐人 String[] dishMegs = new String[5];//can int[] times =new int[5];//送餐时间 String[] addresses=new String[5];//送餐地址 int[] states=new int[5];//订单状态 0 已预定 1已完成 double[] sumPrices=new double[5];//总净额 //初始化两条订单信息 names[0]="王小明"; dishMegs[0]="鱼香肉丝 1份"; times[0]=12; addresses[0]="合掌路-228号"; states[0] =1; sumPrices[0] = 18.0; names[1]="陈大壮"; dishMegs[1]="红烧带鱼 2份"; times[1]=10; addresses[1]="明光大道-556"; states[1] =0; sumPrices[1] = 76.0; //一堆餐品信息 String[] dishNames = {"凉拌鸡丝","红烧带鱼","鱼香肉丝"}; double[] prices ={11.0,38.0,18.0};//价格 int[] praiseNums =new int[3];//点赞数 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("请选择(1-6)"); int comy= sc.nextInt(); boolean addding=false;//定义一个信号值用来判断 餐盘是否满了 或者是否可以插入 if (comy>=0&&comy<=6) { switch (comy) { case 1: //我要订餐 //a。找查可以插入 为null的地方 for (int i = 0; i < names.length; i++) { //找到了这个索引值可以插入数据了 if (names[i]==null){ //addding为true可以插入 addding=true; System.out.println("序号\t 菜单\t 价格\t 点赞数"); 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+" \t"); } //输入 编号 份数 System.out.println("请选择你需要那份菜的序号"); int xuhao = sc.nextInt(); while (xuhao<1||xuhao>3){ System.out.println("对不起您的输入有误,请输入10-20的整数"); xuhao= sc.nextInt(); } System.out.println("请选择你要选择几份"); int number= sc.nextInt(); //汇总 String disMeg= dishNames[xuhao-1]+" "+number; dishMegs[i]=disMeg; //输入订餐人的姓名 System.out.println("请输入您的姓名:"); names[i] = sc.next(); //送餐时间 System.out.println("请选择你要送餐的时间10-20点送餐"); int time= sc.nextInt(); while (time<10 || time>20){ System.out.println("对不起您的输入有误,请输入10-20的整数"); time= sc.nextInt(); } times[i]=time; //输入送餐地址 System.out.println("请输入你的送餐地址"); addresses[i]= sc.next(); //总金额 double sumPrice = prices[xuhao-1] *number; sumPrices[i]=sumPrice; //送餐费 当餐费到达50元 面餐费 double deliCharge =sumPrice>=50?0.0:6.0; //显示订单信息 System.out.println("订餐成功:"); System.out.println("您的订单是:"+disMeg); System.out.println("订餐人:"+names[i]); System.out.println("送餐时间:"+time); System.out.println("送餐地址:"+addresses[i]); System.out.println("餐费:"+sumPrice+",送餐费: "+deliCharge+"元"); System.out.println("总金额:"+(sumPrice+deliCharge)+"元"); break; } } if (!addding) { System.out.println("对不起餐袋已满 非常抱歉~"); } break; case 2: //查看餐袋 printArray(names,dishMegs,times,addresses,states,sumPrices); break; case 3: //签收订单 printArray(names,dishMegs,times,addresses,states,sumPrices); System.out.println("请输入你要签收的订单编号:"); int xuhao= sc.nextInt(); boolean flag =false;//做一个标识符用来判断是否找到了 for (int i = 0; i < names.length; i++) { if (names[i]!=null && states[i]==1 && xuhao==i+1){ System.out.println("订单已签收!不能再次签收"); flag=true; break; } else if (names[i]!=null && states[i]==0 && xuhao==i+1) { states[i]=1;//已预定的情况 改成已完成 flag=true; System.out.println("订单签收完成!!"); break; } } if (!flag){ System.out.println("你输入的订单不存在!"); } case 4: //删除订单 printArray(names,dishNames,times,addresses,states,sumPrices); System.out.println("请选择你要删除的订单序号:"); int deletexuhao =sc.nextInt(); int index=-1; boolean flag1 =false;//做一个标识符用来判断是否找到了 for (int i = 0; i < names.length; i++) { if (names[i]!=null && states[i]==1 && deletexuhao==i+1){ index=i; flag1=true; break; } else if (names[i]!=null && states[i]==0 && deletexuhao==i+1) { flag1=true; System.out.println("订单没有签收不能删除!!"); break; } } if (!flag1){ System.out.println("你输入的订单不存在!"); } if (index!=-1) { for (int i = deletexuhao ; i <= names.length-1; 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]; sumPrices[i - 1] = sumPrices[i]; } //清空 names[names.length - 1] = null; dishMegs[names.length - 1] = null; times[names.length - 1] = 0; addresses[names.length - 1] = null; states[names.length - 1] = 0; sumPrices[names.length - 1] = 0; System.out.println("删除成功!"); break; } case 5: //我要点赞 //1.显示菜单 System.out.println("序号\t 菜单\t 价格\t 点赞数"); 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+" \t"); } //输入要点赞谁 System.out.println("请输入你要点赞的商品序号"); int disnumber=sc.nextInt(); praiseNums[disnumber-1]++; System.out.println("点赞成功!"); break; case 6: //退出系统 System.out.println("感谢使用!欢迎下次光临!"); return; } }else { System.out.println("输入错误!!请重新输入"); } System.out.print("输入0返回:"); num= sc.nextInt(); }while (num==0); } private static void printArray(String[] names, String[] dishMegs,int[] times,String[] addresses,int[] states,double[] sumPrices) { System.out.println("------------------------------------------餐袋余额-----------------------------------"); System.out.println("序号"+"\t\t姓名" + "\t\t菜单 份数" + " \t\t送餐时间 " + "\t\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.print(" "+(i+1)+"\t"); System.out.print(" "+names[i] + "\t\t"); System.out.print(dishMegs[i] + "\t\t"); System.out.print(time + "\t\t"); System.out.print(addresses[i] + "2\t\t"); System.out.print(sumprice + "\t\t"); System.out.println(state + "\t\t"); } } } }