2019-1-5吃货联盟作业
package chihou; import java.util.Scanner; public class kauiChang { public static void main(String[] args) { String[] names = new String[4];//保存订单人姓名 String[] dishMegs = new String[6];//保存所选择信息,包括菜单名及份数 int[] times = new int[4];//保存送餐时间 String[]addresses = new String[4];//保存送餐地址 int[]states = new int[4];//保存订单状态:0 表示已预订,1表示已完成 int[]sumPrices = new int[4];//表示订单的总金额 String[]dishNames ={"红烧鱼","酸辣鸡杂","麻婆豆腐","香辣小龙虾"}; double[]prices = new double[]{36.0,28.0,15.0,42.0}; int[]praiseNums = new int[5]; Scanner input = new Scanner(System.in); int num = -1;//用户输入0是反回主菜单,否则退出系统 boolean isExit = false;//标记用户是否退出系统,trus为退出系统 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();//记录用户的选择编号 boolean isAdd = false;//记录是否可以订餐 //根据用户的输入执行相应的功能 switch(choose){ case 1: System.out.println("***我要订餐***"); for(int j=0;j<names.length;j++){ if(names[j]==null){ isAdd = true; System.out.println("请输入订餐人姓名"); String name = input.next(); System.out.println("序号"+"\t" +"菜名"+"\t" +"单价"+"\t" +"点赞数"); for(int i=0;i<dishNames.length;i++){ String price = prices[i]+"元"; String praiseNum = (praiseNums[i])>0?praiseNums[i]+"赞":"0"; System.out.println((i+1)+"\t" +dishNames[i]+"\t" +price+"\t" +praiseNum); } //用户点餐 System.out.println("请选择您要点的菜的序号:"); int chooseDish = input.nextInt(); while(chooseDish<1||chooseDish>4){ System.out.println("您输入的有误请重新输入1~4的整数"); chooseDish = input.nextInt(); } System.out.println("请选择您需要的份数:"); int number = input.nextInt(); String dishMeg = dishNames[chooseDish-1]+""+number+"份"; double sumPrice = prices[chooseDish-1]*number; double deliCharge = (sumPrice>=50)?0.0:5.0; 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(); System.out.println("订单成功!"); System.out.println("您订的是"+dishMeg); System.out.println("餐费:"+sumPrice+"元,送餐费"+deliCharge+"元,总计:"+(sumPrice+deliCharge)+"元。"); names[j]=name; dishMegs[j]=dishMeg; times[j]=time; addresses[j]=address; sumPrices[j]=(int) (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\t总金额\t\t订单状态"); for(int i=0;i<names.length;i++){ if(names[i]!=null){ String state = states[i]==0?"已预定":"已完成"; String date = times[i]+"点"; String sumPrice = sumPrices[i]+"元"; System.out.println((i+1)+"\t"+names[i]+"\t"+dishMegs[i]+"\t"+date+"\t"+addresses[i]+"\t"+sumPrice+"\t"+state); } } break; case 3: System.out.println("签收订单"); boolean isSignFind = false;//找到要签收的订单 System.out.println("请选择要签收的订单序号:"); int signOrderId = input.nextInt(); //状态值为已预定的订单,序号值为用户输入的订单序号-1:可签收 //状态值为已完成的订单,序号值为用户的输入的订单序号-1:不可签收 for(int i=0;i<names.length;i++){ if(names[i]!=null&& states[i]==1 && signOrderId==i+1){ System.out.println("您选择的订单已完成签收,不能再次签收!"); isSignFind = true;//标记已找到此订单 break; }else if(names[i]!=null && states[i]==0 && signOrderId==i+1){ states[i]=1; //设为已完成 System.out.println("订单签收成功!"); isSignFind = true;//标记已找到此订单 break; } } //为找到的订单序号不可签收 if(!isSignFind){ System.out.println("您选择的订单不存在!"); } break; case 4: System.out.println("删除订单"); boolean isDelFind = false; // 标记是否找到要删除的订单 System.out.println("请输入要删除的订单序号:"); int delld = input.nextInt(); //状态值为已完成,序号值为用户输入的序号-1:可删除 //状态值为已预定,序号值为用户输入的序号-1:不可删除 for(int i=0;i<names.length;i++){ if(names[i]!=null&&states[i]==1&&delld==i+1){ isDelFind = true; //执行删除操作:删除的位置后的元素依次前移 for(int j =delld-1;j<names.length-1;j++){ names[j]=names[j+1]; dishMegs[j]=dishMegs[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; addresses[endIndex] = null; states[endIndex] = 0; sumPrices[endIndex] = 0; System.out.println("删除订单成功"); break; } else if(names[i]!=null && states[i]==0 && delld==i+1){ System.out.println("您选择的订单未签收,不能删除!"); isDelFind = true; // 标记已找到此订单 break; } } //未找到该序号的订单:不能删除 if(!isDelFind){ System.out.println("您要删除的订单不存在!"); } break; case 5: System.out.println("我要点赞"); System.out.println("序号"+"\t"+"菜名"+"\t"+"单价"); for(int i=0;i<dishNames.length;i++){ String price = prices[i]+"元"; String praiseNum = (praiseNums[i])>0?praiseNums[i]+"赞":""; System.out.println((i+1)+"\t"+dishNames[i]+"\t"+price+"\t"+praiseNum); } System.out.println("请选择您要点赞的菜品序号:"); int priaiseNum = input.nextInt(); while(priaiseNum<1||priaiseNum>4){ System.out.println("您输入的有误,请重新输入!"); priaiseNum = input.nextInt(); } praiseNums[priaiseNum]++;//点赞数加1 System.out.println("点赞成功!"); break; case 6: isExit = true; break; } if(!isExit){ System.out.println("输入0反回主菜单"); num = input.nextInt(); while(num!=0){ System.out.println("输入有误请重新输入"); num = input.nextInt(); } }else{ break; } }while(num==0); } }
输出结果图;
百度网盘代码下载链接:https://pan.baidu.com/s/1TW3CpMGhd3tpKBFB6pomAg
提取码:5g0v