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("欢迎使用订餐系统"); }