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]=12; addresses[0]="天成路207號"; states[0]=1; sumPrices[0]=76.0; names[1]="張青"; dishMegs[1]="魚香肉絲 2份"; times[1]=18; addresses[1]="天成路207號"; states[1]=0; sumPrices[1]=45.0; String[] dishNames ={"紅燒帶魚","魚香肉絲","時冷鮮疏"}; //菜單 double[] prices ={38.0,20.0,10.0}; //價格 int[] praiseNums =new int[]{58,45,50}; //點贊數 Scanner input = new Scanner(System.in); int num=-1; //用戶輸入0返回菜單,否則退出 boolean isExit=false; //標志用戶是否退出系統;true 為退出系統 System.out.println("\t歡迎使用“吃貨聯盟訂餐系統”"); auter: do{ System.out.println("**************************************"); System.out.println("\t 1、我要訂餐"); System.out.println("\t 2、查看餐袋"); System.out.println("\t 3、簽收訂單"); System.out.println("\t 4、刪除訂單"); System.out.println("\t 5、我要點餐"); System.out.println("\t 6、退出系統"); System.out.println("**************************************"); System.out.println("請選擇:"); int choose = input.nextInt(); switch(choose){ case 1: System.out.println("***我要訂餐***"); System.out.println("請輸入訂餐人姓名:"); String name=input.next(); boolean isAdd = false; //記錄是否可以訂餐 for (int i = 0; i < names.length; i++) { if(names[i]==null){ isAdd = true; System.out.println("序號\t菜品名稱\t菜品單價\t點贊數"); for (int j = 0; j < dishNames.length; j++) { System.out.println((j+1)+"\t"+dishNames[j]+"\t "+prices[j]+"\t "+praiseNums[j]); } System.out.println("請選擇您要點的菜品編號:"); int chooseDich = input.nextInt(); System.out.println("請選擇您需要的份數:"); int number = input.nextInt(); //得到訂餐信息 String dishMeg=dishNames[chooseDich-1]+" "+number+"份"; //訂餐總金額 double sumPrice = prices[chooseDich-1] *number; //訂餐滿50元,免送餐費5元 double deliCharge =(sumPrice>=50)? 0:5; 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)+"元"); System.out.println(); //添加數據 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\t總金額\t訂單狀態"); for (int i = 0; i < names.length; i++) { if(names[i]!=null){ String state = (states[i]==0)?"已預訂":"已完成"; System.out.println((i+1)+"\t"+names[i]+"\t"+dishMegs[i]+"\t"+times[i]+"\t"+addresses[i]+"\t"+sumPrices[i]+"\t"+state); } } break; case 3: System.out.println("***簽收訂單***"); System.out.println("簽收訂單的序號:"); int delId=input.nextInt(); boolean isSignFind = false; for (int i = 0; i < names.length; i++) { if(names[i]!=null && i ==(delId-1) && states[i]==0){ states[i]=1; //狀態改為 1 System.out.println("訂單簽收成功"); isSignFind=true; break; }else if(names[i]!=null && i ==(delId-1) && states[i]==1){ System.out.println("您選擇的訂單已完成簽收,不能再次簽收!"); isSignFind=true; } } if(!isSignFind){ System.out.println("您選擇的訂單不存在!"); } break; case 4: System.out.println("***刪除訂單***"); System.out.println("輸入要刪除的訂單編號:"); int dinId=input.nextInt(); boolean isDelFind=false; for (int i = 0; i < names.length; i++) { if(names[i]!=null && states[i]==1 && i==(dinId-1)){ isDelFind=true; for (int j = i; 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]; sumPrices[j]=sumPrices[j+1]; } //數組最后一位清空 int endIndex =names.length-1; names[endIndex]=null; dishMegs[endIndex]=null; times[endIndex]=0; addresses[endIndex]=null; states[endIndex]=0; sumPrices[endIndex]=0; System.out.println("刪除訂單成功!"); break; }else if(names[i]!=null && states[i]==0 && i==(dinId-1)){ System.out.println("您選擇的訂單未簽收,不能刪除!"); isDelFind =true; break; } } if(!isDelFind){ System.out.println("您要刪除的訂單不存在!"); } break; case 5: System.out.println("***我要點贊*** "); System.out.println("序號\t菜品名稱\t菜品單價\t點贊數"); for (int j = 0; j < dishNames.length; j++) { System.out.println((j+1)+"\t"+dishNames[j]+"\t "+prices[j]+"\t "+praiseNums[j]); } System.out.println("請輸入您要點贊的菜品序號:"); int priaiseNum = input.nextInt(); praiseNums[priaiseNum-1]+=1; System.out.println("點贊成功!"); break; case 6: System.out.println("退出系統!"); break auter; default: isExit=true; break; } if(!isExit){ System.out.println("輸入0返回"); num=input.nextInt(); } }while(num==0); System.out.println("歡迎使用訂餐系統"); }